hyprls icon indicating copy to clipboard operation
hyprls copied to clipboard

A LSP server for Hyprland config files [maintainer=@ewen-lbh]

HyprLS

A LSP server for Hyprland configuration files.

Features

Not checked means planned / work in progress.

  • [x] Auto-complete
  • [x] Hover
    • [ ] TODO: Documentation on hover of categories?
  • [x] Go to definition
  • [x] Color pickers
  • [x] Document symbols
  • [ ] Diagnostics
  • [ ] Formatting
  • [ ] Semantic highlighting

Installation

With go install

go install github.com/ewen-lbh/hyprls/cmd/hyprls@latest

From source

  • Required: Just (paru -S just on Arch Linux (btw))
git clone --recurse-submodules https://github.com/ewen-lbh/hyprls
cd hyprls
# installs the binary to ~/.local/bin. 
# Make sure that directory exists and is in your PATH
just install 

Usage

With Neovim

Combine with The tree-sitter grammar for Hyprlang for syntax highlighting.

Add this to your init.lua:

-- Hyprlang LSP
vim.api.nvim_create_autocmd({'BufEnter', 'BufWinEnter'}, {
		pattern = {"*.hl", "hypr*.conf"},
		callback = function(event)
				print(string.format("starting hyprls for %s", vim.inspect(event)))
				vim.lsp.start {
						name = "hyprlang",
						cmd = {"hyprls"},
						root_dir = vim.fn.getcwd(),
				}
		end
})

VSCode

Install it from the marketplace.

[!TIP] You can use the Hyprland extension pack to also get syntax highlighting.