diff --git a/courses/GettingHelp/GettingHelp.md b/courses/GettingHelp/GettingHelp.md index 45f010d3f..b803eb7a1 100644 --- a/courses/GettingHelp/GettingHelp.md +++ b/courses/GettingHelp/GettingHelp.md @@ -30,7 +30,6 @@ details: 3. The (open) issues registered with [Github Issues](http://github.com/usethesource/rascal/issues) * 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. * 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. diff --git a/courses/GettingStarted/CreateNewProject/CreateNewProject.md b/courses/GettingStarted/CreateNewProject/CreateNewProject.md index 6cdf1d885..bee9d9068 100644 --- a/courses/GettingStarted/CreateNewProject/CreateNewProject.md +++ b/courses/GettingStarted/CreateNewProject/CreateNewProject.md @@ -8,8 +8,7 @@ import IO; remove(|home:///my-project-name|, recursive=true); ``` -Rascal projects, generally, work the same in all three IDE contexts: -* Eclipse +Rascal projects, generally, work the same in all IDE contexts: * VScode * Commandline @@ -22,9 +21,7 @@ import util::Reflective; 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 VScode, or to `cd` to the project's root directory. From there on ((RunningRascal)) with the new project's source and library settings is trivial. @@ -52,8 +49,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, -and such projects could work with a `pom.xml`: +information from the `pom.xml` is repeated here, because this file is common between VScode and empty commandline projects, and such projects should work with a `pom.xml`: ```MF ((|home:///my-project-name/META-INF/RASCAL.MF|)) @@ -64,3 +60,11 @@ And finally in `src/main/rascal` you'll find the Rascal source files, as configu ```rascal ((|home:///my-project-name/src/main/rascal/Main.rsc|)) ``` + +#### Benefits + +* The ((newRascalProject)) sets up a project for use with the Rascal ((MavenPlugin)). + +#### Pitfalls + +* In `RASCAL.MF` the `Sources` configuration option is deprecated and will soon be replaced by pom.xml's `` tag in `pom.xml`. \ No newline at end of file diff --git a/courses/GettingStarted/DownloadAndInstallation/DownloadAndInstallation.md b/courses/GettingStarted/DownloadAndInstallation/DownloadAndInstallation.md index 9df6ccdf3..a3ece8aa6 100644 --- a/courses/GettingStarted/DownloadAndInstallation/DownloadAndInstallation.md +++ b/courses/GettingStarted/DownloadAndInstallation/DownloadAndInstallation.md @@ -7,7 +7,6 @@ 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. -3. An **Eclipse plugin**, for which the update site is . -4. A set of **Maven MOJOs**, for which the plugin repository is +4. A ((MavenPlugin)) with a set of Rascal Mojo's, for which the plugin repository is See ((RunningRascal)) for what to do next. \ No newline at end of file diff --git a/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md b/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md new file mode 100644 index 000000000..8963d4fa8 --- /dev/null +++ b/courses/GettingStarted/MavenPlugin/CompileMojo/CompileMojo.md @@ -0,0 +1,132 @@ +--- +title: Compile Mojo +keywords: + - compile + - maven + - goal + - "rascal:compile" +--- + +All Rascal projects are assumed to be configured via a Maven `pom.xml` file. To use the Rascal compler via the `mvn rascal:compile` goal: +1. The Rascal compiler is made available to the project via adding a proper `` tag for the `rascal-maven-plugin`. +1. Dependencies on other Rascal or JVM-based projects are declared in with `` tags. +1. Running `mvn compile` or `mvn package` or `mvn install` will trigger the compiler, reporting errors, warnings and other information on the go. +1. Other compilers, such as the Java compiler are also triggered, such that code that interacts between Rascal and Java can be loaded and executed later. +1. All binary target files end up in the `./target/classes` folder +1. With `mvn package` and `mvn install` the ((PackageMojo)) finally stores all target code in a `.jar` file. +1. Repeated executions of `mvn compile` make sure to check and compile only the changed Rascal modules. +1. `mvn clean` cleans the target folders to make sure everything is checked and compiled from scratch. + +#### Input/output behavior + +| *Input* | *Output* | *Description* | +| ------- | -------- | ------------ | +| Module.rsc | Module.tpl | "TModel" that encodes the binary interface of a compiled module. | +| " | Module.constants | Constant values which are references by generated bytecode. | +| " | $Module.java | Java source code that implements a Rascal module. | +| " | $Module.parsers | Pre-generated parsers as used by `$Module.java` | +| " | $ModuleTests.java | (Parametrized) JUnit tests extracted from `Module.rsc` | + +Next to these files the compiler outputs messages and their origin location: +* `[ERROR]` messages report on mistakes made in `Module.rsc` that prevent the proper execution of (a part of) a `Module.rsc`. Erroneous code is not executable. +* `[WARNING]` messages report on likely issues in `Module.rsc`; for example likely to be incomplete and throw an exception, or likely to never match and be dead, etc. +* `[INFO]` messages provide information useful for understanding advanced features of Rascal or hint at to be deprecated behavior that a programmer might prepare themselves for. + +#### Configuring the compiler with Maven + +The compiler is configured in `pom.xml` in three locations: +* `...` - each dependency leads to a compile-time library path entry, and a run-time JVM classpath entry. +* the general `...` tags for Rascal mojos: +```xml + + + org.rascalmpl + rascal-maven-plugin + ${rascal-maven-plugin.version} + + ...configuration tags go here... + + + +``` +* and finally the specific `...` tag for the `compile` goal. +```xml + + org.rascalmpl + rascal-maven-plugin + ${rascal-maven-plugin.version} + + + + default-compile + compile + + + compile + + + .... configuration tags go here .... + + + + +``` +* The latter overwrites the first, tag-by-tag + +The configuration tags are an extended subset of the standard fields of ((util::Reflective::PathConfig)). +The defaults are chosen such that you hardly have to use these tags. + +| *Configuration tag* | *Default* | *Description* | +| ------------------- | ----------| ------------- | +| `` | `./src/main/rascal` | list of directories where `.rsc` files can be found | +| `` | filled with `` | list of jar files or directories for the library dependencies | +| `` | empty | list of folders and files to skip while compiling | +| `` | `./target/generated-sources` | where the compiler stores intermediate Java code | +| `` | `./target/classes` | where the binary output of the compiler is staged before it goes into the jar file | +| `` | false | write the pathConfig to the log before compiling | +| `` | false | write imports and extends of each module to the log during compilation | +| `` | false | log every file written including timestamp during compilation | +| `` | true | warn about unused declarations | +| `` | true | warn about unused formal parameters (pattern variables of function signatures) | +| `` | true | warn about unused variables in patterns | +| `` | false | with this the compiler never reports failure in the presence of errors | +| `` | false | with this the compiler reports failure even if there are only warnings and no errors. Can not be true at the same time with `errorsAsWarnings` | +| `` | false | enables parallel compilation of a large group of `.rsc` source files | +| `` | `5` | restricts the number of parallel compiler processes. The mojo otherwises +computes an estimate based on the number of processors and the available memory | +| `` | empty | a list of files reachable from `` that will be compiled before the +other processes start. | +| `` | enables internal debugging prints of the compiler | + +#### Examples + +Maven is typically executed on the Un*x or Windows commandline like so: +```bash +#! /bin/bash + +# Typically runs the compiler and the tests before packaging everything +# in a jar file, and copying it to your local Maven repository: +mvn install + +# like `install` but without copying to the Maven repository; +mvn package + +# If configured as above in an `` This will run only the Rascal compiler +mvn rascal:compile + +# runs everything _except the Rascal compiler_ +mvn install -Drascal.compile.skip +``` + +#### Benefits + +* The Maven configuration, including the dependencies listed in `pom.xml` enable reuse of other Rascal programs as libraries or development tools. +* The Maven configuration, with the dependencies listed in `pom.xml` enable reuse of other JVM-based projects in the Maven Grand Central, or other repositories listed in the `pom.xml` +* The rascal:compile mojo works find with multi-module Maven projects and parent projects. + +#### Pitfalls + +* The current rascal:compile mojo executes the static checker and generates a `.tpl` TModel for every Rascal `.rsc` source file. The`.tpl` file enables modular checking against the "binary" interface of other imported and extended modules. _The JVM bytecode generator is not active yet._ +* The rascal:compile mojo is fully configured from the pom.xml. Other sources of configuration +may still uses the `Sources` fields in `RASCAL.MF`. This discrepancy will be resolved in the coming months. +* ((getProjectPathConfig)) may produce different configurations for source folders for the same reason. \ No newline at end of file diff --git a/courses/GettingStarted/MavenPlugin/ConsoleMojo/ConsoleMojo.md b/courses/GettingStarted/MavenPlugin/ConsoleMojo/ConsoleMojo.md new file mode 100644 index 000000000..5a1894b1a --- /dev/null +++ b/courses/GettingStarted/MavenPlugin/ConsoleMojo/ConsoleMojo.md @@ -0,0 +1,3 @@ +--- +title: Console Mojo +--- diff --git a/courses/GettingStarted/MavenPlugin/ExecMojo/ExecMojo.md b/courses/GettingStarted/MavenPlugin/ExecMojo/ExecMojo.md new file mode 100644 index 000000000..2e74ae66d --- /dev/null +++ b/courses/GettingStarted/MavenPlugin/ExecMojo/ExecMojo.md @@ -0,0 +1,4 @@ +--- +title: Exec Mojo +--- + diff --git a/courses/GettingStarted/MavenPlugin/MavenPlugin.md b/courses/GettingStarted/MavenPlugin/MavenPlugin.md new file mode 100644 index 000000000..993ebc075 --- /dev/null +++ b/courses/GettingStarted/MavenPlugin/MavenPlugin.md @@ -0,0 +1,48 @@ +--- +title: Maven Plugin +sidebar_position: 4 +details: + - mvn + - maven + - compile + - tutor + - exec + - package +--- + +The [rascal-maven-plugin](http://github.com/usethesource/rascal-maven-plugin) offers these Maven plugins for dealing with Rascal projects: +* ((CompileMojo)) for static checking and compiling Rascal projects. +* ((TutorMojo)) for generating API docs, and compiling documentation courses. +* ((PackageMojo)) for packing compiled Rascal code, source code and documentation into a jar file. +* ((ExecMojo)) for executing arbitrary Rascal code during an arbitrary Maven goal. +* ((ConsoleMojo)) for starting a Rascal ((REPL)) + +Each of the above is configured in XML in the local `pom.xml` file of a Rascal project. All of them are executed during a `mvn package` or `mvn install` commandline. If the local pom has the right configuration, then each mojo can also be invoked separately: +* `mvn rascal:compile` runs the compiler and `-Drascal.compile.skip` guarantees it is skipped. +* `mvn rascal:tutor` runs the tutor compiler and `-Drascal.tutor.skip` guarantees it is skipped. +* `mvn rascal:package` runs the package rewriter and `-Drascal.package.skip` guarantees it is skipped. +* `mvn rascal:exec` executes some Rascal code, while `-Drascal.exec.skip` makes sure this goal is skipped. + +#### Examples + +This is a typical `pom.xml` file configuring the *rascal-maven-plugin* that will provide everything +necessary for a Rascal project, except the ((TutorMojo)). This is also the setup that is generated by the ((newRascalProject)) function: + +```rascal-prepare +import util::Reflective; +newRascalPomFile(|tmp:///my-project|); +``` + +```xml +((|tmp:///my-project/pom.xml|)) +``` + +#### Benefits + +* Almost zero configuration (due to sensible defaults) for projects that have: + * Rascal source code in `/src/main/rascal` + * Dependencies listed in `pom.xml` `` tags +* When using the ((getProjectPathConfig)) function from ((util::Reflective)), and a local `pom.xml` is available, then the produced configuration will be influenced by what is configured in the `pom.xml` file as well. +* All dependencies defined in the `pom.xml` are used to automatically configure the library path of the compiler and the interpreter, as well as the classpath of the compiled or interpreted runtime engine. +* Rascal projects can depend on any other Maven project + diff --git a/courses/GettingStarted/MavenPlugin/PackageMojo/PackageMojo.md b/courses/GettingStarted/MavenPlugin/PackageMojo/PackageMojo.md new file mode 100644 index 000000000..74a5c1782 --- /dev/null +++ b/courses/GettingStarted/MavenPlugin/PackageMojo/PackageMojo.md @@ -0,0 +1,3 @@ +--- +title: Package Mojo +--- diff --git a/courses/GettingStarted/MavenPlugin/TutorMojo/TutorMojo.md b/courses/GettingStarted/MavenPlugin/TutorMojo/TutorMojo.md new file mode 100644 index 000000000..2d2e5c3d7 --- /dev/null +++ b/courses/GettingStarted/MavenPlugin/TutorMojo/TutorMojo.md @@ -0,0 +1,4 @@ +--- +title: Tutor Mojo +--- + diff --git a/courses/GettingStarted/RunningRascal/Eclipse/Eclipse.md b/courses/GettingStarted/RunningRascal/Eclipse/Eclipse.md deleted file mode 100644 index f912f570f..000000000 --- a/courses/GettingStarted/RunningRascal/Eclipse/Eclipse.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Running Rascal in Eclipse ---- - -After the [installation procedure]((DownloadAndInstallation)) running Rascal -in Eclipse is a matter of starting the ((RascalShell)): -1. with the command button -2. using the the pull-down menu - -## Starting ((RascalShell)) with the command button. - -* If no project was (ever) selected the button starts a ((RascalShell)) with only the standard library on its path -* Otherwise, the last selected project in any navigator, or opened file in the edit space, selects the project that is used to configure the search paths. -* Use the [create new project instructions]((CreateNewProject)), or the `New project Wizard` in Eclipse to obtain a Rascal project setup. - -![eclipse-commandbutton-screenshot]((eclipse-commandbutton-screenshot.png)) - -:::info -The Rascal logo appears twice in the button bar: -* the left one is to start the ((RascalShell)) -* the right one is to select the Rascal Eclipse "perspective" with additional features like the "Rascal Navigator" -::: - -## Starting ((RascalShell)) from the menu - -From the menu the behavior is exactly the same as from the button bar: - -![eclipse-menu-screenshot]((eclipse-menu-screenshot.png)) - -## Programmatic access to Eclipse features - -* Use ((util::IDEServices)) to communicate with Eclipse, to register problems, to open files and browsers, etc. -* Use `util::IDE` for programming Eclipse plugins for languages designed using Rascal. -* The `project://` location scheme provides access to the root of each registered folder in the VScode workspace. -* Use ((util::Reflective::getProjectPathConfig)) for Java and Rascal project configuration extracted from Maven and Eclipse configuration (classpaths, sourcepaths, library dependencies). - - -:::info -The `util::IDE` module is waiting to be documented -::: \ No newline at end of file diff --git a/courses/GettingStarted/RunningRascal/Eclipse/eclipse-commandbutton-screenshot.png b/courses/GettingStarted/RunningRascal/Eclipse/eclipse-commandbutton-screenshot.png deleted file mode 100644 index 15a012237..000000000 Binary files a/courses/GettingStarted/RunningRascal/Eclipse/eclipse-commandbutton-screenshot.png and /dev/null differ diff --git a/courses/GettingStarted/RunningRascal/Eclipse/eclipse-menu-screenshot.png b/courses/GettingStarted/RunningRascal/Eclipse/eclipse-menu-screenshot.png deleted file mode 100644 index 3dbaa25ed..000000000 Binary files a/courses/GettingStarted/RunningRascal/Eclipse/eclipse-menu-screenshot.png and /dev/null differ diff --git a/courses/GettingStarted/RunningRascal/RunningRascal.md b/courses/GettingStarted/RunningRascal/RunningRascal.md index 7aafd8341..3286d3b41 100644 --- a/courses/GettingStarted/RunningRascal/RunningRascal.md +++ b/courses/GettingStarted/RunningRascal/RunningRascal.md @@ -7,7 +7,6 @@ sidebar_position: 2 1. On the Unix or Windows [Commandline]((RunningRascal-Commandline)), start a ((RascalShell)) by: `java -jar rascal-.jar` 2. In [VScode]((RunningRascal-VScode)), in the command palette type `Rascal` and select `Create Rascal Terminal` -3. In [Eclipse]((RunningRascal-Eclipse)), from the button bar select the button with the Rascal logo. 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. diff --git a/courses/GettingStarted/Troubleshooting/EditingEclipseIni/EditingEclipseIni.md b/courses/GettingStarted/Troubleshooting/EditingEclipseIni/EditingEclipseIni.md deleted file mode 100644 index 1227965e1..000000000 --- a/courses/GettingStarted/Troubleshooting/EditingEclipseIni/EditingEclipseIni.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Editing eclipse.ini ---- - -#### Synopsis - -Fixing configuration issues of Eclipse - -#### Description - -The `eclipse.ini` file must be edited to configure the _JVM_ that Rascal uses to run its code. -Reasons for configuring it are: -* More stackspace is required to execute the embedded parser generator -* More heap space is required to load all of the modules -* The right JVM version needs to be configured (Java _11_) - -Steps to configure `eclipse.ini` -1. Find the file first: - * on MacOSX it may be in /Applications/Eclipse.app/Contents/MacOS/eclipse.ini - * on Windows it may be in C:\Program Files\eclipse\eclipse.ini - * on Linux its where you extracted the eclipse tarball. -2. then find the line that starts with `-vm` and add on _the next separate line_ the path to the java run-time binary - * e.g. `/usr/bin/java` - * e.g. `C:\Program Files\Java SDK 1.8\bin\javaw` (note there is no .exe). -3. If you can’t find the line that starts with `-vm` you should add it _before the line starting with_ `-vmargs` - -##### Benefits - -* Typically `-Xss8m` is enough stacksize -* Typically `-Xmx1G` is enough heap size. -* Rascal works with Java 11. - -#### Pitfalls - -* Re-installing Eclipse requires editing the `ini` file again. -* Upgrading Java installation, and removing the old one, might invalidate the Eclipse configuration. -* Rascal works _only_ with Java 11. \ No newline at end of file diff --git a/courses/GettingStarted/Troubleshooting/StackOverflow/StackOverflow.md b/courses/GettingStarted/Troubleshooting/StackOverflow/StackOverflow.md index 3c0726d7f..f398c281b 100644 --- a/courses/GettingStarted/Troubleshooting/StackOverflow/StackOverflow.md +++ b/courses/GettingStarted/Troubleshooting/StackOverflow/StackOverflow.md @@ -12,7 +12,6 @@ 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` -* For Eclipse, this configuration goes into your `eclipse.ini` file. See ((EditingEclipseIni)) for more information. * On the commandline, you can use `java -Xss32m ...` * In VScode the Rascal language server already configures this automatically. * The same for the Rascal Maven plugins; they are configured with big stack sizes. \ No newline at end of file diff --git a/courses/Rascal/Errors/CompileTimeErrors/ModuleImport/ModuleImport.md b/courses/Rascal/Errors/CompileTimeErrors/ModuleImport/ModuleImport.md index cafa79a5b..fefadbadf 100644 --- a/courses/Rascal/Errors/CompileTimeErrors/ModuleImport/ModuleImport.md +++ b/courses/Rascal/Errors/CompileTimeErrors/ModuleImport/ModuleImport.md @@ -28,9 +28,6 @@ This can be caused by Remedies: * Correct the mispelled name. -* In Eclipse the safest way to execute a Rascal module is to select it in the Package Explorer, -right click on it and then select `Run as Rascal Application`. - * At the command line, change directory to where the toplevel module of your program is located and then execute the Rascal Shell. #### Examples diff --git a/courses/RascalAmendmentProposals/RAP10/RAP10.md b/courses/RascalAmendmentProposals/RAP10/RAP10.md index 23d398d50..9ec8313ae 100644 --- a/courses/RascalAmendmentProposals/RAP10/RAP10.md +++ b/courses/RascalAmendmentProposals/RAP10/RAP10.md @@ -12,7 +12,7 @@ sidebar_position: 10 ## Abstract -Rascal can be executed in JVM threads (as in the Eclipse context for example) and also we plan to add concurrency features to Rascal itself ((RAP8)). This puts a lot more pressure on our IO mechanism than before, leading to races on disk and on other external resources identified by values of type `loc`. +Rascal can be executed in JVM threads and also we plan to add concurrency features to Rascal itself ((RAP8)). This puts a lot more pressure on our IO mechanism than before, leading to races on disk and on other external resources identified by values of type `loc`. We propose to extend the URIResolverRegistry (which is Rascal’s generic resource access mechanism) with a cross-cutting “locking” feature that is safe (up to *unpredicted* aliasing of location URIs). @@ -21,7 +21,7 @@ A second part of the proposal is to expose this locking feature on the language ## Motivation * Many use cases of Rascal involve file IO - * Often in a dynamic context where multiple file processors read and write concurrently, such as the Eclipse IDE or an LSP server. + * Often in a dynamic context where multiple file processors read and write concurrently, such as the an LSP server. * More and more in a concurrent and even parallel context, where multi-core architectures are used to speed up larger computations * File IO is hazardous in a concurrent context, due to race conditions * So, we need some form of locking mechanism on file IO. diff --git a/courses/Recipes/Metrics/MeasuringJava/MeasuringJava.md b/courses/Recipes/Metrics/MeasuringJava/MeasuringJava.md index 7d5bb6c2c..5b7824a75 100644 --- a/courses/Recipes/Metrics/MeasuringJava/MeasuringJava.md +++ b/courses/Recipes/Metrics/MeasuringJava/MeasuringJava.md @@ -4,7 +4,7 @@ title: Measuring Java #### Synopsis -A few steps using the M3 model to compute basic metrics for a Java project in Eclipse. +A few steps using the M3 model to compute basic metrics for a Java project in VScode. #### Syntax @@ -17,10 +17,10 @@ A few steps using the M3 model to compute basic metrics for a Java project in Ec #### Description -This is a recipe for computing basic or more advanced metrics from a Java project in Eclipse. We assume: +This is a recipe for computing basic or more advanced metrics from a Java project. We assume: -* You have Rascal installed in an Eclipse instance. -* You have a Java project in your Eclipse workspace that compiles without errors. Let's call it `HelloWorld`. +* You have the Rascal extension installed in an VScode instance. +* You have a Java project in your VScode workspace that compiles without errors. Let's call it `HelloWorld`. Now we will follow the [EASY]((EASY)) paradigm: diff --git a/courses/WhyRascal/CompareWithOtherParadigms/ASFPlusSDF/ASFPlusSDF.md b/courses/WhyRascal/CompareWithOtherParadigms/ASFPlusSDF/ASFPlusSDF.md index e2186a386..d3492ae0f 100644 --- a/courses/WhyRascal/CompareWithOtherParadigms/ASFPlusSDF/ASFPlusSDF.md +++ b/courses/WhyRascal/CompareWithOtherParadigms/ASFPlusSDF/ASFPlusSDF.md @@ -57,7 +57,7 @@ What are the differences between ASF+SDF and Rascal? What are the commonalities? * Rascal is based on a Java interpreter, or a Java run-time when compiled. So the code is more portable. -* Rascal is supported by a modern, Eclipse-based, IDE, unlike the simple IDE of the ASF+SDF Meta-Environment. +* Rascal is supported by a modern, VScode-based IDE, unlike the simple IDE of the ASF+SDF Meta-Environment. IDE services like keyword highlighting, outlining, and more are available for the Rascal programmer. #### Examples diff --git a/courses/WhyRascal/UseCases/DomainSpecificLanguages/DomainSpecificLanguages.md b/courses/WhyRascal/UseCases/DomainSpecificLanguages/DomainSpecificLanguages.md index d60f80a9e..78dcd34e7 100644 --- a/courses/WhyRascal/UseCases/DomainSpecificLanguages/DomainSpecificLanguages.md +++ b/courses/WhyRascal/UseCases/DomainSpecificLanguages/DomainSpecificLanguages.md @@ -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 VScode extension (an LSP server) 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. diff --git a/pom.xml b/pom.xml index edb3d2cab..95a66f8a5 100644 --- a/pom.xml +++ b/pom.xml @@ -24,8 +24,8 @@ UTF-8 UTF-8 - 0.28.9 - 0.40.17 + 0.30.0-RC24 + 0.41.0-RC42 0.19.9 0.13.1 0.1.15 diff --git a/src/components/HomepageFeatures/index.js b/src/components/HomepageFeatures/index.js index 328ddc8c9..ae9547629 100644 --- a/src/components/HomepageFeatures/index.js +++ b/src/components/HomepageFeatures/index.js @@ -12,7 +12,6 @@ const FeatureList = [
  • Context Free Grammars
  • Concrete Syntax Fragments
  • Static Analysis
  • -
  • Eclipse Plugins
  • VScode extensions
  • Language Server Protocol
  • diff --git a/yarn.lock b/yarn.lock index bdee0d7e3..e0b234e03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1568,7 +1568,7 @@ "@docusaurus/theme-search-algolia" "2.4.3" "@docusaurus/types" "2.4.3" -"@docusaurus/react-loadable@5.5.2": +"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": version "5.5.2" resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== @@ -2871,9 +2871,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: - version "1.0.30001525" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz" - integrity sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q== + version "1.0.30001717" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz" + integrity sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw== ccount@^1.0.0: version "1.1.0" @@ -6207,14 +6207,6 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@babel/runtime" "^7.10.3" -"react-loadable@npm:@docusaurus/react-loadable@5.5.2": - version "5.5.2" - resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" - integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== - dependencies: - "@types/react" "*" - prop-types "^15.6.2" - react-router-config@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988"