Releases: usethesource/rascal-language-servers
Releases · usethesource/rascal-language-servers
v0.12.0
- New feature: The "Rename Symbol" command (default:
F2
) is now supported for all identifiers in Rascal modules. Renaming is safe, so the semantics of Rascal code before/after renaming is the same. - New feature: Code Actions (default:
CTRL+.
) are now supported in Rascal modules to analyze and transform code (e.g.: visualization of import graphs; simplification of functions). Code Actions can also be defined for DSLs. - 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
. - 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
- Upgrade to Rascal 0.40.17, including (see also its release notes):
- 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
- A new
- 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 typeCodeAction
, and registered using constructorcodeAction
of typeLanguageService
. - Code Actions can also be attached to info, warning, and error messages as Quick Fixes.
- 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 constructorparsing
of typeLanguageService
(default:true
). It is used to control whether or not the semantic highlighter should apply an odd special case (i.e., categories ofsyntax
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 typeLanguageService
has a function parameter with return typelrel
instead ofrel
as before. This is to ensure that multiple code lenses for a single line are always ordered in the same way. Usage of return typerel
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 ofloc
-Tree
-Tree
triples as before. Unlike such triples, a value of typeFocus
provides the full context (list of subtrees) of the cursor position. Usage of the triples is now deprecated.
- Code Actions can be defined using constructor
- For each deprecated item:
- In the present release, support is retained 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 becomefalse
before it is removed.)
- 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.
- New feature: The default names of Rascal terminals can now be configured via setting
Rascal > Terminal > Name: Origin Format
. - New feature: Project setups are now checked for common errors.
- Fixed "Start Rascal Terminal and Import this module" command
v0.11.2
- bumping to rascal 0.34.2:
- improved heuristic of json mapping for an empty map
- fixed bugs related to grammar fusing for modules with extends & imports
v0.11.1
- bugfix for syntax highlighting categories
v0.11.0
- there is a new "Rascal Configuration" view that shows the resolved dependencies per project xml, and allows you to browse the rascal sources inside of those.
- the
summarizer
contribution for DSLs has been replaced byanalyzer
andbuilder
. Please review your language setup and migrate to builders (only on save), and analyzer (every change in the IDE). We have tried to keep the behavior as close to the original summarizer, but it will not be triggered on-demand anymore. - small improvements:
- DSLs can now register multiple extensions for a single language
- we check for common rascal project setup errors when starting a new REPL
- automatic reloading of changes now also works for cross-project dependencies
- We have a new and improved version of the rascal logo
- downstream dependencies were updated to the latest version
v0.10.2
- upgrading to rascal 0.34.1 to fix a regression in concrete syntax
- the REPL is marked as non-transient, until we can properly reconnect it after a reload of the window
v0.10.1
- bugfix for preloaded parsers
v0.10.0
- the automatic JVM downloader will now prompt you for updates if they are available
- Every REPL now gets named after the project they are connected to
- For deployed DSL extensions (via the npm published version of this plugin) we have a temporary interface to supply a preloaded parser
- We now automatically run our pre-release test on every PR/commit via VS Code extension tester
- upgraded to rascal 0.34.0:
- various performance improvements that improve import time and memory pressure
- removal of some unused resolvers (benchmark/testdata/test-modules/boot)
- various small bug fixes
- bug fixes:
- fixed a bug where changes in a pom.xml would only be visible after a VS Code restart. Now it only takes a restart of the REPL. (or re-trigger the type checker)
- fixed a bug where we would register schema's that were already registered (zip error message in the debug console)
v0.9.1
- Bugfix for working directory of REPLs
v0.9.0
- Webviews opened from Rascal can now have a title and view column
- There is now a setting to influence how much memory a REPL gets allocated (
rascal.interpreter.maxHeapSize
&rascal.interpreter.stackSize
). - The Rascal REPL now has a icon (it requires a bugfix in vscode 1.80 to correctly show)
- upgraded to rascal 0.33.7:
- Better support for ModuleParserStorage
- Changes to support the new webview capabilities
- Various bugfixes
- This release includes an "easter egg"; an experimental debugger for Rascal which is currently under test.
v0.8.3
- upgraded to rascal 0.33.5:
- Fixed a second bug around ModuleParserStorage
- Preparing for debugger API