Skip to content

Releases: mark-wiemer-org/ahkpp

6.0.0 - 2024-09-01 🥂

01 Sep 23:56
c384830
Compare
Choose a tag to compare

Full AHK v2 support is here!

AHK++ 6 incorporates AutoHotkey v2 Language Support 2.4.9 by thqby to deliver full v2 support, including formatting, enhanced IntelliSense and debug support, and more!

All changes are compared to AHK++ 5.0.7.

  • v2 formatting support
  • v2 IntelliSense support
  • Start and stop scripts via VS Code keybindings

More changes are listed below the breaking changes...

⛓️‍💥 Breaking changes

Settings are now organized into flat objects for a better user experience. Unfortunately, this means settings will have to be replaced when upgrading to AHK++ 6. This is a one-time fixup. Below are sample settings matching the new schema and default values of AHK++. You can learn more about the settings via VS Code's settings UI (Ctrl + ,)

Default AHK++ settings
// settings.json
{
    // ...other settings...
    "AHK++.compiler": {
        "compileIcon": "",
        "compilerPath": "C:/Program Files/AutoHotkey/Compiler/Ahk2Exe.exe",
        "useMpress": false
    },
    "AHK++.menu": {
        "showDebugButton": true
    },
    "AHK++.v1.file": {
        "compileBaseFile": "",
        "helpPath": "C:/Program Files/AutoHotkey/AutoHotkey.chm",
        "interpreterPath": "C:/Program Files/AutoHotkey/AutoHotkeyU64.exe",
        "templateSnippetName": "AhkTemplateV1"
    },
    "AHK++.v1.formatter": {
        "allowedNumberOfEmptyLines": 1,
        "indentCodeAfterIfDirective": true,
        "indentCodeAfterLabel": true,
        "preserveIndent": false,
        "trimExtraSpaces": true
    },
    "AHK++.v1.intellisense": {
        "maximumParseLength": 10000
    },
    "AHK++.v2.completionCommitCharacters": {
        "Class": ".(",
        "Function": "("
    },
    "AHK++.v2.debugConfiguration": {
        "port": "9002-9100",
        "useAnnounce": "detail",
        "useAutoJumpToError": true,
        "useDebugDirective": true,
        "usePerfTips": true
    },
    "AHK++.v2.diagnostics": {
        "classNonDynamicMemberCheck": true,
        "paramsCheck": true
    },
    // ⚠️ Not yet supported, ref [issue #488](https://github.com/mark-wiemer-org/ahkpp/issues/488)
    "AHK++.v2.exclude": [],
    "AHK++.v2.file": {
        "compileBaseFile": "",
        "helpPath": "C:/Program Files/AutoHotkey/v2/AutoHotkey.chm",
        "interpreterPath": "C:\\Program Files\\AutoHotkey\\v2\\AutoHotkey64.exe",
        "maxScanDepth": 2,
        "templateSnippetName": "AhkTemplateV2"
    },
    "AHK++.v2.formatter": {
        "arrayStyle": "none",
        "braceStyle": "One True Brace",
        "breakChainedMethods": false,
        "ignoreComment": false,
        "indentString": "    ",
        "indentBetweenHotIfDirectives": false,
        "keywordStartWithUppercase": false,
        "maxPreserveNewlines": 2,
        "objectStyle": "none",
        "preserveNewlines": true,
        "spaceBeforeConditional": true,
        "spaceAfterDoubleColon": true,
        "spaceInEmptyParen": false,
        "spaceInOther": true,
        "spaceInParen": false,
        "switchCaseAlignment": false,
        "symbolWithSameCase": false,
        "whitespaceBeforeInlineComment": "",
        "wrapLineLength": 120
    },
    "AHK++.v2.general": {
        "actionWhenV1Detected": "SwitchToV1",
        "commentTagRegex": "^;;\\s*(?<tag>.+)",
        "completeFunctionCalls": false,
        "librarySuggestions": "Disabled",
        "symbolFoldingFromOpenBrace": false,
        "syntaxes": ""
    },
    "AHK++.v2.warn": {
        "callWithoutParentheses": "Off",
        "localSameAsGlobal": false,
        "varUnset": true
    },
    "AHK++.v2.workingDirectories": []
}

New commands

  • Debug AHK and Attach: Debug and attach to the debug session for advanced use-cases. Requires zero-plusplus.vscode-autohotkey-debug.
  • Debug AHK with Params (Ctrl + F5): Debug and add user-provided command-line arguments to the debugger for advanced use-cases. Requires zero-plusplus.vscode-autohotkey-debug.
  • Run AHK++ Diagnostic: Effectively restart the AHK v2 features of the app.
  • Export AHK Symbols: Export application functions and classes to a new file. Only for AHK v2.
  • Stop AHK Script (Ctrl + F6): Stop an AHK script of user choice ran via Run AHK Script or any of the Debug AHK ... commands. If only one script is running, stop that without asking for confirmation.
  • Add Doc Comment: Add a function header comment for the current function
  • Update File Version Info: Add or update a file header comment
  • Switch AHK Version: Change between AHK v1 and v2 for the current file
  • Select AHK Syntaxes: Select custom AHK v2 syntax files for advanced use-cases. PRs are welcomed if the default syntaxes aren't sufficient!
  • Set A_ScriptDir Here: Set A_ScriptDir to the path of the current file. Only for AHK v2.
  • Set AHK v2 Interpreter: Open a quick pick to change the AHK v2 intepreter for all scripts.

