Filter löschen
Filter löschen

クラス フォルダーを利用して​メンバ関数を別ファイ​ルに作成した際に、T​AB補完によるメンバ​変数、メンバ関数を表​示させる方法について

2 Ansichten (letzte 30 Tage)
Kenichi Tanaka
Kenichi Tanaka am 12 Nov. 2016
Kommentiert: Kenichi Tanaka am 14 Nov. 2016
1. クラス フォルダーを利用してクラスを定義
@Test/Test.m
classdef Test < handle
properties
a;
end
methods
function this = Test()
end
end
methods(Access = private)
func1(this);
end
methods
function check(this)
this.func1(); % A
end
end
end
2. クラスフォルダ内に別ファイルとしてメンバ関数を作成
@Test/func1.m
function func1(this)
this.<TAB> % B
end
操作1:@Test/Test.m のA行でctrl+Dを押す
期待する動作1:@Test/func1.m が開く
実際の動作1:「ファイルthis.func1は存在しません、作成しますか?」とメッセージが表示される
操作2:@Test/func1.m 内のB行において"this."に続いて<TAB>を押す
期待する動作2:Testクラスのメンバ変数aやメンバ関数func1, checkが候補として表示される。
実際の動作2:Testクラスのメンバ変数aやメンバ関数func1, checkが候補として表示されない。
質問
クラスフォルダーを使ってクラスを構築する際に、TAB補完やctrl+Dによるコードの移動を実現させたいのですが、何か方法はありますか?

Akzeptierte Antwort

Jiro Doke
Jiro Doke am 14 Nov. 2016
操作1に関しては、ドット表記の場合は別ファイルのメソッドに飛んでくれないみたいですが、関数表記だと飛んでくれました。
this.func1() % 飛ばない
func1(this) % 飛ぶ
操作2に関してはでき無そうなので、対処法として一旦ワークスペースでオブジェクトを作成してみてはいかがでしょう。
this = Test()
this がワークスペースにある限りエディターではクラスプロパティやメソッドをタブ補完できるようになります。
いずれも回避策なので、もしよろしければ機能のリクエストとして下記のリンクからご連絡お願いします。
  2 Kommentare
Jiro Doke
Jiro Doke am 14 Nov. 2016
因みに上記のテクニックは R2015b/R2016a/R2016b で確認しました。
Kenichi Tanaka
Kenichi Tanaka am 14 Nov. 2016
早速の回答ありがとうございます。
操作1のケースは自動補完機能を利用したい、操作2のケースはクラス内でprivate関数なども利用しているため、提示していただいた方法では対応が難しそうです。
クラスフォルダーを使わずに1ファイル内でclassが完結するようにしていこうと思います。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by