The CodeMax editor is an active-x component for editing text files and alone it provides for edit of text, a number of built in commands, and macro recording. It has a very strong engine for defining programming language syntaxes which I added VFP in order to add highlighting and make it aware of all the native VFP commands, functions, properties, and methods; it also will highlight the DEFINE values when the <define>.h file is specified in a VCX or SCX. With this also includes support for intellisense. I fixed the VFP issue of not having intellisense inside a WITH-ENDWITH construct and added support for table fields when the tables are defined in the form's dataenvironment or the project file. However, I did not add the intellisense to variables when they are declared; LOCAL lcMyVar AS <something>. I do not use this syntax when defining variables so I never added support.
I added many more features to the CodeMax editor such as:
[ul][li] Code insert (SQL commands, REPLACE WITH command with fields, field lists, list of controls, and RGB() color value) [/li]
[li] Code refactoring, [/li]
[li] Bookmarks shown in the left sidebar (with fast selection from the right sidebar similar to Eclipse), [/li]
[li] Code tips, [/li]
[li] Code completion, [/li]
[li] Help for commands/syntax, [/li]
[li] Code comparison (current method code to last saved method code), [/li]
[li] Copy buffers for code snippets (with full edit capability of the snippet list), [/li]
[li] Goto definition (opens PRG based functions in a separate editor session),[/li]
[li] Where-used references (provides a list with hyperlink jump to the code), [/li]
[li] Quick search (text entry into a text box that provides for incremental search in the current edit buffer without having to open an input form that can jump to repeated values)[/li]
[li] Code peek [/li]
[li] Line numbers [/li]
[li] Hot keys for commands [/li]
[li] Highlight mode for undeclared variables [/li]
[li] Highlight mode for current selection [/li]
[li] Beautify code [/li]
[li] Win32 DECLARE-DLL insert from list [/li]
[li] Color value selection from color-wheel (RGB() value insert) [/li]
[li] Color display of a value in a RGB() command [/li]
[li] Memberdata edit and extension of memberdata beyond the VFP limit [/li]
[li] Macro recording and execution [/li]
[li] Add properties or methods from another form or visual class [/li]
[li] Enhanced printing of the methods or properties [/li]
[li] Enhanced property editor [/li]
[li] Current selected line highlight [/li]
[li] Auto-indention when inserting code [/li]
[li] Change bar for line changes in the left sidebar [/li]
[li] Jump to matching code blocks (i.e., jumps from IF to associated ENDIF and other code blocks such as CASE-ENDCASE or matching parenthesis) [/li]
[li] Transpose code at the equal '=' sign (moves what is on the right side of the equal sign to the left side and the left side to the right side) [/li]
[li] If there is a missing code block command (i.e., missing the closing ENDIF), then the editor will show the below code blocks without highlight [/li]
[li] Compile errors are shown in a list with hyperlink to the code line with the error [/li]
[li] Show white space toggle [/li]
[li] Quick back navigation to last cursor position (allows forward or backward navigation) [/li]
[li] Goto line number [/li]
[li] Display of current cursor position in the status bar [/li]
[li] Display of current selected text length in the status bar [/li]
[li] Display of the current object that is being edited in the method code [/li]
[li] Tooltip text of the full path of the method in the Tab (shows the full object hierarchy) [/li]
[/ul]
I think the above list covers most of the features that I added. There is also a personalization form for choosing your own color highlights and other features.