parent
6002b09ca6
commit
9b13868f9a
10 changed files with 343 additions and 172 deletions
|
|
@ -22,20 +22,21 @@ in
|
|||
# nodePackages_latest.prettier
|
||||
dprint
|
||||
markdown-oxide
|
||||
codebook
|
||||
# codebook
|
||||
## python
|
||||
# ruff-lsp
|
||||
# nodePackages_latest.pyright
|
||||
# inputs.csharp-language-server.packages.${pkgs.system}.csharp-language-server
|
||||
]
|
||||
++ (optionals cfg.withLargeLSPs [
|
||||
netcoredbg
|
||||
nodePackages_latest.typescript-language-server
|
||||
nodePackages_latest.vscode-langservers-extracted
|
||||
typescript
|
||||
# jsonnet-language-server
|
||||
# jsonnet
|
||||
lazygit
|
||||
ltex-ls-plus # languagetool
|
||||
tinymist # typst lsp
|
||||
|
||||
]);
|
||||
programs.helix = {
|
||||
|
|
@ -107,8 +108,7 @@ in
|
|||
keys = {
|
||||
normal = {
|
||||
space."=" = ":fmt";
|
||||
"C-g" =
|
||||
":sh tmux popup -d \"#{pane_current_path}\" -xC -yC -w80%% -h80%% -E lazygit";
|
||||
"C-g" = ":sh tmux popup -d \"#{pane_current_path}\" -xC -yC -w80%% -h80%% -E lazygit";
|
||||
"C-t" = ":sh tmux split-window -v -l '35%%'";
|
||||
"C-h" = ":sh tmux select-pane -t '{left-of}'";
|
||||
"C-l" = ":sh tmux select-pane -t '{right-of}'";
|
||||
|
|
@ -143,55 +143,143 @@ in
|
|||
language-server.csharp = {
|
||||
command = "csharp-language-server";
|
||||
};
|
||||
language-server.codebook = {
|
||||
command = "codebook-lsp";
|
||||
args = ["serve"];
|
||||
};
|
||||
language = flatten [
|
||||
(map
|
||||
(x: {
|
||||
name = x;
|
||||
language-servers = [
|
||||
"typescript-language-server"
|
||||
"eslint"
|
||||
];
|
||||
#formatter = { command = "dprint"; args = [ "fmt" "--stdin" x ]; };
|
||||
# formatter = { command = "prettier"; args = [ "--parser" "typescript" ]; };
|
||||
})
|
||||
[
|
||||
"typescript"
|
||||
"javascript"
|
||||
"jsx"
|
||||
"tsx"
|
||||
]
|
||||
)
|
||||
{
|
||||
name = "nix";
|
||||
formatter = {
|
||||
command = "nixpkgs-fmt";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "python";
|
||||
language-servers = [
|
||||
"pyright"
|
||||
"ruff"
|
||||
language-server.ltex = {
|
||||
command = "ltex-ls-plus";
|
||||
config = {
|
||||
additionalRules.motherTongue = "de-DE";
|
||||
additionalRules.enablePickyRules = true;
|
||||
language = [
|
||||
"en-US"
|
||||
"de-DE"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "markdown";
|
||||
language-servers = ["codebook"];
|
||||
}
|
||||
{
|
||||
name = "c-sharp";
|
||||
language-servers = [ "csharp" ];
|
||||
formatter = {
|
||||
command = "dotnet";
|
||||
args = [ "csharpier" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
language-server.tinymist = {
|
||||
command = "tinymist";
|
||||
};
|
||||
# language-server.nil = {
|
||||
# command = "nil";
|
||||
# config.nil.nix = {
|
||||
# maxMemoryMB = 5120;
|
||||
# flake = {
|
||||
# autoEvalInputs = true;
|
||||
# autoArchive = true;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
language =
|
||||
let
|
||||
applySingleConfig =
|
||||
languages: config:
|
||||
let
|
||||
applied =
|
||||
foldl'
|
||||
(
|
||||
acc: l:
|
||||
if (any (x: l.name == x) config.languages) then
|
||||
{
|
||||
done = acc.done ++ [
|
||||
(mkMerge [
|
||||
l
|
||||
config.conf
|
||||
])
|
||||
];
|
||||
notFound = filter (x: x != l.name) acc.notFound;
|
||||
}
|
||||
else
|
||||
{
|
||||
done = acc.done ++ [ l ];
|
||||
notFound = acc.notFound;
|
||||
}
|
||||
)
|
||||
{
|
||||
done = [ ];
|
||||
notFound = config.languages;
|
||||
}
|
||||
languages;
|
||||
in
|
||||
applied.done ++ (map (x: { name = x; } // config.conf) applied.notFound);
|
||||
applyConfs = lspConfs: languages: foldl' applySingleConfig languages lspConfs;
|
||||
in
|
||||
applyConfs
|
||||
[
|
||||
{
|
||||
languages = [
|
||||
"typescript"
|
||||
"javascript"
|
||||
"jsx"
|
||||
"tsx"
|
||||
];
|
||||
conf = {
|
||||
language-servers = [
|
||||
"typescript-language-server"
|
||||
"eslint"
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
languages = [
|
||||
"markdown"
|
||||
"typst"
|
||||
"bibtex"
|
||||
"comment"
|
||||
"latex"
|
||||
"html"
|
||||
];
|
||||
conf = {
|
||||
language-servers = [
|
||||
"ltex"
|
||||
];
|
||||
};
|
||||
}
|
||||
]
|
||||
[
|
||||
{
|
||||
name = "__common__";
|
||||
scope = "source.__common__";
|
||||
file-types = [ ];
|
||||
language-servers = [
|
||||
"ltex"
|
||||
];
|
||||
}
|
||||
# {
|
||||
# name = "nix";
|
||||
# language-servers = [
|
||||
# "nixd"
|
||||
# ];
|
||||
# formatter = {
|
||||
# command = "nixpkgs-fmt";
|
||||
# };
|
||||
# }
|
||||
{
|
||||
name = "python";
|
||||
language-servers = [
|
||||
"pyright"
|
||||
"ruff"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "markdown";
|
||||
language-servers = [
|
||||
"markdown-oxide"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "typst";
|
||||
language-servers = [
|
||||
"tinymist"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "c-sharp";
|
||||
language-servers = [ "csharp" ];
|
||||
formatter = {
|
||||
command = "dotnet";
|
||||
args = [ "csharpier" ];
|
||||
};
|
||||
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue