dolphinsmalltalk / Dolphin

Dolphin Smalltalk Core Image
MIT License
294 stars 58 forks source link

Auto-completion may need to qualify ambiguous unqualified variable names #1261

Closed blairmcg closed 6 months ago

blairmcg commented 6 months ago

Classes (or indeed other static variables) may have ambiguous names in any particular binding context. When displayed in the auto-completion list the user needs to know which choice is the one they desire, and also the editor then needs to insert the correct text for the code to reference the variable, which may require a qualified name to be used. Up to now in Dolphin 8 ambiguous unqualified variable names just resulted in duplicate entries in the list. Also the first identifier was always inserted, regardless of the choice made. With this change, the displayed entries are qualified with the namespace path in the displayed auto-completion list, and the correct identifier is inserted, with qualification where required.

An issue that has existed since Dolphin 6 is that on occasion class/variable names might be the same as Package names, and if the variable name were chosen from the completion list then the search always opened the same-named package instead. By adding qualification to the class name in the list in a similar way for ambiguous unqualified class names, we can effectively disambiguate this case as well.