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

조회 수: 18 (최근 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 CenterFile Exchange에서 Construct 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