simplicityhl-lsp

Crates.iosimplicityhl-lsp
lib.rssimplicityhl-lsp
version0.2.1
created_at2025-11-11 10:37:52.692916+00
updated_at2025-11-26 10:47:02.000973+00
descriptionLanguage Server Protocol (LSP) server for SimplicityHL.
homepagehttps://github.com/BlockstreamResearch/SimplicityHL/tree/master/lsp
repositoryhttps://github.com/BlockstreamResearch/SimplicityHL
max_upload_size
id1926966
size5,537,065
Kyrylo Riabov (KyrylR)

documentation

https://docs.rs/simplicityhl-lsp

README

SimplicityHL LSP

Language Server for SimplicityHL language.

Features

  • Basic diagnostic for SimplicityHL code

diagnostics

  • Completions of built-ins, jets and functions

completion

  • Hover for built-ins, jets and functions, with support of documentation

hover

  • Go to definition for functions

goto-definition

Installation

Install Language Server using cargo:

cargo install simplicityhl-lsp

Integration with editors

Neovim

LSP

  1. Install simplicityhl-lsp to your PATH.

  2. 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")
  1. Open .simf file and check that LSP is active ("attached"):
:checkhealth vim.lsp

Tree-sitter (Highlighting)

Currently, the Language Server does not provide any syntax highlighting on its own, but you can install tree-sitter for SimplicityHL:

  1. Set up the nvim-treesitter plugin.

  2. 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,
})
  1. Restart Neovim and run:
:TSInstall simplicityhl

If 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.

Commit count: 717

cargo fmt