Skip to content
Merged
2 changes: 1 addition & 1 deletion courses/Bibliography/Bibliography.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ This literature is about the meta systems themselves, their design and their eva
* Mauricio Verano Merino, Tom Beckmann, Tijs van der Storm, Robert Hirschfeld, and Jurgen J. Vinju. Getting Grammars into Shape for Block-based. (2021) International Conference on Software Language Engineering.
> We can generate block-based syntax editors from context-free grammars. The paper bridges between the grammarware and blockware technological spaces. A collaboration with TU Eindhoven en Canon Production Printing.
* Jurgen J. Vinju and Tijs van der Storm. Bacatá: Notebooks for DSLs, Almost for Free. (2020) <Programming> Journal and DSLDI 2020
> We can generate Jupyter Notebook interfaces for language descriptions in Rascal, similar to the way we can generate Eclipse plugins and VScode extensions,
> We can generate Jupyter Notebook interfaces for language descriptions in Rascal, similar to the way we can generate Eclipse plugins and VS Code extensions,
> but with a very different user experience.

### 2010's
Expand Down
2 changes: 1 addition & 1 deletion courses/GettingHelp/GettingHelp.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ details:
* Directly in the Rascal IDE there is help available:
1. On the commandline, type `:help`
2. In Eclipse there is the `Tutor View` which opens all the documentation pages inside Eclipse.
3. In VScode use the command palette and search for `Rascal` for more commands.
3. In VS Code use the command palette and search for `Rascal` for more commands.
* For specific application topics, "Howto" kind of information, etc. please go to ((FurtherReading)).
* There is a lot of documentation on Rascal and its libraries. Read the ((Browsing)) page on how to navigate it.

