Private/protected properties not suggested by methods in class folder

I've included pictures rather than text in order to show the suggestion windows that open while you're typing.
As a minimal example, I've created a folder, @MyClass, with two files, MyClass.m and Func2.m, the latter of which is a method of MyClass prescribed in the methods block of the class definition, as outlined here.
First picture: The contents of MyClass.m. Note that as I define Func1(), I have suggestions for all 4 properties, including one that is protected and one that is private. The other function, Func2(), is declared here as well.
Second picture: The contents of Func2.m. Note that as I define it, I have suggestions only for the 2 public properties.
While there are no errors or warnings if I use the protected or private property, having the peace of mind with automatic suggestions for those properties is sorely missed. If this is a bug or oversight, I hope it's resolved soon (or perhaps already is in a release later than 2023b). Otherwise, is there a way to annotate Func2() (or the methods block it's declared in) to have full visibility of the private/protected properties when modified in the editor?

3 Comments

vals = Func2(self)
is not a function declaration; it is just extra code inserted into the methods section. I don't think it has any valid meaning at that point in the code.
Oh right, it's only important to provide the signature in the classdef if the method attributes are something other than the defaults.
Nonetheless, I'm still hoping to find out how to give Func2() the same visibility of the properties that Func1() has.
If this is a bug or oversight, I hope it's resolved soon (or perhaps already is in a release later than 2023b)
But even if they do, it could never be a complete fix. For user-defined classes, there is no robust way to implement an autocomplete, because of course the dot-indexing functionality is subject to modification by the user via dotReference. Obviously, no autocompletion logic that TMW could implement can anticipate what a user might do to overload built-in dot indexing.

Sign in to comment.

Answers (1)

R2024b does not reproduce your issue - may have been fixed.

2 Comments

I think it might be important that Func2 is in its own .m file
@Walter Roberson Yes it is exactly in my test. It just CAN find the private property in R2024b.

Sign in to comment.

Categories

Products

Release

R2023b

Asked:

on 27 Dec 2024

Edited:

on 28 Dec 2024

Community Treasure Hunt

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

Start Hunting!