{ pkgs, ... }: let actualPkgs = pkgs.unstablePkgs; nodePkgs = with actualPkgs.nodePackages; [ vscode-langservers-extracted typescript svelte-language-server yaml-language-server typescript-language-server bash-language-server ]; py3 = actualPkgs.python3.withPackages (ps: with ps; [ python-lsp-server python-lsp-ruff pylsp-rope rope ]); in { home = { packages = with actualPkgs; [ black helix clang-tools rust-analyzer nil texlab nixpkgs-fmt shellcheck shfmt gopls golangci-lint golangci-lint-langserver py3 ruff ] ++ nodePkgs; sessionVariables = { EDITOR = "hx"; VISUAL = "hx"; }; file = { ".config/helix/config.toml".text = '' theme = "monokai_pro_spectrum" [editor] cursorline = true true-color = true gutters = ["diff", "diagnostics", "line-numbers", "spacer"] [editor.cursor-shape] insert = "bar" normal = "block" select = "underline" [editor.lsp] display-messages = true [editor.indent-guides] render = true [editor.statusline] left = ["mode", "spinner"] center = ["file-name"] ''; ".config/helix/languages.toml".text = '' [[language]] name = "nix" formatter = { command = "nixpkgs-fmt" } [language-server.pylsp.config.pylsp.plugins] ruff = {enabled = true} rope = {enabled = true} [[language]] name = "go" language-servers = ["gopls", "golangci-lint-langserver"] [language-server.golangci-lint-langserver] command = "golangci-lint-langserver" [language-server.golangci-lint-langserver.config] command = ["golangci-lint", "run", "--out-format", "json", "--issues-exit-code=1"] ''; }; }; }