Sail VSCode Extension
This extension provides basic support for writing Sail code. Sail is a programming language for describing the semantics of instruction set architectures (ISAs) and their semantics. It is the official specification language for RISC-V but there are also Sail models for ARM and x86.
Features / Differences from the official Extension
There is an existing extension in the marketplace however it only does syntax highlighting, and notably it is missing highlighting for single line
This extension is quite basic but it improves on that in two ways:
I have started working on a parser but unfortunately Sail is quite a difficult language to parse. It also doesn't have a proper module system yet so it is not especially IDE-friendly. If multiple files define the same function, when you go-to-definition a more or less random one will be picked. This is unfortunately very common because the only way to write extensible Sail files is to define the same function in multiple files and then only compile one of them. In RISC-V this is used for RV32/RV64 and also for CHERI.
To build this you need:
To test it open this directory in VSCode and run it (F5 or Debug->Start Debugging).
To build a VSIX package (VSCode extension package), run