6 changes: 3 additions & 3 deletions courses/GettingStarted/CreateNewProject/CreateNewProject.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ remove(|home:///my-project-name|, recursive=true);
```

Rascal projects, generally, work the same in all contexts:
* VScode
* VS Code
* Commandline

To create an empty project to get started, follow these instructions:
Expand All @@ -23,7 +23,7 @@ newRascalProject(|home:///my-project-name|)

The Eclipse plugin has a "New Project Wizard" you can use as well.

The next step is to import the new project into VScode or Eclipse, or
The next step is to import the new project into VS Code or Eclipse, or
to `cd` to the project's root directory. From there on ((RunningRascal))
with the new project's source and library settings is trivial.

Expand Down Expand Up @@ -51,7 +51,7 @@ The `pom.xml` file is the basic setup that names the project and defines its dep
```

Next to that `RASCAL.MF` is required to configure the development environment for the project. Some
information from the `pom.xml` is repeated here, because this file is common between Eclipse, VScode and empty commandline projects,
information from the `pom.xml` is repeated here, because this file is common between Eclipse, VS Code and empty commandline projects,
and such projects could work with a `pom.xml`:

```MF
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ sidebar_position: 1
Rascal is deployed as one of four easy-to-use packages:

1. **A standalone "jar" file**, which can be downloaded [here](https://update.rascal-mpl.org/console/rascal-shell-stable.jar)
2. A **Visual Studio Code extension**, which can be found [here](https://marketplace.visualstudio.com/items?itemName=usethesource.rascalmpl) or search for "Rascal" in the "Extension" view in VScode itself.
2. A **Visual Studio Code extension**, which can be found [here](https://marketplace.visualstudio.com/items?itemName=usethesource.rascalmpl) or search for "Rascal" in the "Extension" view in VS Code itself.
3. An **Eclipse plugin**, for which the update site is <https://update.rascal-mpl.org/stable/>.
4. A set of **Maven MOJOs**, for which the plugin repository is <https://releases.usethesource.io/maven/>

Expand Down
2 changes: 1 addition & 1 deletion courses/GettingStarted/RascalShell/Commands/Edit/Edit.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ mean different things:

* On the Unix commandline the `${EDITOR}` environment variable will be used to open a file. If that file is present in the local file system, it is opened by running `${EDITOR} /absolute/path/to/module.rsc`, but if the file is hidden behind an opaque ((Values-Location)) scheme, then it is first copied to a temporary file on the local file system, and then opened.
* In Eclipse, the eclipse editor framework is used to open an editor for the file. If it is a so called "resource" in the eclipse file system, and editable file is opened with all the Rascal language support. If the file is from an embedded library (inside a jar) then the contents of the file are shown in a similar editor, but read-only.
* In VScode a similar experience is provided as in Eclipse, but the editor for library files does not know it is read-only.
* In VS Code a similar experience is provided as in Eclipse, but the editor for library files does not know it is read-only.
2 changes: 1 addition & 1 deletion courses/GettingStarted/RunningRascal/RunningRascal.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ sidebar_position: 2
#### Running Rascal: starting a terminal with a read-eval-print-loop

1. On the Unix or Windows [Commandline]((RunningRascal-Commandline)), start a ((RascalShell)) by: `java -jar rascal-<version>.jar`
2. In [VScode]((RunningRascal-VScode)), in the command palette type `Rascal` and select `Create Rascal Terminal`
2. In [VS Code]((RunningRascal-VScode)), in the command palette type `Rascal` and select `Create Rascal Terminal`
4. With Maven, ((CreateNewProject)) first and then type: `mvn rascal:console`

You will be prompted for input right after the version is printed and a lot of information about the current searchpath configuration.
Expand Down
14 changes: 7 additions & 7 deletions courses/GettingStarted/RunningRascal/VScode/VScode.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: Running Rascal in VScode
title: Running Rascal in VS Code
---

After the [installation procedure]((DownloadAndInstallation)) running Rascal
in VScode is a matter of starting the ((RascalShell)):
in VS Code is a matter of starting the ((RascalShell)):
1. Using an editor action
2. Using the VScode command palette
2. Using the VS Code command palette

## Starting ((RascalShell)) from an editor

Expand All @@ -24,9 +24,9 @@ This assumes there is a functional [Rascal project]((CreateNewProject)) in your
* A ((RascalShell)) started from the palette has no source or library or classpath configuration and so it only knows about the standard library.
* See above for well-configured instances of ((RascalShell)).

## Programmatic access to VScode features
## Programmatic access to VS Code features

* Use ((util::IDEServices)) to communicate with VScode, to register problems, to open files and browsers, etc.
* Use ((util::LanguageServer)) to register languages designed and implemented in Rascal with the Language Server Protocol in VScode immediately.
* The `project://<projectName>` location scheme provides access to the root of each registered folder in the VScode workspace.
* Use ((util::IDEServices)) to communicate with VS Code, to register problems, to open files and browsers, etc.
* Use ((util::LanguageServer)) to register languages designed and implemented in Rascal with the Language Server Protocol in VS Code immediately.
* The `project://<projectName>` location scheme provides access to the root of each registered folder in the VS Code workspace.
* Use ((util::Reflective::getProjectPathConfig)) for Java and Rascal project configuration extracted from Maven configuration (classpaths, sourcepaths, library dependencies).
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ To be able to generate parsers Rascal uses stack space from the Java Virtual Mac
If you get exceptions better configure your JVM with this `-Xss32m`

* On the commandline, you can use `java -Xss32m ...`
* In VScode the Rascal language server already configures this automatically.
* In VS Code the Rascal language server already configures this automatically.
* The same for the Rascal Maven plugins; they are configured with big stack sizes.
2 changes: 1 addition & 1 deletion courses/Rascal/Tests/Tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public class RunRascalTestModules { }

* <1> selects the test runner (parallel or not)
* <2> selects the root package to search for modules and tests
* Then use JUnit configuration in Eclipse, VScode or Maven to activate the tests at the right time.
* Then use JUnit configuration in Eclipse, VS Code or Maven to activate the tests at the right time.
* Reporting goes through standard JUnit reporting, so this integrates well with IDEs and continuous integration systems like Jenkins and GitHub Actions.


Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ keywords:
- IDE
- Language Server Protocol
- Eclipse
- VScode
- VS Code
---

#### Synopsis
Expand All @@ -22,18 +22,18 @@ Extend an IDE with interactive, language-specific, features (VSCode)

Meta-programs become most useful, when they are integrated with an Interactive Development Environment (IDE).

A Rascal program running inside a [language server protocol](https://microsoft.github.io/language-server-protocol/) server that is part of the VScode IDE can service most of the typical IDE features such as syntax highlighting,
outlining, documentation hovering and much more. Similarly Rascal programs running inside VScode have access to all features
A Rascal program running inside a [language server protocol](https://microsoft.github.io/language-server-protocol/) server that is part of the VS Code IDE can service most of the typical IDE features such as syntax highlighting,
outlining, documentation hovering and much more. Similarly Rascal programs running inside VS Code have access to all features
of the , and more.

Rascal builds on top of the [language server protocol](https://microsoft.github.io/language-server-protocol/) for its own services, and for services that
Rascal programmers create for their own languages. By default Rascal can instantiate an LSP server for VScode, but there is nothing in the way of using other editors that have LSP clients.
Rascal programmers create for their own languages. By default Rascal can instantiate an LSP server for VS Code, but there is nothing in the way of using other editors that have LSP clients.

To instantiate an IDE for a language implemented using Rascal, use the following steps:

* Define the grammar for the language.
* Define a parse function for the language.
* Register the language with the LSP/VScode, using ((util::LanguageServer))
* Register the language with the LSP/VS Code, using ((util::LanguageServer))

You find more information on these topics [here]((util::LanguageServer))

Expand Down
2 changes: 1 addition & 1 deletion courses/WhyRascal/UseCases/CodeAsData/CodeAsData.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ The two unused methods are:
* `|java+method:///snakes/Square/nextSquare()|`
* `|java+method:///snakes/Player/square()|`

In an interactive environment like Eclipse or VScode we would click on these links to jump to their source code. Here we will print the bodies:
In an interactive environment like Eclipse or VS Code we would click on these links to jump to their source code. Here we will print the bodies:

```rascal-shell,continue
println(readFile(|java+method:///snakes/Player/square()|))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ In this usecase description we give a flavor of how you can use Rascal to:
1. define the syntax of a DSL;
2. create a simple semantic check;
3. how to compile the DSL to Java;
4. instantiate a VScode extension or Eclipse Plugin for the DSL.
4. instantiate a VS Code extension or Eclipse Plugin for the DSL.

The following example shows how to define a simple DSL for "state machines". It includes a parser, a check for unreachable states and a compiler to Java code.

Expand Down Expand Up @@ -184,4 +184,4 @@ And that's it! A complete DSL in 36 lines of code. Of course, the parser and the
#### Constructing an IDE

* For Eclipse Rascal offers plugin generation via the `util::IDE` module. You can register the language and the respective analysis, compilation and visualization functions with a single function call. The standard library module `util::IDEServices` allows for calling into features of the IDE (such as starting an editor or applying a refactoring).
* For VScode an interface with similar features and abstraction level is offered in `util::LanguageServer`, but geared towards the _Language Service Protocol_.
* For VS Code an interface with similar features and abstraction level is offered in `util::LanguageServer`, but geared towards the _Language Service Protocol_.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
<salix-contrib.version>0.2.9</salix-contrib.version>
<drambiguity.version>0.3.8</drambiguity.version>
<java-air.version>1.0.1</java-air.version>
<rascal-lsp.version>2.22.0-RC3</rascal-lsp.version>
<rascal-lsp.version>2.22.0</rascal-lsp.version>
<!--php-analysis.version>0.2.4</php-analysis.version> -->
<!--<python-air.version>0.0.11</python-air.version> -->
</properties>
Expand Down
6 changes: 3 additions & 3 deletions release-notes/rascal-0-23-x-release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ The 0.23.0 release marks the end of the migration of all Rascal supporting libra

We report on intermediate releases 0.18.x, 0.19.x, 0.20.x, 0.21.x and 0.22.x as well, as these had not lead to a release of the Rascal Eclipse plugins or a stable release of the commandline version.

**Generating Eclipse and VScode Plugins**
**Generating Eclipse and VS Code Plugins**

This port to Java 11 implies that the current [stable release of the Rascal Eclipse plugin](https://update.rascal-mpl.org/stable/) works again with the latest releases of Eclipse from 2021 and 2022. In the meantime
releases of the [rascal-language-server extension](https://marketplace.visualstudio.com/items?itemName=usethesource.rascalmpl) for VScode have been developed.
releases of the [rascal-language-server extension](https://marketplace.visualstudio.com/items?itemName=usethesource.rascalmpl) for VS Code have been developed.

Porting Rascal's IDE generator features to VScode has had minor impact on the modules in the standard library concerning interaction with DSLs and interactions with the IDE (`util::IDEServices`, `util::Monitor` and `util::IDE`). The old API still works and it is backward compatible in Eclipse. However, if you want to port your DSL to VScode, there are minor changes in how to wrap your extension and new interaction possibilities with the IDE which are not present in Eclipse. Not all new IDE API is available in Eclipse yet either. Both directions of consolidation (VScode <-> Eclipse) are interesting directions of future work.
Porting Rascal's IDE generator features to VS Code has had minor impact on the modules in the standard library concerning interaction with DSLs and interactions with the IDE (`util::IDEServices`, `util::Monitor` and `util::IDE`). The old API still works and it is backward compatible in Eclipse. However, if you want to port your DSL to VS Code, there are minor changes in how to wrap your extension and new interaction possibilities with the IDE which are not present in Eclipse. Not all new IDE API is available in Eclipse yet either. Both directions of consolidation (VS Code <-> Eclipse) are interesting directions of future work.

This release works best with Java 11, but not with higher versions. There are still illegal uses of reflective access which need to be resolved before Rascal runs correctly on Java 13 and higher.

Expand Down
2 changes: 1 addition & 1 deletion release-notes/rascal-0-26-x-release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ In this post we report on the Rascal release 0.26.x

## Release 0.25.x

Release 0.25.x were intermediate releases required to eliminate the old tutor from the rascal package. They never made it into an IDE like VScode or Eclipse and no stable commandline release was distributed either.
Release 0.25.x were intermediate releases required to eliminate the old tutor from the rascal package. They never made it into an IDE like VS Code or Eclipse and no stable commandline release was distributed either.
2 changes: 1 addition & 1 deletion release-notes/rascal-0-28-x-release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ In this post we report on the Rascal release 0.28.x

* vis::Charts, vis::Graphs and vis::Text were added to the standard library for visualizing charts, graphs and pretty textual values.
* for Eclipse, several older issues and newer issues were fixed in the run-time of the Figure library
* in Eclipse and VScode the new logo was applied, as well as on http://www.rascal-mpl.org
* in Eclipse and VS Code the new logo was applied, as well as on http://www.rascal-mpl.org
* util::Validator was added to the standard library: a generic validation module for loading node values produced by reading in XML, JSON or YAML (for example) as verified constructors of algebraic data-types.
* In lang::json::IO the writing of Rascal values to JSON streams was simplified and rationalized. Now every constructor application corresponds to one object, and the fields of Rascal constructors and nodes (keyword fields as well as positional) are always mapped one-to-one to JSON fields by name. Mapping back from JSON values to Rascal can be hard if there are more than one constructors for a data type. In this case have a look at util::Validator.
* Most documentation was moved from the rascal project to the rascal-website project; this will make it easier and faster to contribute to (fixes in) the Rascal documentation.
Expand Down
4 changes: 2 additions & 2 deletions release-notes/rascal-0-40-x-release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ In this post we report on the Rascal release 0.40.x

## Release 0.40.17 - November 15, 2024

The public release 0.40.x follows release 0.28.x; many improvements have been made in projects that depend on the rascal interpreter and the standard library (the type checker, the VScode extensions, clair, etc.) Some of these improvements depend directly on fixes in the interpreter and additions to the standard library.
The public release 0.40.x follows release 0.28.x; many improvements have been made in projects that depend on the rascal interpreter and the standard library (the type checker, the VS Code extensions, clair, etc.) Some of these improvements depend directly on fixes in the interpreter and additions to the standard library.

:::info
The Rascal type-checker which is available in the VScode extension is reaching maturity. The `.tpl` file format has changed, which requires everybody to throw the old ones away. The new type checker checks `.tpl` file versions and reports possible conflicts. Use `mvn clean` or remove your `bin` or `target` folders for all your projects and library projects today.
The Rascal type-checker which is available in the VS Code extension is reaching maturity. The `.tpl` file format has changed, which requires everybody to throw the old ones away. The new type checker checks `.tpl` file versions and reports possible conflicts. Use `mvn clean` or remove your `bin` or `target` folders for all your projects and library projects today.
:::

:::warning
Expand Down
Loading