modules/home/programs/editor: some lsp work

Signed-off-by: unexplrd <unexplrd@linerds.us>
This commit is contained in:
2025-06-13 00:15:32 +03:00
parent 8a4af44494
commit e2f6ed72ed
2 changed files with 111 additions and 63 deletions

View File

@ -62,44 +62,57 @@ in {
};
languages = {
language-server = {
clangd.command = "${pkgs.clang-tools}/bin/clangd";
# markdown-oxide.command = getExe pkgs.markdown-oxide;
nil.command = getExe pkgs.nil;
# nixd.command = getExe pkgs.nixd;
# pyright.command = getExe pkgs.pyright;
# pyright.args = ["-"];
ruff.command = getExe pkgs.ruff;
ruff.args = ["server"];
# 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"];
};
fsac.command = getExe pkgs.fsautocomplete;
fsac.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;
};
};
language = [
{
name = "nix";
auto-format = true;
formatter.command = getExe pkgs.alejandra;
language-servers = ["nil"];
}
# {
# name = "latex";
# auto-format = true;
# formatter.command = "${pkgs.texlivePackages.latexindent}/bin/latexindent";
# language-servers = ["texlab"];
# }
{
name = "typst";
auto-format = true;
@ -109,23 +122,21 @@ in {
{
name = "markdown";
# auto-format = true;
# formatter.command = "${pkgs.comrak}/bin/comrak";
language-servers = ["zk" "markdown-oxide"];
}
{
name = "c";
auto-format = true;
formatter.command = "${pkgs.clang-tools}/bin/clang-format";
# formatter.command = "${pkgs.clang-tools}/bin/clang-format";
}
{
name = "cpp";
auto-format = true;
formatter.command = "${pkgs.clang-tools}/bin/clang-format";
# formatter.command = "${pkgs.clang-tools}/bin/clang-format";
}
{
name = "fsharp";
auto-format = true;
# formatter.command = getExe pkgs.fantomas;
language-servers = ["fsac"];
scope = "source.fs";
roots = ["fsproj" "sln" ".git"];
@ -136,6 +147,25 @@ in {
# 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;