diff --git a/package.json b/package.json index 9e0d086..08a15b8 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "color": "#2789e1", "theme": "dark" }, - "version": "2.4.6", + "version": "2.4.7", "publisher": "mike-lischke", "license": "SEE LICENSE IN License.txt", "repository": { @@ -19,7 +19,7 @@ }, "homepage": "http://www.soft-gems.net", "engines": { - "vscode": "^1.75.0" + "vscode": "^1.92.0" }, "categories": [ "Programming Languages", diff --git a/readme.md b/readme.md index 05ef5b9..8bac3ce 100644 --- a/readme.md +++ b/readme.md @@ -68,188 +68,7 @@ Bug fixing and what feels appealing to hack on. ## Release Notes -### 2.4.5 - 2.4.6 - -- Upgraded dependencies. -- Fixed bug #242 Visual parse tree not showing for version 2.4.5 - -### 2.4.4 - -- Upgraded to the latest formatter package to fix a number of issues. - -### 2.4.3 - -- Updated 3rd party dependencies. -- Extracted the formatter into an own Node.js package for broader use. -- Added new animation to call graphs, which highlights (in steps) which rule calls another rule. This is an implementation from Garry Miller. -- Fixed bug #134 alignColons formatting setting affects semicolon on first line -- Fixed bug #151: Formatting comments adds empty lines in some situations -- Fixed bug #150: Language server fails to accept 'fail' option after semantic predicate. -- Added support for predicate options. -- Fixed bug #180: How to pass multi CLI arguments to antlr? -- Fixed bug #182: Setting no generation language should not automatically apply Java as default -- Fixed bug #210: RangeError: Maximum call stack size exceeded -- Added a check to avoid endless recursion if a grammar uses itself as token vocabulary. -- Added a new semantic check for this (erroneous situation). -- Interpreter data is now also regenerated on start of the extension, if the grammar is newer than existing data and diagnostic checks are executed on startup. -- Fixed bug #235: Extension does not work on Windows - -### 2.4.0 - 2.4.2 - -- Switched to a new TypeScript runtime (antlr4ng), which supports the latest features from ANTLR4 (e.g. case sensitive identifiers). -- Fixed bug #195: Extension breaks if filename ends with Parser -- Fixed bug #197: Use lexer token labels when generating tokens in debug console -- Fixed bug #218: Activation fails with TypeError: Invalid host defined options -- Fixed bugs in the formatter (last token removal and wrong action with copy/paste). -- Fixed a bug in the ATN graph renderer, where rule name + index were not properly updated, when navigating between rules. -- Railroad diagrams received a big overhaul: - - Updated to latest version of the generation script. - - Added a button for exporting all diagrams in the all-rules list to individual SVG files. - - Added a new option to specify a character length in a line, after which an path is wrapped. This is useful for long alternatives. - - All CSS rules (including custom ones) are now inlined into exported SVG files, to avoid CSP problems. - - The all-rules list can now be filtered by typing a regular expression and only the visible diagrams are exported. - - A new option allows to strip out a part of rule names (e.g. a common `_SYMBOL` suffix), while rendering the SVG. - -### 2.3.1 - -A bug fix release for even stricter content security policies in VS Code starting at version 1.73. - -- Fixed bug #192: Broken Parse Tree Window on VSCode v1.73 - -### 2.3.0 -- Now using ANTLR 4.9. Cannot use the just released 4.10 because of TS runtime incompatibilities. -- Fixed bug #104: Cannot read property 'document' of undefined error being thrown -- Fixed bug #120: "antlr4.customcss": probably wrong type configuration. -- Improved ATN diagrams: - - Unused ATN states are no longer visible in the graph. - - Initial rendering of the graph is now much faster, by doing the initial element position computation as a separate step, instead of animating that. - - Transitions for actions, predicates and precedence predicates now show a label that indicates their type. - - The action transitions now show their action (or predicate) in the ATN graph as additional label. - - The custom CSS setting name has been changed to cause no spelling trouble (from `customcss` to `customCSS`). Documentation was updated as well. -- Improved predicate execution: - - Simplified the required JS code for predicate simulation in the debugger, sentence generation and test execution. See [Grammar Debugging](doc/grammar-debugging.md) for details. - - Labels for links now rotate sooner to horizontal position (45° instead of 75° of link angle), which makes for a nicer display. -- Improved sentence generation: - - Sentence generation is now available in grammar files. See [Sentence Generation](doc/sentence-generation.md) for details. - - Show a special char if no printable char could be generated (due to filtering). - - For virtual tokens the name is now printed instead of nothing (as they have no attached label), if no mapping is specified for them. - - Inclusion of Unicode line terminators can now be enabled, to allow generating them where possible. - - Sentence generation can now be configured per grammar. See the documentation for that. -- Improved action and predicate handling/display: - - Named actions, standard actions and predicates now have hover information. - - Action types are now grouped for more details in the "Actions & Predicates" section. This also is part of better predicate handling (correct action index). - - There are now separate entries for local and global named actions. - - Exception blocks, lexer actions (more, pushMode etc.) and similar action blocks are tagged properly in the symbol table now and show as such in the actions section. - - Action transitions in the ATN graph now show their type + index. -- Elements in railroad diagrams now have a CSS class, to make them better customizable. -- D3.js is a dependency of the extension and hence shipped with it. But the webviews downloaded an own copy of that lib for their work. Now they use the shipped D3.js code. -- There is now a language injection definition for Markdown files, to syntax highlight ANTLR4 code in these files. Just specify `antlr` as language for triple-backtick code blocks to see it. -- Improved the file generation process: - - Generation continues if multiple files take part (e.g. those imported) and one of them has an error. - - Errors coming up while running Java are now reported to the frontend. Also shows a hint if no Java is installed. - -### 2.2.4 -- You can now specify an alternative ANTLR4 jar file for parser generation and also use custom parameters. Both values can be set in the generation settings of the extension. -- Handling of debug configuration has been changed to what is the preferred way by the vscode team, supporting so variables there now. -- Further work has been done on the sentence generation feature, but it is still not enabled in the extension, due to a number of issues. Help is welcome to finished that, if someone has a rather urgent need for this. -- The extension view for ANTLR4 grammars now shows only relevant views for a specific grammar (e.g. no lexer modes, if a parser grammar is active). -- Code evaluation for grammar predicates has been changed to use an own VM for isolation. Plays now better with vscode (no need anymore to manually modify the imports cache). -- Updated ANTLR4 jar to latest version (4.8.0). It's no longer a custom build, but the official release. -- ESList has been enabled and the entire code base has been overhauled to fix any linter error/warning. - -### 2.2.0 -- Update to latest `antlr4ts` version. -- Added a new view container with sidebar icon for ANTLR4 files. -- Added lists of actions and predicates in a grammar to the sidebar. -- Added support for predicates in grammars. Code must be written in Javascript. -- Improved stack trace display in debug view. -- Reorganized documentation, with individual documents for specific aspects like debugging. -- Enhanced parsing support for tests, with an overhaul of the lexer and parser interpreters. -- Textual parse trees now include a list of recognized tokens. -- Improved sentence generation, using weight based ATN graph traveling. Added full Unicode support for identifier generation and a dedicated test for this. Still, the sentence generator is not yet available in the editor. -- Overhaul of most of the used extension icons (with support for light + dark themes). -- Added a reference provider. -- Fixed Bug #87: Omitting start rule doesn't fallback to first parser rule (when debugging) -- Graphs no longer need an internet connection (to load D3.js). Instead it's taken from the D3 node module. -- Added content security policies to all graphs, as required by vscode. - -### 2.1.0 -- Fixed Bug #41: Plugin Internal Error on EOF -- Fixed Bug #48: Not possible to use ${} macros in launch.json -- Merged PR #59: Fix CodeLens positions being off by one while editing and reference count being wrong -- Fixed re-use of graphical tabs (web views), to avoid multiple tabs of the same type for a single grammar. Also, parse tree tabs now include the grammar's name in the title, just like it is done for all other tabs. -- Added live visual parse trees and improved their handling + usability. No more jumping and zooming to default values on each debugger run. -- Fixed a number of TS warnings. -- Added two parse tree related settings (allowing to specify the initial layout + orientation). -- Improved handling of certain ANTLR4 errors. -- Re-enabled the accidentally disabled code completion feature. - -### 2.0.4 -- Fixed Bug #36: "$antlr-format off" removes remaining lines in file -- Fixed Bug #37: Debugging gets stuck with visualParseTree set to true - -### 2.0.3 -- Updated tests to compile with the latest backend changes. -- Fixed a bug when setting up a debugger, after switching grammars. Only the first used grammar did work. - -### 2.0.2 -- Fixed Bug #28: ATN graph cannot be drawn even after code generation. -- Fixed another bug in interpreter data file names construction. - -### 2.0.1 -- Bug fix for wrong interpreter data paths. -- Implicit lexer tokens are now properly handled. -- Fixed a bug in the formatter. - -### 2.0.0 -- The extension and its backend module (formerly known as antlr4-graps) have now been combined. This went along with a reorganization of the code. -- A rename provider has been added to allow renaming symbols across files. - -### 1.3.0 -- Added grammar debugger. -- Added graphical and textual parse tree display. - -### 1.2.5 -- Added dependency graph. -- Added call graph. - -### 1.1.5 -- Added ATN graphs. -- Added SVG export for ATN graphs + railroad diagrams. -- Now showing a progress indicator for background tasks (parser generation). - -### 1.0.4 -- Added code lens support. -- Added code completion support. -- Finished the light theme. - -### 1.0.0 - -* Rework of the code - now using Typescript. -* Adjustments for reworked antlr4-graps nodejs module. -* Native code compilation is a matter of the past, so problems on e.g. Windows are gone now. -* No longer considered a preview. - -### 0.4.0 - -* Updated the symbol handling for the latest change in the antlr4-graps module. We now also show different icons depending on the type of the symbol. -* Updated prebuilt antlr4-graps binaries for all platforms. -* Quick navigation has been extended to imports/token vocabularies and lexer modes. -* The symbols list now contains some markup to show where a section with a specific lexer mode starts. -* Fixed also a little mis-highlighting in the language syntax file. -* Added a license file. - -### 0.3.4 - -Marked the extension as preview and added prebuilt binaries. - -### 0.2.0 - -* full setup of the project -* added most of the required settings etc. -* included dark theme is complete - -For further details see the [Git commit history](https://github.com/mike-lischke/vscode-antlr4/commits/master). +See [release-notes](./release-notes.md). ## Other Notes The dependencies view icons have been taken from the vscode tree view example. diff --git a/release-notes.md b/release-notes.md new file mode 100644 index 0000000..74270a8 --- /dev/null +++ b/release-notes.md @@ -0,0 +1,191 @@ +ANTLRng + +# Release Notes + +## 2.4.7 + +- Upgraded dependencies. +- PR #273 Add a config variable to allow users to set the Java executable location (fixes issue #57) + +## 2.4.5 - 2.4.6 + +- Upgraded dependencies. +- Fixed bug #242 Visual parse tree not showing for version 2.4.5 + +## 2.4.4 + +- Upgraded to the latest formatter package to fix a number of issues. + +## 2.4.3 + +- Updated 3rd party dependencies. +- Extracted the formatter into an own Node.js package for broader use. +- Added new animation to call graphs, which highlights (in steps) which rule calls another rule. This is an implementation from Garry Miller. +- Fixed bug #134 alignColons formatting setting affects semicolon on first line +- Fixed bug #151: Formatting comments adds empty lines in some situations +- Fixed bug #150: Language server fails to accept 'fail' option after semantic predicate. +- Added support for predicate options. +- Fixed bug #180: How to pass multi CLI arguments to antlr? +- Fixed bug #182: Setting no generation language should not automatically apply Java as default +- Fixed bug #210: RangeError: Maximum call stack size exceeded +- Added a check to avoid endless recursion if a grammar uses itself as token vocabulary. +- Added a new semantic check for this (erroneous situation). +- Interpreter data is now also regenerated on start of the extension, if the grammar is newer than existing data and diagnostic checks are executed on startup. +- Fixed bug #235: Extension does not work on Windows + +## 2.4.0 - 2.4.2 + +- Switched to a new TypeScript runtime (antlr4ng), which supports the latest features from ANTLR4 (e.g. case sensitive identifiers). +- Fixed bug #195: Extension breaks if filename ends with Parser +- Fixed bug #197: Use lexer token labels when generating tokens in debug console +- Fixed bug #218: Activation fails with TypeError: Invalid host defined options +- Fixed bugs in the formatter (last token removal and wrong action with copy/paste). +- Fixed a bug in the ATN graph renderer, where rule name + index were not properly updated, when navigating between rules. +- Railroad diagrams received a big overhaul: + - Updated to latest version of the generation script. + - Added a button for exporting all diagrams in the all-rules list to individual SVG files. + - Added a new option to specify a character length in a line, after which an path is wrapped. This is useful for long alternatives. + - All CSS rules (including custom ones) are now inlined into exported SVG files, to avoid CSP problems. + - The all-rules list can now be filtered by typing a regular expression and only the visible diagrams are exported. + - A new option allows to strip out a part of rule names (e.g. a common `_SYMBOL` suffix), while rendering the SVG. + +## 2.3.1 + +A bug fix release for even stricter content security policies in VS Code starting at version 1.73. + +- Fixed bug #192: Broken Parse Tree Window on VSCode v1.73 + +## 2.3.0 +- Now using ANTLR 4.9. Cannot use the just released 4.10 because of TS runtime incompatibilities. +- Fixed bug #104: Cannot read property 'document' of undefined error being thrown +- Fixed bug #120: "antlr4.customcss": probably wrong type configuration. +- Improved ATN diagrams: + - Unused ATN states are no longer visible in the graph. + - Initial rendering of the graph is now much faster, by doing the initial element position computation as a separate step, instead of animating that. + - Transitions for actions, predicates and precedence predicates now show a label that indicates their type. + - The action transitions now show their action (or predicate) in the ATN graph as additional label. + - The custom CSS setting name has been changed to cause no spelling trouble (from `customcss` to `customCSS`). Documentation was updated as well. +- Improved predicate execution: + - Simplified the required JS code for predicate simulation in the debugger, sentence generation and test execution. See [Grammar Debugging](doc/grammar-debugging.md) for details. + - Labels for links now rotate sooner to horizontal position (45° instead of 75° of link angle), which makes for a nicer display. +- Improved sentence generation: + - Sentence generation is now available in grammar files. See [Sentence Generation](doc/sentence-generation.md) for details. + - Show a special char if no printable char could be generated (due to filtering). + - For virtual tokens the name is now printed instead of nothing (as they have no attached label), if no mapping is specified for them. + - Inclusion of Unicode line terminators can now be enabled, to allow generating them where possible. + - Sentence generation can now be configured per grammar. See the documentation for that. +- Improved action and predicate handling/display: + - Named actions, standard actions and predicates now have hover information. + - Action types are now grouped for more details in the "Actions & Predicates" section. This also is part of better predicate handling (correct action index). + - There are now separate entries for local and global named actions. + - Exception blocks, lexer actions (more, pushMode etc.) and similar action blocks are tagged properly in the symbol table now and show as such in the actions section. + - Action transitions in the ATN graph now show their type + index. +- Elements in railroad diagrams now have a CSS class, to make them better customizable. +- D3.js is a dependency of the extension and hence shipped with it. But the webviews downloaded an own copy of that lib for their work. Now they use the shipped D3.js code. +- There is now a language injection definition for Markdown files, to syntax highlight ANTLR4 code in these files. Just specify `antlr` as language for triple-backtick code blocks to see it. +- Improved the file generation process: + - Generation continues if multiple files take part (e.g. those imported) and one of them has an error. + - Errors coming up while running Java are now reported to the frontend. Also shows a hint if no Java is installed. + +## 2.2.4 +- You can now specify an alternative ANTLR4 jar file for parser generation and also use custom parameters. Both values can be set in the generation settings of the extension. +- Handling of debug configuration has been changed to what is the preferred way by the vscode team, supporting so variables there now. +- Further work has been done on the sentence generation feature, but it is still not enabled in the extension, due to a number of issues. Help is welcome to finished that, if someone has a rather urgent need for this. +- The extension view for ANTLR4 grammars now shows only relevant views for a specific grammar (e.g. no lexer modes, if a parser grammar is active). +- Code evaluation for grammar predicates has been changed to use an own VM for isolation. Plays now better with vscode (no need anymore to manually modify the imports cache). +- Updated ANTLR4 jar to latest version (4.8.0). It's no longer a custom build, but the official release. +- ESList has been enabled and the entire code base has been overhauled to fix any linter error/warning. + +## 2.2.0 +- Update to latest `antlr4ts` version. +- Added a new view container with sidebar icon for ANTLR4 files. +- Added lists of actions and predicates in a grammar to the sidebar. +- Added support for predicates in grammars. Code must be written in Javascript. +- Improved stack trace display in debug view. +- Reorganized documentation, with individual documents for specific aspects like debugging. +- Enhanced parsing support for tests, with an overhaul of the lexer and parser interpreters. +- Textual parse trees now include a list of recognized tokens. +- Improved sentence generation, using weight based ATN graph traveling. Added full Unicode support for identifier generation and a dedicated test for this. Still, the sentence generator is not yet available in the editor. +- Overhaul of most of the used extension icons (with support for light + dark themes). +- Added a reference provider. +- Fixed Bug #87: Omitting start rule doesn't fallback to first parser rule (when debugging) +- Graphs no longer need an internet connection (to load D3.js). Instead it's taken from the D3 node module. +- Added content security policies to all graphs, as required by vscode. + +## 2.1.0 +- Fixed Bug #41: Plugin Internal Error on EOF +- Fixed Bug #48: Not possible to use ${} macros in launch.json +- Merged PR #59: Fix CodeLens positions being off by one while editing and reference count being wrong +- Fixed re-use of graphical tabs (web views), to avoid multiple tabs of the same type for a single grammar. Also, parse tree tabs now include the grammar's name in the title, just like it is done for all other tabs. +- Added live visual parse trees and improved their handling + usability. No more jumping and zooming to default values on each debugger run. +- Fixed a number of TS warnings. +- Added two parse tree related settings (allowing to specify the initial layout + orientation). +- Improved handling of certain ANTLR4 errors. +- Re-enabled the accidentally disabled code completion feature. + +## 2.0.4 +- Fixed Bug #36: "$antlr-format off" removes remaining lines in file +- Fixed Bug #37: Debugging gets stuck with visualParseTree set to true + +## 2.0.3 +- Updated tests to compile with the latest backend changes. +- Fixed a bug when setting up a debugger, after switching grammars. Only the first used grammar did work. + +## 2.0.2 +- Fixed Bug #28: ATN graph cannot be drawn even after code generation. +- Fixed another bug in interpreter data file names construction. + +## 2.0.1 +- Bug fix for wrong interpreter data paths. +- Implicit lexer tokens are now properly handled. +- Fixed a bug in the formatter. + +## 2.0.0 +- The extension and its backend module (formerly known as antlr4-graps) have now been combined. This went along with a reorganization of the code. +- A rename provider has been added to allow renaming symbols across files. + +## 1.3.0 +- Added grammar debugger. +- Added graphical and textual parse tree display. + +## 1.2.5 +- Added dependency graph. +- Added call graph. + +## 1.1.5 +- Added ATN graphs. +- Added SVG export for ATN graphs + railroad diagrams. +- Now showing a progress indicator for background tasks (parser generation). + +## 1.0.4 +- Added code lens support. +- Added code completion support. +- Finished the light theme. + +## 1.0.0 + +* Rework of the code - now using Typescript. +* Adjustments for reworked antlr4-graps nodejs module. +* Native code compilation is a matter of the past, so problems on e.g. Windows are gone now. +* No longer considered a preview. + +## 0.4.0 + +* Updated the symbol handling for the latest change in the antlr4-graps module. We now also show different icons depending on the type of the symbol. +* Updated prebuilt antlr4-graps binaries for all platforms. +* Quick navigation has been extended to imports/token vocabularies and lexer modes. +* The symbols list now contains some markup to show where a section with a specific lexer mode starts. +* Fixed also a little mis-highlighting in the language syntax file. +* Added a license file. + +## 0.3.4 + +Marked the extension as preview and added prebuilt binaries. + +## 0.2.0 + +* full setup of the project +* added most of the required settings etc. +* included dark theme is complete + +For further details see the [Git commit history](https://github.com/mike-lischke/vscode-antlr4/commits/master).