{ pkgs, ... }: { programs.helix = { enable = true; defaultEditor = true; extraPackages = with pkgs; [ rust-analyzer rustfmt nil nixfmt python311Packages.python-lsp-server clang-tools black nodePackages.vscode-html-languageserver-bin emmet-ls ]; settings = { theme = "tokyonight"; editor = { line-number = "relative"; cursor-shape = { insert = "bar"; normal = "block"; select = "underline"; }; whitespace.render = { space = "all"; tab = "all"; newline = "none"; }; whitespace.characters = { space = "·"; nbsp = "⍽"; tab = "→"; newline = "⏎"; tabpad = "·"; # Tabs will look like "→···" (depending on tab width) }; cursorline = true; lsp.display-messages = true; }; }; languages = { language-server.emmet-ls = { args = [ "--stdio" ]; command = "emmet-ls"; }; language = [{ name = "html"; language-servers = [ "vscode-html-language-server" "emmet-ls" ]; }]; }; }; }