mirror of
https://github.com/enso-org/enso.git
synced 2024-11-25 21:25:20 +03:00
Downloadable VSCode extension (#7861)
This commit is contained in:
parent
15b1989418
commit
7a31dcdd58
16
.github/workflows/enso4igv.yml
vendored
16
.github/workflows/enso4igv.yml
vendored
@ -1,7 +1,4 @@
|
|||||||
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
|
name: Enso Language Support for VSCode, IGV, NetBeans
|
||||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
|
|
||||||
|
|
||||||
name: Enso Language Support for IGV
|
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@ -30,7 +27,7 @@ jobs:
|
|||||||
- name: Update project version
|
- name: Update project version
|
||||||
working-directory: tools/enso4igv
|
working-directory: tools/enso4igv
|
||||||
run: |
|
run: |
|
||||||
mvn versions:set -DnewVersion=`mvn -q -DforceStdout help:evaluate -Dexpression=project.version | cut -f1 -d -`.$GITHUB_RUN_NUMBER
|
mvn versions:set -DnewVersion=`mvn -q -DforceStdout help:evaluate -Dexpression=project.version | cut -f1 -d -`.`expr $GITHUB_RUN_NUMBER - 1666`
|
||||||
|
|
||||||
- name: Build with Maven
|
- name: Build with Maven
|
||||||
run: mvn -B -Pvsix package --file tools/enso4igv/pom.xml
|
run: mvn -B -Pvsix package --file tools/enso4igv/pom.xml
|
||||||
@ -43,5 +40,14 @@ jobs:
|
|||||||
- name: Install Node.js modules
|
- name: Install Node.js modules
|
||||||
run: mvn -B -Pvsix npm:install --file tools/enso4igv/pom.xml
|
run: mvn -B -Pvsix npm:install --file tools/enso4igv/pom.xml
|
||||||
|
|
||||||
|
- name: Update package.json version
|
||||||
|
run: mvn -B -Pvsix npm:exec@version --file tools/enso4igv/pom.xml
|
||||||
|
|
||||||
- name: Build VSCode Extension
|
- name: Build VSCode Extension
|
||||||
run: mvn -B -Pvsix npm:run@vsix --file tools/enso4igv/pom.xml
|
run: mvn -B -Pvsix npm:run@vsix --file tools/enso4igv/pom.xml
|
||||||
|
|
||||||
|
- name: Archive VSCode extension
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: VSCode Extension
|
||||||
|
path: tools/enso4igv/*.vsix
|
||||||
|
19
.vscode/launch.json
vendored
Normal file
19
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Listen to 5005",
|
||||||
|
"type": "java+",
|
||||||
|
"request": "attach",
|
||||||
|
"listen": "true",
|
||||||
|
"hostName": "localhost",
|
||||||
|
"port": "5005"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Debug Adapter Protocol",
|
||||||
|
"type": "node",
|
||||||
|
"debugServer": 4711,
|
||||||
|
"request": "attach"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -962,6 +962,7 @@
|
|||||||
- [Support runtime checks of intersection types][7769]
|
- [Support runtime checks of intersection types][7769]
|
||||||
- [Merge `Small_Integer` and `Big_Integer` types][7636]
|
- [Merge `Small_Integer` and `Big_Integer` types][7636]
|
||||||
- [Inline type ascriptions][7796]
|
- [Inline type ascriptions][7796]
|
||||||
|
- [Downloadable VSCode extension][7861]
|
||||||
- [New `project/status` route for reporting LS state][7801]
|
- [New `project/status` route for reporting LS state][7801]
|
||||||
|
|
||||||
[3227]: https://github.com/enso-org/enso/pull/3227
|
[3227]: https://github.com/enso-org/enso/pull/3227
|
||||||
@ -1105,6 +1106,7 @@
|
|||||||
[7636]: https://github.com/enso-org/enso/pull/7636
|
[7636]: https://github.com/enso-org/enso/pull/7636
|
||||||
[7796]: https://github.com/enso-org/enso/pull/7796
|
[7796]: https://github.com/enso-org/enso/pull/7796
|
||||||
[7801]: https://github.com/enso-org/enso/pull/7801
|
[7801]: https://github.com/enso-org/enso/pull/7801
|
||||||
|
[7861]: https://github.com/enso-org/enso/pull/7861
|
||||||
|
|
||||||
# Enso 2.0.0-alpha.18 (2021-10-12)
|
# Enso 2.0.0-alpha.18 (2021-10-12)
|
||||||
|
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
[![Enso Language Support for IGV](https://github.com/enso-org/enso/actions/workflows/enso4igv.yml/badge.svg)](https://github.com/enso-org/enso/actions/workflows/enso4igv.yml)
|
[![Enso Language Support for IGV](https://github.com/enso-org/enso/actions/workflows/enso4igv.yml/badge.svg)](https://github.com/enso-org/enso/actions/workflows/enso4igv.yml)
|
||||||
|
|
||||||
|
Searching for **VSCode** support? Read more about
|
||||||
|
[VSCode extension for Enso here](vscode.md).
|
||||||
|
|
||||||
[Enso language](http://enso.org) runtime engine is built on top of
|
[Enso language](http://enso.org) runtime engine is built on top of
|
||||||
[GraalVM](http://graalvm.org) and its _Truffle framework_. Enso, as a good
|
[GraalVM](http://graalvm.org) and its _Truffle framework_. Enso, as a good
|
||||||
citizen of the GraalVM ecosystem, benefits from polyglot capabilities of GraalVM
|
citizen of the GraalVM ecosystem, benefits from polyglot capabilities of GraalVM
|
||||||
@ -146,24 +149,7 @@ target/enso4igv-*-SNAPSHOT.nbm
|
|||||||
an NBM file is generated which can be installed into IGV, NetBeans or any other
|
an NBM file is generated which can be installed into IGV, NetBeans or any other
|
||||||
NetBeans based application.
|
NetBeans based application.
|
||||||
|
|
||||||
## Building VSCode Extension
|
## VSCode Extension
|
||||||
|
|
||||||
One can package the same plugin into a VSCode extension and obtain _Enso_ syntax
|
There is also a VSCode extension for Enso. Read more about the extension
|
||||||
coloring as well as support for editing `engine/runtime` sources in **VSCode**.
|
[here](vscode.md).
|
||||||
Just invoke:
|
|
||||||
|
|
||||||
```
|
|
||||||
enso/tools/enso4igv$ npm install
|
|
||||||
enso/tools/enso4igv$ npm run vsix
|
|
||||||
enso/tools/enso4igv$ ls *.vsix
|
|
||||||
enso4vscode-*.vsix
|
|
||||||
```
|
|
||||||
|
|
||||||
one needs to have `npm`, Java and `mvn` available to successfully build the
|
|
||||||
VSCode extension. Alternatively one can use Maven to built the VSIX extension
|
|
||||||
via `mvn clean install -Pvsix`.
|
|
||||||
|
|
||||||
![Install from VSIX...](https://user-images.githubusercontent.com/26887752/210131513-8c729f9b-5ddc-43aa-9ad5-420b7d87d81d.png)
|
|
||||||
|
|
||||||
Once the `.vsix` file is created, it can be installed into VSCode. Select
|
|
||||||
_Extension perspective_ and choose _Install from VSIX..._ menu item.
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<artifactId>enso4igv</artifactId>
|
<artifactId>enso4igv</artifactId>
|
||||||
<packaging>nbm</packaging>
|
<packaging>nbm</packaging>
|
||||||
<name>Enso Language Support for NetBeans & Ideal Graph Visualizer</name>
|
<name>Enso Language Support for NetBeans & Ideal Graph Visualizer</name>
|
||||||
<version>1.13-NAPSHOT</version>
|
<version>1.15-SNAPSHOT</version>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
@ -224,6 +224,18 @@
|
|||||||
<goal>install</goal>
|
<goal>install</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>version</id>
|
||||||
|
<goals>
|
||||||
|
<goal>exec</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<command>version</command>
|
||||||
|
<args>
|
||||||
|
<arg>${project.version}</arg>
|
||||||
|
</args>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
<id>vsix</id>
|
<id>vsix</id>
|
||||||
<phase>post-integration-test</phase>
|
<phase>post-integration-test</phase>
|
||||||
|
88
tools/enso4igv/vscode.md
Normal file
88
tools/enso4igv/vscode.md
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
# Enso Language Support for VSCode
|
||||||
|
|
||||||
|
[![Enso Language Support for VSCode](https://github.com/enso-org/enso/actions/workflows/enso4igv.yml/badge.svg)](https://github.com/enso-org/enso/actions/workflows/enso4igv.yml)
|
||||||
|
|
||||||
|
## Downloading
|
||||||
|
|
||||||
|
**Download** _"VSCode Extension" artifact_ from the
|
||||||
|
[latest actions run](https://github.com/enso-org/enso/actions/workflows/enso4igv.yml),
|
||||||
|
unzip, install into VSCode:
|
||||||
|
|
||||||
|
![Install from VSIX file](https://github.com/enso-org/enso/assets/26887752/9d7c35d6-44b2-4157-b451-bb27980425c7)
|
||||||
|
|
||||||
|
Your Enso files will get proper **syntax coloring**. You'll be able to **debug**
|
||||||
|
Java/Enso code interchangeably.
|
||||||
|
|
||||||
|
After installing the Enso `.vsix` file (and reloading window) we can find
|
||||||
|
following two extensions in the system:
|
||||||
|
|
||||||
|
![Installed VSCode extensions](https://github.com/enso-org/enso/assets/26887752/7dcfc0a0-8e7f-4aa6-ae67-99c3f875a658)
|
||||||
|
|
||||||
|
## Using & Debugging
|
||||||
|
|
||||||
|
Once installation is over let's continue with choosing _File/Open Folder..._ and
|
||||||
|
opening root of [Enso Git Repository](http://github.com/enso-org/enso)
|
||||||
|
(presumably already built with
|
||||||
|
[sbt buildEngineDistribution](../../docs/CONTRIBUTING.md#running-enso)).
|
||||||
|
Following set of projects is opened and ready for use:
|
||||||
|
|
||||||
|
![Enso Projects](https://github.com/enso-org/enso/assets/26887752/7919d2ee-4bcd-4b7b-954a-e2dc61f7c01a)
|
||||||
|
|
||||||
|
With the workspace opened, you can open any Enso or Java file. Let's open for
|
||||||
|
example `Vector_Spec.enso` - a set of unit tests for `Vector` - a core class of
|
||||||
|
Enso standard library:
|
||||||
|
|
||||||
|
![Openning Vector](https://github.com/enso-org/enso/assets/26887752/0d182fc8-4ff9-48d7-af63-35cad5fb75cc)
|
||||||
|
|
||||||
|
It is now possible to place breakpoints into the `Vector_Spec.enso` file. Let's
|
||||||
|
place one on line 120:
|
||||||
|
|
||||||
|
![Breakpoint](https://github.com/enso-org/enso/assets/26887752/b6ae4725-49ef-439f-b900-3e08724e3748)
|
||||||
|
|
||||||
|
Let's do a bit of debugging. Select _"Listen to 5005"_ debug configuration:
|
||||||
|
|
||||||
|
![Listen to 5005](https://github.com/enso-org/enso/assets/26887752/1874bcb1-cf8b-4df4-92d8-e7fb57e1b17a)
|
||||||
|
|
||||||
|
And then just
|
||||||
|
[execute the engine distribution](../../docs/CONTRIBUTING.md#running-enso) in
|
||||||
|
debug mode:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sbt:enso> runEngineDistribution --debug --run test/Tests/src/Data/Vector_Spec.enso
|
||||||
|
```
|
||||||
|
|
||||||
|
After a while the breakpoint is hit and one can inspect variables, step over the
|
||||||
|
statements and more...
|
||||||
|
|
||||||
|
![Breakpoint in Enso](https://github.com/enso-org/enso/assets/26887752/54ae4126-f77a-4463-9647-4dd3a5f83526)
|
||||||
|
|
||||||
|
...as one can seamlessly switch to debugging on the Enso interpreter itself! One
|
||||||
|
can place breakpoint into Java class like `PanicException.java` and continue
|
||||||
|
debugging with `F5`:
|
||||||
|
|
||||||
|
![Breakpoint in Java](https://github.com/enso-org/enso/assets/26887752/db3fbe4e-3bb3-4d4a-bb2a-b5039f716c85)
|
||||||
|
|
||||||
|
Should one ever want to jump back from Java to Enso one can use the _"Pause in
|
||||||
|
GraalVM Script"_ action. Select it and continue with `F5` - as soon as the code
|
||||||
|
reaches a statement in Enso, it stops:
|
||||||
|
|
||||||
|
![Pause in GraalVM](https://github.com/enso-org/enso/assets/26887752/98eb0bb7-48c2-4208-9d9a-5b8bacc99de2)
|
||||||
|
|
||||||
|
## Building VSCode Extension
|
||||||
|
|
||||||
|
To build thisVSCode extension and obtain _Enso_ syntax coloring as well as
|
||||||
|
support for editing and debugging of `engine/runtime` sources in **VSCode**:
|
||||||
|
|
||||||
|
```
|
||||||
|
enso/tools/enso4igv$ mvn clean install -Pvsix
|
||||||
|
enso/tools/enso4igv$ ls *.vsix
|
||||||
|
enso4vscode-*.vsix
|
||||||
|
```
|
||||||
|
|
||||||
|
one needs to have `npm`, Java and `mvn` available to successfully build the
|
||||||
|
VSCode extension.
|
||||||
|
|
||||||
|
![Install from VSIX...](https://user-images.githubusercontent.com/26887752/210131513-8c729f9b-5ddc-43aa-9ad5-420b7d87d81d.png)
|
||||||
|
|
||||||
|
Once the `.vsix` file is created, it can be installed into VSCode. Select
|
||||||
|
_Extension perspective_ and choose _Install from VSIX..._ menu item.
|
Loading…
Reference in New Issue
Block a user