Today's update adds a few features, addresses some bugs, syncs with upstream and moves some code around. So it has it all.

The list is as follows:

Hammer beta 20180910
  • Moved RefactorReIndent method from cEditorEdit.pkg to cSciLexerRefactor.pkg, added wait cursor during the processing.
  • Added ability to read Libraries that do not use the standard folder config and add libraries recursively
  • cSourceFilesList.pkg, removed SCTBackup from the list of files
  • TH3ToolPane.dg, added refresh workspace file list toolbar item.
  • cParser.pkg, created tParseProperty and tParseClass types and fill up properties with the data for the current file for these types.
  • cEditorEdit.pkg, added autocomplete popup for methods + properties in current file. As a result you now get autocomplete on typing set/get/send.
  • Sync code of MessageBox2.dg with Matt Davidian's original source
  • New scintilla control, adds support for folding metatags #BeginSection #EndSection
  • Extended ReIndent logic to not indent on Goto Labels
  • Add collapse/expand for procedures/functions/objects/classes/line comments

Let's pick out a few of these and explain the details.

Workspace library support has improved, not only does it support non standard libraries (like the vWin32fh one) it also handles recursive libraries now. So if a library depends on a library which has a library then now The Hammer3 can open those files in the file explorer.

Autocomplete now works for if you type get or set or send. The parser only knows about the methods and properties in your current file, so will only suggest what it knows about. The list also only displays the relevant methods/properties. So no properties are suggested when you type send for example.

Another new feature is that you can use #BeginSection / #EndSection as folding point in your code.

 { #BeginSection DDOs }
 .. all your DDO objects
 { #EndSection DDOs}
now allows you to fold the code that has all your DataDictionary objects if needed.

Sections can be nested and you can have as many as you want in your source.
Note that I am waiting on DAWs suggested formulation to use for the metatag. The folding logic ignores whatever you put behind the #BeginSection/#EndSection but might need a tweak if "=" is supposed to be straight after #BeginSeciton.

Another folding feature. If you right click in the code and select "Scope Block" then there's a submenu that lets you selectively collapse or expand all functions/procedure/classes/objects/line comments in the current file.
It keeps the method the current line is on open.

Finally the reindent logic has been adjusted to take Goto Labels into account and not indent those.

That's it for now.