IDE for the Reach DApp programming language
IDE for the Reach DApp programming language.
This provides a VS Code extension with full-fledged IDE support to help with writing Reach programs that can be deployed onto Ethereum.
Features:
Right-click menu commands to interact with Reach and Ethereum:
See my published blog post for more details about how this project was developed: https://ericglau.medium.com/developing-an-ide-for-a-decentralized-application-programming-language-6728621b2b45
This project makes use of the Reach compiler in the background for live compilation results, quick fix suggestions, and Ethereum contract generation.
The compiler works on a live working copy of the file without needing the user to save it first, and generates compilation results on the fly that are processed into the IDE's diagnostic highlighting. The suggestions provided by the compiler are converted in to the IDE's Quick Fix selections. If the Reach compiler is updated, for example for syntax changes or for better suggestions, the IDE will make use of those automatically.
Hover documentation for all Reach statements was sourced from the Reach reference website by converting to markdown and then converting to Javascript code. Hyperlinks in the documentation for keywords are maintained and point to the relevant sections of the Reach website which opens in a browser.
Ethereum integration comes from the compiled Reach contract and is retrieved to the user's clipboard, allowing them to easily grab the contract bytecode or ABI and paste it into whatever tools they are familiar with.
The language features are implemented using the Language Server Protocol, which makes this solution easily extensible to other code editors. The project provides both a Reach language server and Reach VS Code language client which communicate with each other through this protocol.