Matlab intellisense (auto completion) for objects of user defined classes in Script files (.m File)

17 ビュー (過去 30 日間)
I would like to know that is there a way for intellisense to work for user defined classes. If I create object of user defined class in command window that I can see the properties and method of that class by pressing the tab button in front of "Object + .". However, if I create object in a script file or function file then intellisense does not work. Do I need to enable some functionality or Matlab does not have this capability. Thanks
  1 件のコメント
Randy Strauss
Randy Strauss 2020 年 4 月 16 日
編集済み: Randy Strauss 2020 年 4 月 16 日
Wow, this is pretty horrible.
One could do something convoluted and define this.x be a certain class to get prompting with a class property, but private properties, which one should see inside a class, are still invisible to it.
Hey, maybe someone will write a parser to:
  • ensure all the non-static methods in a class use the same object name (like thisMy inside MyClass) as the constructor,
  • update a setup.m file, in the MyClass section, with a struct thisMy that has all the properties and methods in it, with the properties being the right type (with the type put into a special comment).
Or, MatLab, how about fixing your IDE so it can have types for variables and properties, like every other decent language has?
An easy first step is for the IDE to assume it knows the type of the first parameter of non-static methods, plus that it should include prompting with private property and method names...

サインインしてコメントする。

採用された回答

Friedrich
Friedrich 2014 年 7 月 23 日
編集済み: Friedrich 2014 年 7 月 23 日
Hi,
MATLAB cannot deal with that for now.
As a small trick, create an instance of your class in the base workspace and go back to writing your actual code.
So for example execute in the command window
a = serial('COM1');
And then go to your function you are writing and use "a.<Press TAB>" and you will see that autocompletion works.
In the case you cannot create an instance of your class use .empty this will also work fine:
a = YOURCLASS.empty(1,0);

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeConstruct and Work with Object Arrays についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by