nixos/roles/home/helix.nix
2024-02-21 15:13:20 +00:00

95 lines
1.9 KiB
Nix

{ 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"] }
'';
};
}