Where Are All The Pretty Graphics?

Intelligent Assistance in CodeLab 2.20

June 4, 2017   -   Filed under: CodeLab

This all started with me just wanting to add support for Ctrl+J in CodeLab. I had to refactor the auto completion code a bit in order to add that feature.

After I got it working, I realized the refactoring I had done would make it much easier to add support for Non-Member (Types, variables, keywords, ect.) auto completion.

I also added support for Highlighting word usage. To ensure matches, it compares spelling, casing, and word type (Type, Property, Field, Method, variable).

Bonus feature: I’ve also added Snippets for the following: if, else, switch, while, for, foreach, using.
Place the text caret on the right side of the word and press the Tab key (or press Tab twice when in the IntelliBox).


Unofficial Changelog:

– More robust detection of variables (can deal with multiple spaces between Type and variable name. Won’t parse variables in code comments)
– Added ‘Get’ & ‘Set’ to the IntelliBox tooltips for properties
– The IntelliBox can be invoked by pressing Ctrl+J
– The IntelliBox will no longer erroneous display when working within code comments
– Highlight word under the caret. Must match spelling, casing, and word type (Type, variable, property, method, ect.)
– Smarter commenting of code blocks (even when lines have varying indentations, the ‘//’ will vertically align. Empty lines are ignored)
– IntelliBox now works with array Types (ex: int[], string[]) members
– IntelliBox for Type constructors (doesn’t actually do any auto completion, but it will show the different constructors available)
– Added Snippets for a few keywords
– Fields can now be further differentiated as Constants or Enum Items.
– LOTS of code cleanup, bug fixes, and refactoring


The update is available from BoltBait on the official paint.net forum.