Results 1 to 8 of 8

Thread: Hammer 3 beta update

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Default Hammer 3 beta update

    Hi,

    Another update to the Hammer 3 beta as it has been a while, earlier updates are here but that thread got a little bit long and unwieldy, so we start out fresh again .

    Download from: https://projects.vdf-guidance.com/projects/hammer/files

    One of the things you might have noticed with Source Code Tools released earlier this month is that it also features the same code editing control, the scintilla control, as used by The Hammer3.
    Down there however it is included as a library whereas in this project it is embedded. In order to keep maintenance on that low and be able to keep things in sync with TheHammer3 quite a few changes have been made so that Hammer3 specific requirements have moved over to their own files, so things have been shuffled around a bit.
    But there's other improvements that triggered me to push out another update.

    So here's the list with the main changes:


    Hammer beta 20180824
    • Minimizing the differences between SciControlLib and The Hammer. This helps in decoupling the scintilla editor control from the rest of the Hammer logic so that the scintilla control can be used in other tools as well.
    • Fix in parser.dll on file search logic that broke with embedded libraries.
    • Removed the "First letter uppercase" logic on file/field name adjustments in favor for using the actual casing of the file/field names.



    Hammer beta 20180904
    • Minimizing the differences between SciControlLib and The Hammer. This helps in decoupling the scintilla editor control from the rest of the Hammer logic so that the scintilla control can be used in other tools as well. This is an ongoing project. For this we:
      • Moved all "drop self" logic to a new subclass cSciLexerRefactor.pkg
      • Added the new Normalize Case refactoring to the same package

    • THParameters.dg, sort the scope keywords and do preselect a style in the fontstyle selector (thanks Nils)
    • THParameters.dg, Updated to apply the font and size changes to all of the preview richedit and line number column instead of only the first few lines.
    • cEditorEdit.pkg, deleting a file and switching back to the Hammer would trigger an annoying error that the file could not be opened (do'h). As it was an unending error it was useless. If the file is deleted, now the "has the file changed" logic will see that and not try to reload.
    • Fixed Source file autocomplete for if the autocomplete on typing "Use" was ignored as it would still think the autocomplete was displayed and not display the file source auto complete.
    • New Parser.dll, adds a check for most DF Keywords which are folding points that they should be at the start of the sentence.
      More strict code folding points for better handling of code where developers are using DataFlex keywords as filenames.
    • Fix home path calculation for use in the tool panel for non standard workspace setups.
    • Added new default theme "Serene" (my personal theme which so far never made it into a default theme)
    • Added new default theme "Sahara"
    • Default themes can now also contain font styles (bold/italic/underline)
    • Added Refactor Normalize Case option which uses the casing as defined for language keywords, scope words and operators from the language parameters tab page.
    • Add index autocomplete list for request_find and made find list a bit more flexible by also allowing "send Find of" in addition to "Send Find to"


    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



    Hammer beta 20190326
    • Synced any of the updates in DfRefactor back to the Hammer for the matching refactoring options.
      • Proper indent on case statement, single line if/else statements that have semicolumns, single line comments.
      • Much faster reindent process.
      • ReIndent on Type/End Type.
      • No ReIndent on Macro Command definitions

    • Worked on a few Hi DPI improvements. There was a resizing bug in the code explorer one could bump into at a DPI of 150% and up. Icons can get really tiny when working with TH3 on a high resolution. This is resolved using resizing for the codejock parts, but is still an issue on the treeviews. The icon resize option is only if you compile the Hammer with DF19.0+
    • The file explorer now automatically adds your libraries (this had to be done manually in the past)
    • If you have duplicate methods in your class/object then the duplicate method now shows up in the code explorer with a suffix "#duplicate"
    • Remember the current line after an automatic reload when an external editor makes a change to your file.





    cheers!
    --
    Wil
    Last edited by wila; 25-Mar-2019 at 07:50 PM.

  2. #2
    Join Date
    Feb 2009
    Posts
    2,165

    Default Re: Hammer 3 beta update

    Wil
    Is this supposed to be a self contained workspace

    I get a compile error due to a missing structure in cFileBrowser.pkg


    Procedure LoadBuffer String sSearchPath
    String sPath
    String sAlternateFileName sLongFileName sFileMask
    Integer hFindFile bIsFolder
    Integer iVoid iRetval iFile
    Boolean bHasFilters
    Boolean bEnableParentPaths
    Boolean bAddFile
    Dword dwFileAttributes
    Dword dwFileSizeHigh
    Dword dwFileSizeLow
    Dword dwLowDateTime
    Dword dwHighDateTime
    tvWin32FindData FindData <------------------------ not found

  3. #3

    Default Re: Hammer 3 beta update

    Hi Chris,

    Quote Originally Posted by Chris Spencer View Post
    Wil
    Is this supposed to be a self contained workspace
    Yes, it should be, that is indeed the idea behind the .zip file release.

    I have a question in return.

    Did you perhaps unzip this on top of an old Hammer3 workspace?
    If so then please check you don't have stray vWin32fh.h/vWin32fh.pkg files in your pkg folder.
    Those files have been moved to a library and if you still have old copies of them in the pkg folder they might cause this type of error.

    --
    Wil

  4. #4
    Join Date
    Feb 2009
    Posts
    2,165

    Default Re: Hammer 3 beta update

    Ok
    Blew it all away and redid, all ok now

    I did use BC to do a merge b4 so I must have missed something

  5. #5

    Default Re: Hammer 3 beta update

    A hammer update before I make too many changes in one update


    Hammer beta 20180904
    • Minimizing the differences between SciControlLib and The Hammer. This helps in decoupling the scintilla editor control from the rest of the Hammer logic so that the scintilla control can be used in other tools as well. This is an ongoing project. For this we:
      • Moved all "drop self" logic to a new subclass cSciLexerRefactor.pkg
      • Added the new Normalize Case refactoring to the same package

    • THParameters.dg, sort the scope keywords and do preselect a style in the fontstyle selector (thanks Nils)
    • THParameters.dg, Updated to apply the font and size changes to all of the preview richedit and line number column instead of only the first few lines.
    • cEditorEdit.pkg, deleting a file and switching back to the Hammer would trigger an annoying error that the file could not be opened (do'h). As it was an unending error it was useless. If the file is deleted, now the "has the file changed" logic will see that and not try to reload.
    • Fixed Source file autocomplete for if the autocomplete on typing "Use" was ignored as it would still think the autocomplete was displayed and not display the file source auto complete.
    • New Parser.dll, adds a check for most DF Keywords which are folding points that they should be at the start of the sentence.
      More strict code folding points for better handling of code where developers are using DataFlex keywords as filenames. This helps with our ReIndent logic on not getting confused.
    • Fix home path calculation for use in the tool panel for non standard workspace setups.
    • Added new default theme "Serene" (my personal theme which so far never made it into a default theme)
    • Added new default theme "Sahara"
    • Default themes can now also contain font styles (bold/italic/underline)
    • Added Refactor Normalize Case option which uses the casing as defined for language keywords, scope words and operators from the language parameters tab page.
    • Add index autocomplete list for request_find and made find list a bit more flexible by also allowing "send Find of" in addition to "Send Find to"


    --
    Wil

  6. #6

    Default Re: Hammer 3 beta update

    Hi,

    As some might have noticed in the latest Hammer I added a few new color schema's.

    If there's somebody out that there that developed a nice color schema for themselves and wouldn't mind sharing that theme with everybody else then please do. It will be my pleasure to add it to the list of default color schema's.

    How-to donate your color schema?

    - Look for your codemaxedit<username>.ini in the data folder of your Hammer workspace
    (Where <username> is your network username)
    - Send me this file and tell me the name that you want me to use for that color schema.

    Another advantage is that your preferred default color schema is now part of the Hammer3 config, so you don't have to worry about loosing that configuration when overwriting or deleting the above config file.

    Any donated color schema's will be in the next update of the Hammer.

    Have a great weekend!
    --
    Wil

  7. #7

    Default Re: Hammer 3 beta update

    Hello,

    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.

    Eg.
    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.

    --
    Wil



  8. #8

    Default Re: Hammer 3 beta update

    Hi,

    An update to the zip so that you can also benefit from the changes that have been made to the Hammer over the past few months.


    Hammer beta 20190326
    • Synced any of the updates in DfRefactor back to the Hammer for the matching refactoring options.
      • Proper indent on case statement, single line if/else statements that have semicolumns, single line comments.
      • Much faster reindent process.
      • ReIndent on Type/End Type.
      • No ReIndent on Macro Command definitions

    • Worked on a few Hi DPI improvements. There was a resizing bug in the code explorer one could bump into at a DPI of 150% and up. Icons can get really tiny when working with TH3 on a high resolution. This is resolved using resizing for the codejock parts, but is still an issue on the treeviews. The icon resize option is only if you compile the Hammer with DF19.0+
    • The file explorer now automatically adds your libraries (this had to be done manually in the past)
    • If you have duplicate methods in your class/object then the duplicate method now shows up in the code explorer with a suffix "#duplicate"
    • Remember the current line after an automatic reload when an external editor makes a change to your file.



    As always, see first post for the location on where to download.

    cheers!
    --
    Wil

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •