This is Visual Studio Code extension for Rholang programming language. It has support for syntax highlighting and code evaluation with error highlighting.
Rholang is a fully featured, general purpose, Turing-complete programming language built from the rho-calculus. It is a behaviorally typed, r-eflective, h-igher o-rder process language and the official smart contracting language of RChain. Its purpose is to concretize fine-grained, programmatic concurrency. RChain Architecture
Rholang is currently in active development and syntax can slightly change. Current version of the plugin follows this version of Rho grammar and available examples.
Programmers in concurrent languages such as Erlang/Elixir say that one of the hardest problems is to coordinate the names (locations) of processes. It seems that Rholang with Namespace logic looks like a great solution for coordination of resources.
With all this sweet superpowers, that comes with the Rholang compiler and type checker, it is a pleasure to write (smart) contract
s. 🍭
Just open your favorite .rho
file, write some exciting Rholang code, save the file and enjoy the results in VSCode Output Panel. 😄
In the Output Panel you can see the progress when RNode instance is starting in the background. It will output the message and create notification when it's ready to evaluate the code.
The Language Server is enabled and runs locally installed RNode by default. If RNode is not installed (not in the path, in extension settings it can be switched to use Docker or set custom RNode executable location.
Settings | Default | Description |
---|---|---|
Enable Language Server | true |
Enable loading of the Language Server and RNode when open a file. |
Enable Docker | false |
Run RNode with Docker. |
RNode | rnode |
RNode executable (path) used by Rholang Language Server. |
RNode Docker Image | rchain/rnode |
Docker image (version) used by Rholang Language Server. |
Show All Output | false |
Show all output from RNode in Output Panel. |
Currently, one RNode instance is created with one VSCode instance. For each RNode instance unique temp directory is created which holds .rnode
data directory. If VSCode window is reloaded it will create a fresh instance of RNode also.
If you are new to Rholang I recommend to visit Joshy Orndorff's excellent introduction Learn Rholang By Example for beginners and intermediate programmers.
- add commands, completion, hovers...
- connect with the compiler (get semantic info)
- ...
vsce publish -p <token>
ovsx publish -p <token>
- Update syntax highlighting for Rholang 1.1 (RNode v0.13.0)
- Update for RNode version >0.9.25 (config changes)
- Switch to gRPC connection 🚀
- Update for RNode v0.9.{14,15} (new API)
- Update RNode option
--allow-private-addresses
- Update for RNode v0.9.5
- Support for RNode installed locally
- Fix v0.9.3 - error detection, cost output
- Docker image user settings
- Grammar update for Rholang Mercury release v0.8>.
- Rholang Language Server with error highlighting.
- Snippets for basic Rholang terms.
- Initial release. Syntax highlighting.