Language Server for SimplicityHL language.
- Basic diagnostic for SimplicityHL code
- Completions of built-ins, jets and functions
- Hover for built-ins, jets and functions, with support of documentation
- Go to definition for functions
Clone this repository and install using Cargo:
https://github.com/distributed-lab/simplicityhl-lsp
cd simplicityhl-lsp
cargo install --path .-
Install
simplicityhl-lspto yourPATH. -
Include this Lua snippet to your Neovim config:
vim.filetype.add({
extension = {
simf = "simf",
},
})
vim.lsp.config["simplicityhl-lsp"] = { cmd = { "simplicityhl-lsp" }, filetypes = { "simf" }, settings = {} }
vim.lsp.enable("simplicityhl-lsp")- Open
.simffile and check that LSP is active ("attached"):
:checkhealth vim.lspCurrently, the Language Server does not provide any syntax highlighting on its own, but you can install tree-sitter for SimplicityHL:
-
Set up the
nvim-treesitterplugin. -
Include this Lua snippet in your Neovim config to register parser:
vim.api.nvim_create_autocmd("User", {
pattern = "TSUpdate",
callback = function()
require("nvim-treesitter.parsers").simplicityhl = {
install_info = {
url = "https://github.com/distributed-lab/tree-sitter-simplicityhl",
queries = "queries",
},
filetype = "simf",
tier = 0,
}
end,
})
vim.treesitter.language.register("simplicityhl", { "simf" })
vim.api.nvim_create_autocmd("FileType", {
pattern = { "simf" },
callback = function()
vim.treesitter.start()
end,
})- Restart Neovim and run:
:TSInstall simplicityhlIf everything is working correctly, you should see syntax highlighting in .simf files.
Note: This method is compatible only with nvim-treesitter v0.10 or newer.