Other changes

  • Context menu commands are now organized near the top of the menu

Developer changes

  • Use ESLint 9 and typescript-eslint 8 for better code hygiene checks
  • Upgrade from Node 16 to Node 20
  • Remove husky and lint-staged for simplicity
  • Modernize unit tests with @vscode/test-cli
  • Add recommended VS Code extensions for working in this codebase
  • Simplify launch configurations
  • Improve manual tests and add manual tests for new AHK v2 capabilities
  • Add full v2 integration docs
  • Clarify license: even more open-source than before!

💚 Thank you!

Special thanks to thqby, as this would not have been possible without thqby's open-source AutoHotkey v2 Language Support!

5.1.3 - 2024-08-30 🧪

31 Aug 03:43
5819abc
Compare
Choose a tag to compare
Pre-release

🧪 means this is a pre-release!

⛓️‍💥 Breaking changes

Fixup new command names and IDs:

  • Debug AHK and Attach (ahk++.debugAttach): Debug and attach to the debug session for advanced use-cases. Requires zero-plusplus.vscode-autohotkey-debug.
  • Debug AHK with Params (ahk++.debugParams): Debug and add user-provided command-line arguments to the debugger for advanced use-cases. Requires zero-plusplus.vscode-autohotkey-debug.
  • Run AHK++ Diagnostic (ahk++.diagnostic.full): Effectively restart the AHK v2 features of the app.
  • Export AHK Symbols (ahk++.exportSymbols): Export application functions and classes to a new file.
  • Stop AHK Script (ahk++.stop): Stop an AHK script of user choice ran via Run AHK Script or any of the Debug AHK ... commands. If only one script is running, stop that without asking for confirmation.
  • Add Doc Comment (ahk++.addDocComment): Add a function header comment for the current function
  • Update File Version Info (ahk++.updateVersionInfo): Add or update a file header comment
  • Switch AHK Version (ahk++.switchAhkVersion): Change between v1 and v2 for the current file
  • Select AHK Syntaxes (ahk++.selectSyntaxes): Select custom syntax files for advanced use-cases. PRs are welcomed if the default syntaxes aren't sufficient!
  • Set A_ScriptDir Here (ahk++.setAScriptDir): Set A_ScriptDir to the path of the current file. Only for AHK v2.
  • Set AHK v2 Interpreter (ahk++.setV2Interpreter): Open a quick pick to change the AHK v2 intepreter for all scripts.

5.1.2 - 2024-08-29 🧪

30 Aug 01:26
90adcd8
Compare
Choose a tag to compare
Pre-release

🧪 means this is a pre-release!

⛓️‍💥 Breaking changes

  • Remove duplicate commands
    • ahk2.debug (use ahk++.debug)
    • ahk++.run (use ahk2.run)
    • ahk++.runSelection (use ahk2.selection.run)
    • ahk2.compile (use ahk++.compile)
    • Commands may be renamed in the future for consistency

Other changes

  • Reduce extension size from 1.34 MB to 533 KB, compared to 534 KB for AHK++ 5.0.7

5.1.1 - 2024-08-27 🧪

28 Aug 02:05
e6abd3d
Compare
Choose a tag to compare
Pre-release

🧪 means this is a pre-release!

  • Fix global function recognition (#472)

5.1.0 - 2024-08-22 🧪

22 Aug 07:14
d3e5b50
Compare
Choose a tag to compare
Pre-release

🧪 means this is a pre-release!

This is a very early pre-release, expect significant issues. Commands may not work as expected and features may be missing.

Breaking changes

For technical reasons, this is tagged with 5.1.0, but it is a breaking release and the full release will be tagged 6.0.0

Other changes

  • Add full v2 support via thqby's AutoHotkey v2 Language Support
    • No need to install that extension, all features are bundled into this extension
    • Future work will de-dupe commands like "debug", "run selection", and "open help"
    • Known issues and all new features are documented at full v2 integration

Full changelog: v5.0.7...v5.1.0

5.0.7 - 2024-08-17 😬

17 Aug 16:36
a788a88
Compare
Choose a tag to compare
  • Fix readme: v2 debugger works via commands, just not via "run and debug" viewlet

5.0.6 - 2024-08-17 📝

17 Aug 16:12
30fcf27
Compare
Choose a tag to compare

Changes to the marketplace page require a new version. This version has no user-facing changes, just documentation updates:

  • Update package description to clarify v2 support is in preview
  • Update readme to clarify v2 support is in preview

Full v2 support (IntelliSense, debugging, formatting) is coming later this month! (Issue #453)

5.0.5 - 2024-05-24 🏝️

25 May 03:04
70bab81
Compare
Choose a tag to compare
  • Fix formatter in single line hotkey fall-through scenario (#440, #442)
  • Fix outline showing invalid labels (#438)

5.0.4 - 2024-05-23 😎

24 May 05:53
de8fb70
Compare
Choose a tag to compare
  • Add "PixelSearch" to V1 snippets (PR #427)
  • Fix two minor formatting issues (Issue #432, #429)
  • Update internal dependencies for security (PR #435)

5.0.3 - 2023-08-21 🏄

22 Aug 05:29
3227d7f
Compare
Choose a tag to compare
  • Fix extension crash when switching to a nullish editor (Issue #398)