Skip to content

Commit

Permalink
Add summary of release notes for Rascal 40.14
Browse files Browse the repository at this point in the history
  • Loading branch information
sungshik committed Nov 15, 2024
1 parent d922da9 commit c5bef4a
Showing 1 changed file with 25 additions and 13 deletions.
38 changes: 25 additions & 13 deletions rascal-vscode-extension/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,24 +60,36 @@ For other things we are working on have a look here:

* New feature: Keywords, numbers, strings (single-line), regular expressions, comments, and tags are now highlighted in Rascal modules even in the presence of parse errors. This feature uses a TextMate grammar for Rascal, generated using [`rascal-textmate`](https://github.com/SWAT-engineering/rascal-textmate).

* Upgrade to a greatly improved version of the Rascal type checker:
* Upgrade to a greatly improved version of the Rascal type checker, including:
* Backward-compatibility between different versions of libraries. After this upgrade, you won't have to keep all your dependencies aligned with the latest released Rascal version. We think we have developed a scheme that should work for all future upgrades, but there might be a few bumps in the road the coming releases.
* Better type checking errors (roughly 3 years of bugfixes)
* Increased performance for partial type checks
* Deprecation warnings for deprecated functions

* Changes to module `util::LanguageServer`:
* Code Actions can be defined using constructor `action` of type `CodeAction`, and registered using constructor `codeAction` of type `LanguageService`.
* Constructors in type `LanguageService` are renamed to align them with the corresponding requests in LSP. Usage of the old names is now deprecated.
* Keyword parameter `useSpecialCaseHighlighting` is introduced on constructor `parsing` of type `LanguageService` (default: `true`). It is used to control whether or not the semantic highlighter should apply an odd special case (i.e., categories of `syntax` non-terminals are sometimes ignored); the semantic highlighter has been applying this special case for several releases. Usage of the special case is now deprecated.
* Constructor `codeLens` of type `LanguageService` has a function parameter with return type `lrel` instead of `rel` as before. This is to ensure that multiple code lenses for a single line are always ordered in the same way. Usage of return type `rel` for this function parameter is now deprecated.
* Type `Focus` is introduced. It is used to declare the parameters of on-demand services (`hover`, `definition`, `referenes`, `implementation`) instead of `loc`-`Tree`-`Tree` triples as before. Unlike such triples, a value of type `Focus` provides the *full* context (list of subtrees) of the cursor position. Usage of the triples is now deprecated.

For each deprecated item:
* In the present release, support has not yet been removed for backward-compatibility, but existing code *should* be updated.
* In a future release, support will be removed, and existing code *must* be updated. (In the case of keyword parameter `useSpecialCaseHighlighting`, the default will first become `false` before it is removed.)

See module `util::LanguageServer` for details, and module `demo::lang::pico::LanguageServer` for examples.
* Upgrade to Rascal 40.14, including:
* A new `mvn` scheme for referencing jars in the maven repository
* Improvements to json/xml/html deserialization, including better origin tracking
* A new REPL progress bar that you can also use via `util::Monitor`
* Improvements to our support for defining pretty printing
* Clipboard control from Rascal code
* Upgraded the Java support in m3
* Various bugfixes
See the [release notes](https://www.rascal-mpl.org/release-notes/rascal-0-40-x-release-notes/) of Rascal 40.14 for details.

* For DSL extension developers:
* The present release is updated to work with Node.js 18. The next release will be updated to work with Node.js 20, to align with the VS Code engine and our dependencies.
* Changes to module `util::LanguageServer`:
* Code Actions can be defined using constructor `action` of type `CodeAction`, and registered using constructor `codeAction` of type `LanguageService`.
* Constructors in type `LanguageService` are renamed to align them with the corresponding requests in LSP. Usage of the old names is now deprecated.
* Keyword parameter `useSpecialCaseHighlighting` is introduced on constructor `parsing` of type `LanguageService` (default: `true`). It is used to control whether or not the semantic highlighter should apply an odd special case (i.e., categories of `syntax` non-terminals are sometimes ignored); the semantic highlighter has been applying this special case for several releases. Usage of the special case is now deprecated.
* Constructor `codeLens` of type `LanguageService` has a function parameter with return type `lrel` instead of `rel` as before. This is to ensure that multiple code lenses for a single line are always ordered in the same way. Usage of return type `rel` for this function parameter is now deprecated.
* Type `Focus` is introduced. It is used to declare the parameters of on-demand services (`hover`, `definition`, `referenes`, `implementation`) instead of `loc`-`Tree`-`Tree` triples as before. Unlike such triples, a value of type `Focus` provides the *full* context (list of subtrees) of the cursor position. Usage of the triples is now deprecated.

For each deprecated item:
* In the present release, support has not yet been removed for backward-compatibility, but existing code *should* be updated.
* In a future release, support will be removed, and existing code *must* be updated. (In the case of keyword parameter `useSpecialCaseHighlighting`, the default will first become `false` before it is removed.)

See module `util::LanguageServer` for details, and module `demo::lang::pico::LanguageServer` for examples.

* Other improvements:
* New feature: When the Rascal LSP server crashes, VS Code will now report the crash in a notification, including a button to open a GitHub issue.
Expand Down

0 comments on commit c5bef4a

Please sign in to comment.