All notable changes to the "parol-ls" extension will be documented in this file.
Check Keep a Changelog for recommendations on how to structure this file.
- Switched to versions
[email protected]
and[email protected]
- No functional changes.
- No changes, just a re-release with new version
- Fixed formatting problem with comments before the
%start
directive. - Using new
[email protected]
and[email protected]
which are providing fixes for recovery of LL parsers
- Diagnostic warnings on automatically resolved conflicts
- Better presentation of multiple errors
- Enhanced support for scanner states and especially the %on/%enter directives in document outline.
- Goto primary non-terminals
- Rename primary non-terminals
- Hover of primary non-terminals
- Goto scanner states
- Rename scanner states (except INITIAL)
- Goto scanner states from token with state
- Renaming of Scanner states from token with state and scanner definitions itself
- Hover of Scanner states from token with state
- Some inner refactoring
- Bump to
[email protected]
- Support of new scanner switching of
[email protected]
and[email protected]
- Support grammar type specification in par files with the
%grammar_type
directive - Support of new
parol
errors
- Update references to
[email protected]
and[email protected]
. Please, see CHANGELOG parol_runtime and CHANGELOG parol for details.
- Update references to
[email protected]
and[email protected]
. Please, see CHANGELOG parol_runtime and CHANGELOG parol for details.
- This release is dedicated to the new error recovery feature in generated parsers. The language server itself benefits from this feature and can continue parsing of par files beyond the first syntax error. This should improve the overall user experience.
- Refactoring of formatting algorithm using the new comment handling feature provided by
parol_runtime
. If you experience strange shifts of comments please file an issue.
- This release is dedicated to code formatting. A lot of tests have been added to ensure a more consistent formatting over different configuration settings.
Please file an issue against formatting if you encounter any problem or have suggestions.
In later releases I plan to refactor the whole formatting algorithm and incorporate the comment
handling provided by [email protected]
.
-
The
Parol Language Server
now supports a single end comment.- This is no restriction of
parol
itself but of the special grammar the language server uses. This grammar captures as much comments as possible from the input grammar. Feedback is appreciated.
- This is no restriction of
-
Support of several new formatting options
- formatting.empty_line_after_prod
- Add an empty line after each production
- formatting.prod_semicolon_on_nl
- Place the semicolon after each production on a new line
- formatting.max_line_length
- Maximum number of characters per line
This requires vs-code extension
parol-vscode
of version >= 0.1.15. - formatting.empty_line_after_prod
-
Fix of minor formatting behavior problems, like handling of nested EBNF constructs
- This fixes #114
- Using newer
parol 0.22.0
+parol_runtime 0.17.0
- Using newer and faster
parol 0.21.1
- Decoupled the expensive LL(k) analysis to speed up the language server
- Using newer and faster
parol 0.21.0
+parol_runtime 0.16.0
- Using newer and faster
parol 0.20.0
+parol_runtime 0.15.1
- Using newer and faster
parol 0.19.0
+parol_runtime 0.15.0
- Using newer and faster
parol 0.18.0
+parol_runtime 0.14.0
- Removed clippy warnings new in Rust 1.67
- Using newer and faster
parol 0.17.0
+parol_runtime 0.13.0
- Removed
miette
as opaque error handling crate and substituted it bythiserror
+anyhow
- General improvements of error handling and reporting
- Infrastructural changes: Moved repository into parol workspace
- Support for new parol features from 0.14.0 (new terminal representation forms)
- Improved document formatting
- Configuration is now possible via settings in VSCode. Changes are updated in the language server
now.
- The first effective property is the maximum number of lookahead tokens that is calculated during grammar analysis.
- Using
parol
in version 0.13.0 now to take advantage of latest fixes. Also addparol-macros
as dependency. This reduced the code size of generated parser.
- Using
parol_runtime
in version 0.8.1 andparol
in version 0.12.1 now to take advantage of latest fixes. - Rethought the concept of
OwnedToken
- Format document: Improved formatting of line comments
- Switched to clap 4
- Using parol 0.11.0 now
- Implied some changes in error handling
- Support for "Format document"
- Currently no configuration available, i.e the formatting result is a standard format. That may change in the future.
- Fixed handling of prepare rename request which sometimes rejected the rename action
- Add support for renaming non-terminal symbols
- Fixed location_to_range
- Refactored the request handling
- Made the maximum lookahead configurable via server arguments
- Added Acknowledgements to README
- Fixed flaw in grammar analysis
- Add support for document symbols
- Fighting the position to offset problem again
- Clearing document state now before each analysis
- Allowing comments after alternation separator
- Hopefully now finally fixed crash of language server on Linux machines
- Fixed crash of language server on Linux machines
- Fixed range calculation to be more OS aware, hopefully
- Added tests and ran them on Windows and Linux (on WSL2)
- Add basic Hover support
- GotoDefinition can be applied to the Start symbol too
- First attempt to handle comments by the grammar and preserve them
- This is not complete yet and may be a little bumpy - please report any misbehavior
- Include more grammar checks
- Fixed utils::source_code_span_to_range
- Initial release