reNixos/hand7s/programs/helix.nix
s0me1newithhand7s c5f949506a staging(no atomic commits thank to git-hooks)
Signed-off-by: s0me1newithhand7s <git+me@hand7s.org>
2026-03-25 17:56:18 +03:00

153 lines
2.8 KiB
Nix

{
pkgs,
lib,
...
}: let
formatter = {
run = "treefmt";
args = [
"--stdin"
"$f"
];
};
in {
programs = {
helix = {
package = pkgs.helix;
enable = true;
defaultEditor = true;
extraPackages = with pkgs; [
nixd
ruff
vtsls
rust-analyzer
];
settings = {
editor = {
line-number = "relative";
cursorline = true;
auto-pairs = true;
auto-save = {
focus-lost = true;
after-delay = {
enable = true;
timeout = 3000;
};
};
soft-wrap = {
enable = true;
};
inline-diagnostics = {
cursor-line = "hint";
};
lsp = {
enable = true;
display-progress-messages = true;
display-inlay-hints = true;
};
cursor-shape = {
normal = "underline";
insert = "block";
select = "underline";
};
};
};
languages = {
language-servers = {
"nixd" = {
command = "${lib.getExe pkgs.nixd}";
args = [
"--inlay-hints=true"
];
};
"ruff" = {
command = "${lib.getExe pkgs.ruff}";
args = [
"server"
];
};
"vtsls" = {
command = "${lib.getExe pkgs.vtsls}";
args = [
"--stdio"
];
};
"rust-lsp" = {
command = "${lib.getExe pkgs.rust-analyzer}";
};
};
languages = [
{
name = "nix";
auto-format = true;
language-servers = [
"nixd"
];
inherit
formatter
;
}
{
name = "python";
auto-format = true;
language-servers = [
"ruff"
];
inherit
formatter
;
}
{
name = "rust";
auto-format = true;
language-servers = [
"rust-lsp"
];
inherit
formatter
;
}
{
name = "javascript";
auto-format = true;
language-servers = [
"vtsls"
];
inherit
formatter
;
}
{
name = "typescript";
auto-format = true;
language-servers = [
"vtsls"
];
inherit
formatter
;
}
];
};
};
};
}