Community
Participate
Working Groups
Build Identifier: We will use other existing condition to determine whether an external type could be shown in a blank line in The EDT1.0 Please see https://bugs.eclipse.org/bugs/show_bug.cgi?id=355574 Reproducible: Always
Brian: NOTE: The following changes should not be considered at this time, but should be re-visited after .7 ships, or after the critical defects in .7 have been resolved. [Unless my proposals result in a major design change, which I don't think should happen] I talked with Paul Harmon about this today, and I believe we should attempt to resolve this issue without the addition of a new ContentAssist annotation. Based on my conversation with Paul, the problem is that we are not proposing 'singleton' External Types on a blank line when a user invokes content assist, and the ContentAssist annotation indicates that the System External Types (e.g. MathLib, etc) should be displayed as a proposal. My first question was to ask how this would work if I defined my own External Type with a private constructor in an EGL project, which means that it is a 'singleton'. I believe our solution for System External Types should be the same as the one we would use for User defined External Types. When a user invokes content assist on a blank line, any External Type with a private constructor, either defined by the user or defined by the system, should be displayed as an option. A subtle change in this proposal, in addition to the removal of the ContentAssist annotation, is that we should no longer store a ContentAssistManager in the System Environment. I do not believe that the System Environment, which can be used outside of the IDE, should 'know about' IDE related classes. Hopefully we can just re-use some of the existing models that are already used in the IDE to provide content assist proposals based on User defined parts, but I would be ok with re-using ContentAssistManager in an IDE only plug-in if that is what is required. Finally, there are additional considerations for showing External Types on a blank line in content assist, which can be tracked as part of this defect or in a new defect: * External types should be proposed on a blank line if the part contains 'static' functions, even when the constructor is not private. * When a user chooses an External Type from content assist on a blank line, a variable should not be created by default (e.g. var1 TheExternalType;). This allows the user to directly invoke functions on the type (e.g. TheExternalType.doSomething();)
fixed
close