{ pkgs, ... }: let actualPkgs = pkgs.unstablePkgs; pythonPkgs = with actualPkgs.python3Packages; [ python-lsp-server python-lsp-ruff pylsp-mypy ]; nodePkgs = with actualPkgs.nodePackages; [ vscode-langservers-extracted typescript svelte-language-server yaml-language-server typescript-language-server bash-language-server pyright ]; in { home = { packages = with actualPkgs; [ black helix clang-tools rust-analyzer nil texlab nixpkgs-fmt ruff ruff-lsp mypy shellcheck shfmt gopls # ] ++ pythonPkgs ++ nodePkgs; ] ++ 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"] ''; file.".config/helix/languages.toml".text = '' [[language]] name = "nix" formatter = { command = "nixpkgs-fmt" } [[language]] name = "python" formatter = { command = "black", args = [ "-" ] } language-servers = [ {name = "pyright"}, {name = "ruff-lsp"}, ] [language-server.pyright] command = "pyright-langserver" args = ["--stdio"] config = {} [language-server.ruff-lsp] command = "ruff-lsp" args = [] config = {} [[language]] name = "bash" indent = { tab-width = 2, unit = " " } formatter = { command = 'shfmt', args = ["-i", "2"] } ''; }; }