Skip to content

hyprland-community/hyprls

Repository files navigation

HyprLS

A LSP server for Hyprland configuration files.

Features

Not checked means planned / work in progress.

  • Auto-complete
  • Hover
    • TODO: Documentation on hover of categories?
  • Go to definition
  • Color pickers
  • 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.