99 lines
2.0 KiB
Nix
99 lines
2.0 KiB
Nix
{ 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
|
|
gh
|
|
gofumpt
|
|
] ++ 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 = "bash"
|
|
formatter = { command = "shfmt", args = ["-s", "-ci", "-sr"] }
|
|
|
|
[[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"]
|
|
'';
|
|
};
|
|
};
|
|
}
|