1769288238
This commit is contained in:
@@ -0,0 +1,190 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) getExe;
|
||||
in {
|
||||
programs.helix.enable = true;
|
||||
programs.helix = {
|
||||
# defaultEditor = true;
|
||||
package = pkgs.helix.overrideAttrs (previousAttrs: {
|
||||
patches =
|
||||
(previousAttrs.patches or [])
|
||||
++ [
|
||||
./loader.patch
|
||||
./term.patch
|
||||
];
|
||||
});
|
||||
|
||||
settings = {
|
||||
editor = {
|
||||
bufferline = "multiple";
|
||||
cursorline = true;
|
||||
inline-diagnostics.cursor-line = "warning";
|
||||
line-number = "relative";
|
||||
lsp = {
|
||||
display-messages = true;
|
||||
display-inlay-hints = true;
|
||||
};
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
normal = "block";
|
||||
select = "underline";
|
||||
};
|
||||
statusline = {
|
||||
left = ["mode" "spinner" "version-control"];
|
||||
center = ["file-name"];
|
||||
right = ["diagnostics" "selections" "position" "file-encoding" "file-line-ending" "file-type"];
|
||||
separator = "|";
|
||||
};
|
||||
soft-wrap = {
|
||||
enable = true;
|
||||
max-wrap = 25;
|
||||
max-indent-retain = 0;
|
||||
wrap-indicator = "";
|
||||
};
|
||||
};
|
||||
keys = {
|
||||
insert.C-c = "normal_mode";
|
||||
normal = {
|
||||
esc = ["collapse_selection" "keep_primary_selection"];
|
||||
space = {
|
||||
space = "file_picker";
|
||||
w = ":w";
|
||||
q = ":q";
|
||||
x = ":x";
|
||||
n = ":n";
|
||||
"," = "goto_previous_buffer";
|
||||
"." = "goto_next_buffer";
|
||||
l = ":reflow";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
languages = {
|
||||
language-server = {
|
||||
# markdown-oxide.command = getExe pkgs.markdown-oxide;
|
||||
# nixd.command = getExe pkgs.nixd;
|
||||
# pyright = {
|
||||
# command = getExe pkgs.pyright;
|
||||
# args = ["-"];
|
||||
# };
|
||||
# rust-analyzer.command = getExe pkgs.rust-analyzer;
|
||||
# texlab.command = getExe pkgs.texlab;
|
||||
bash-language-server = {
|
||||
command = getExe pkgs.bash-language-server;
|
||||
environment = {
|
||||
"SHELLCHECK_PATH" = getExe pkgs.shellcheck;
|
||||
"SHFMT_PATH" = getExe pkgs.shfmt;
|
||||
};
|
||||
};
|
||||
clangd.command = "${pkgs.clang-tools}/bin/clangd";
|
||||
# fsac = {
|
||||
# command = getExe pkgs.fsautocomplete;
|
||||
# config = {
|
||||
# editor.formatOnSave = true;
|
||||
# AutomaticWorkspaceInit = true;
|
||||
# FSharp.ExternalAutocomplete = true;
|
||||
# FSharp.linting.fsharplint.enabled = true;
|
||||
# FSharp.linting.fsharplint.configFile = "fsharplint.json";
|
||||
# FSharp.formatting.fantomas.enabled = true;
|
||||
# };
|
||||
# };
|
||||
nil = {
|
||||
command = getExe pkgs.nil;
|
||||
config = {
|
||||
formatting.command = [(getExe pkgs.alejandra)];
|
||||
};
|
||||
};
|
||||
ruff = {
|
||||
command = getExe pkgs.ruff;
|
||||
args = ["server"];
|
||||
};
|
||||
tinymist.command = getExe pkgs.tinymist;
|
||||
vscode-json-language-server.command = getExe pkgs.nodePackages.vscode-json-languageserver;
|
||||
yaml-language-server.command = getExe pkgs.yaml-language-server;
|
||||
zk = {
|
||||
command = getExe pkgs.zk;
|
||||
args = ["lsp"];
|
||||
};
|
||||
};
|
||||
language = [
|
||||
{
|
||||
name = "nix";
|
||||
auto-format = true;
|
||||
language-servers = ["nil"];
|
||||
}
|
||||
{
|
||||
name = "typst";
|
||||
auto-format = true;
|
||||
formatter.command = getExe pkgs.typstyle;
|
||||
formatter.args = ["-l" "100"];
|
||||
language-servers = ["tinymist"];
|
||||
}
|
||||
{
|
||||
name = "markdown";
|
||||
# auto-format = true;
|
||||
language-servers = ["zk" "markdown-oxide"];
|
||||
}
|
||||
{
|
||||
name = "c";
|
||||
auto-format = true;
|
||||
# formatter.command = "${pkgs.clang-tools}/bin/clang-format";
|
||||
}
|
||||
{
|
||||
name = "cpp";
|
||||
auto-format = true;
|
||||
# formatter.command = "${pkgs.clang-tools}/bin/clang-format";
|
||||
}
|
||||
# {
|
||||
# name = "fsharp";
|
||||
# auto-format = true;
|
||||
# language-servers = ["fsac"];
|
||||
# scope = "source.fs";
|
||||
# roots = ["fsproj" "sln" ".git"];
|
||||
# }
|
||||
# {
|
||||
# name = "rust";
|
||||
# auto-format = true;
|
||||
# language-servers = ["rust-analyzer"];
|
||||
# formatter.command = getExe pkgs.rustfmt;
|
||||
# }
|
||||
{
|
||||
name = "json";
|
||||
auto-format = true;
|
||||
formatter.command = getExe pkgs.jq;
|
||||
language-servers = ["vscode-json-language-server"];
|
||||
}
|
||||
{
|
||||
name = "yaml";
|
||||
auto-format = true;
|
||||
formatter.command = getExe pkgs.yamlfmt;
|
||||
formatter.args = ["-"];
|
||||
language-servers = ["yaml-language-server"];
|
||||
}
|
||||
{
|
||||
name = "bash";
|
||||
auto-format = true;
|
||||
# formatter.command = getExe pkgs.shfmt;
|
||||
# formatter.args = ["-"];
|
||||
}
|
||||
{
|
||||
name = "python";
|
||||
auto-format = true;
|
||||
language-servers = [
|
||||
{
|
||||
name = "ruff";
|
||||
# only-features = ["format" "diagnostics"];
|
||||
}
|
||||
# {
|
||||
# name = "pyright";
|
||||
# except-features = ["format" "diagnostics"];
|
||||
# }
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user