One of the most common features in a code editor is without doubt code completion (aka auto completion). Every programmer has seen this before and an explanation is no longer necessary. Still it makes sense to recall what *exactly* code completion is supposed to do. It should provide the programmer with a list of strings that can appear at a given position in the code (usually the one where the caret is). It is also sensible to require code to be syntactically correct up to the invocation point. Otherwise it is really difficult to predict what the user wanted to write actually.
Implementing code completion is a non-trivial task and there are different approaches possible. This posting describes a way to accomplish that with relatively few core code, as I have done it in MySQL Workbench. It delivers very precise results and requires only few changes to adjust it to different languages.
A while ago I announced in the Soft Gems Forum my decision to shut it down. I think it is time to move on. It's a constant security risk and there are better sources for answers on the Web (e.g. my top favorit www.stackoverflow.com).
Virtual Treeview 5.4.0 has been released and with that release I'll step back officially from maintaining the Virtual Treeview component. I moved to C++/C#/Objective-C projects a few years ago already and have hence no motivation to develop the control further. I simply don't use it anymore.
GraphicEx has not got much love in the past years but there are still quite a number of users who still have it in their code base. This however means GraphicEx must be updated to compile with the latest compilers/IDEs. Additionally, some bug fixes have been incorporated, plus some enhancements, creating what I internally called GraphicEx II. So far however I have never found the time to publish those changes.