modules/home/programs/editor: some lsp work
Signed-off-by: unexplrd <unexplrd@linerds.us>
This commit is contained in:
@ -62,44 +62,57 @@ in {
|
|||||||
};
|
};
|
||||||
languages = {
|
languages = {
|
||||||
language-server = {
|
language-server = {
|
||||||
clangd.command = "${pkgs.clang-tools}/bin/clangd";
|
|
||||||
# markdown-oxide.command = getExe pkgs.markdown-oxide;
|
# markdown-oxide.command = getExe pkgs.markdown-oxide;
|
||||||
nil.command = getExe pkgs.nil;
|
|
||||||
# nixd.command = getExe pkgs.nixd;
|
# nixd.command = getExe pkgs.nixd;
|
||||||
# pyright.command = getExe pkgs.pyright;
|
# pyright = {
|
||||||
# pyright.args = ["-"];
|
# command = getExe pkgs.pyright;
|
||||||
ruff.command = getExe pkgs.ruff;
|
# args = ["-"];
|
||||||
ruff.args = ["server"];
|
# };
|
||||||
# rust-analyzer.command = getExe pkgs.rust-analyzer;
|
# rust-analyzer.command = getExe pkgs.rust-analyzer;
|
||||||
# texlab.command = getExe pkgs.texlab;
|
# 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;
|
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 = {
|
zk = {
|
||||||
command = getExe pkgs.zk;
|
command = getExe pkgs.zk;
|
||||||
args = ["lsp"];
|
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 = [
|
language = [
|
||||||
{
|
{
|
||||||
name = "nix";
|
name = "nix";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
formatter.command = getExe pkgs.alejandra;
|
|
||||||
language-servers = ["nil"];
|
language-servers = ["nil"];
|
||||||
}
|
}
|
||||||
# {
|
|
||||||
# name = "latex";
|
|
||||||
# auto-format = true;
|
|
||||||
# formatter.command = "${pkgs.texlivePackages.latexindent}/bin/latexindent";
|
|
||||||
# language-servers = ["texlab"];
|
|
||||||
# }
|
|
||||||
{
|
{
|
||||||
name = "typst";
|
name = "typst";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
@ -109,23 +122,21 @@ in {
|
|||||||
{
|
{
|
||||||
name = "markdown";
|
name = "markdown";
|
||||||
# auto-format = true;
|
# auto-format = true;
|
||||||
# formatter.command = "${pkgs.comrak}/bin/comrak";
|
|
||||||
language-servers = ["zk" "markdown-oxide"];
|
language-servers = ["zk" "markdown-oxide"];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "c";
|
name = "c";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
formatter.command = "${pkgs.clang-tools}/bin/clang-format";
|
# formatter.command = "${pkgs.clang-tools}/bin/clang-format";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "cpp";
|
name = "cpp";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
formatter.command = "${pkgs.clang-tools}/bin/clang-format";
|
# formatter.command = "${pkgs.clang-tools}/bin/clang-format";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "fsharp";
|
name = "fsharp";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
# formatter.command = getExe pkgs.fantomas;
|
|
||||||
language-servers = ["fsac"];
|
language-servers = ["fsac"];
|
||||||
scope = "source.fs";
|
scope = "source.fs";
|
||||||
roots = ["fsproj" "sln" ".git"];
|
roots = ["fsproj" "sln" ".git"];
|
||||||
@ -136,6 +147,25 @@ in {
|
|||||||
# language-servers = ["rust-analyzer"];
|
# language-servers = ["rust-analyzer"];
|
||||||
# formatter.command = getExe pkgs.rustfmt;
|
# 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";
|
name = "python";
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
|
@ -15,11 +15,11 @@ in {
|
|||||||
programs.zed-editor = {
|
programs.zed-editor = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extensions = [
|
extensions = [
|
||||||
"nix"
|
"bash"
|
||||||
"fsharp"
|
"fsharp"
|
||||||
# "latex"
|
|
||||||
"typst"
|
|
||||||
"justfile"
|
"justfile"
|
||||||
|
"nix"
|
||||||
|
"typst"
|
||||||
];
|
];
|
||||||
userSettings = {
|
userSettings = {
|
||||||
vim_mode = true;
|
vim_mode = true;
|
||||||
@ -35,30 +35,29 @@ in {
|
|||||||
};
|
};
|
||||||
"Nix" = {
|
"Nix" = {
|
||||||
language-servers = [
|
language-servers = [
|
||||||
"!nil"
|
"nil"
|
||||||
"nixd"
|
|
||||||
];
|
];
|
||||||
formatter = {
|
# formatter = {
|
||||||
external.command = getExe pkgs.alejandra;
|
# external.command = getExe pkgs.alejandra;
|
||||||
};
|
# };
|
||||||
};
|
|
||||||
"Rust" = {
|
|
||||||
formatter = {
|
|
||||||
external = {
|
|
||||||
command = getExe pkgs.rustfmt;
|
|
||||||
arguments = ["--edition" "2021"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
# "Rust" = {
|
||||||
|
# formatter = {
|
||||||
|
# external = {
|
||||||
|
# command = getExe pkgs.rustfmt;
|
||||||
|
# arguments = ["--edition" "2021"];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
"typst" = {
|
"typst" = {
|
||||||
language-servers = ["tinymist"];
|
language-servers = ["tinymist"];
|
||||||
format_on_save = "on";
|
format_on_save = "on";
|
||||||
formatter = {
|
# formatter = {
|
||||||
external = {
|
# external = {
|
||||||
command = getExe pkgs.typstyle;
|
# command = getExe pkgs.typstyle;
|
||||||
arguments = ["-i" "{buffer_path}"];
|
# arguments = ["-i" "{buffer_path}"];
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
};
|
};
|
||||||
"Python" = {
|
"Python" = {
|
||||||
format_on_save = "on";
|
format_on_save = "on";
|
||||||
@ -73,6 +72,15 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
lsp = {
|
lsp = {
|
||||||
|
bash-language-server = {
|
||||||
|
binary = {
|
||||||
|
path = getExe pkgs.bash-language-server;
|
||||||
|
env = {
|
||||||
|
"SHELLCHECK_PATH" = getExe pkgs.shellcheck;
|
||||||
|
"SHFMT_PATH" = getExe pkgs.shfmt;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
fsautocomplete = {
|
fsautocomplete = {
|
||||||
binary = {
|
binary = {
|
||||||
path = getExe pkgs.fsautocomplete;
|
path = getExe pkgs.fsautocomplete;
|
||||||
@ -91,32 +99,32 @@ in {
|
|||||||
path = "${pkgs.clang-tools}/bin/clangd";
|
path = "${pkgs.clang-tools}/bin/clangd";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
rust-analyzer = {
|
# rust-analyzer = {
|
||||||
binary = {
|
# binary = {
|
||||||
arguments = [];
|
# arguments = [];
|
||||||
path = getExe pkgs.rust-analyzer;
|
# path = getExe pkgs.rust-analyzer;
|
||||||
};
|
# };
|
||||||
};
|
# };
|
||||||
ruff = {
|
ruff = {
|
||||||
binary = {
|
binary = {
|
||||||
arguments = [];
|
arguments = [];
|
||||||
path = getExe pkgs.ruff;
|
path = getExe pkgs.ruff;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
nixd = {
|
# nixd = {
|
||||||
binary = {
|
|
||||||
arguments = [];
|
|
||||||
path = getExe pkgs.nixd;
|
|
||||||
};
|
|
||||||
initialization_options.formatting.command = [(getExe pkgs.alejandra)];
|
|
||||||
};
|
|
||||||
# nil = {
|
|
||||||
# binary = {
|
# binary = {
|
||||||
# arguments = [];
|
# arguments = [];
|
||||||
# path = getExe pkgs.nil;
|
# path = getExe pkgs.nixd;
|
||||||
# };
|
# };
|
||||||
# initialization_options.formatting.command = [(getExe pkgs.alejandra)];
|
# initialization_options.formatting.command = [(getExe pkgs.alejandra)];
|
||||||
# };
|
# };
|
||||||
|
nil = {
|
||||||
|
binary = {
|
||||||
|
arguments = [];
|
||||||
|
path = getExe pkgs.nil;
|
||||||
|
};
|
||||||
|
settings.formatting.command = [(getExe pkgs.alejandra)];
|
||||||
|
};
|
||||||
# texlab = {
|
# texlab = {
|
||||||
# binary = {
|
# binary = {
|
||||||
# arguments = [];
|
# arguments = [];
|
||||||
@ -129,6 +137,16 @@ in {
|
|||||||
path = getExe pkgs.tinymist;
|
path = getExe pkgs.tinymist;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
vscode-json-language-server = {
|
||||||
|
binary = {
|
||||||
|
path = getExe pkgs.nodePackages.vscode-json-languageserver;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
yaml-language-server = {
|
||||||
|
binary = {
|
||||||
|
path = getExe pkgs.yaml-language-server;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
telemetry = {
|
telemetry = {
|
||||||
diagnostics = false;
|
diagnostics = false;
|
||||||
|
Reference in New Issue
Block a user