dotfiles/modules/home/cli/development/editing/helix/config/languages.nix
2025-10-03 21:13:17 -05:00

161 lines
3.1 KiB
Nix
Executable file

{
lib,
pkgs,
flake,
...
}:
{
language = [
{
auto-format = true;
formatter.command = "shfmt";
name = "bash";
}
{
auto-format = true;
formatter.command = lib.getExe pkgs.haskellPackages.cabal-fmt;
name = "cabal";
}
{
auto-format = true;
language-servers = [
"elm-language-server"
];
name = "elm";
}
{
auto-format = true;
formatter.command = lib.getExe pkgs.fprettify;
name = "fortran";
roots = [ "flake.nix" ];
}
{
auto-format = true;
name = "haskell";
}
{
auto-format = true;
formatter = {
args = [ "-" ];
command = lib.getExe pkgs.google-java-format;
};
language-servers = [ pkgs.jdt-language-server.pname ];
name = "java";
}
{
formatter = {
args = [
"--dump"
"--unstable"
];
command = lib.getExe pkgs.just;
};
language-servers = [ pkgs.just-lsp.pname ];
name = "just";
}
{
name = "markdown";
language-servers = [ "vale" ];
}
{
auto-format = true;
formatter.command = "nixfmt";
language-servers = [ "nil" ];
name = "nix";
}
# {
# auto-format = true;
# formatter = {
# args = [ "-s" ];
# command = "nufmt";
# };
# name = "nu";
# roots = [ "flake.nix" ];
# }
{
auto-format = true;
formatter = {
args = [
"--stdin"
"foo.rb"
"-a"
"--stderr"
"--fail-level"
"fatal"
"--server"
];
command = "rubocop";
};
name = "ruby";
}
{
auto-format = true;
name = "rust";
}
{
file-types = [ "txt" ];
language-servers = [ "vale" ];
name = "text";
scope = "text.plain";
}
{
auto-format = true;
formatter = {
args = [
"format"
"-"
];
command = "taplo";
};
name = "toml";
roots = [ "flake.nix" ];
}
{
auto-format = true;
language-id = "typescriptreact"; # This is important for Motion Canvas.
name = "tsx";
}
{
auto-format = true;
name = "typescript";
}
{
auto-format = true;
formatter.command = "typstyle";
language-servers = [ "tinymist" ];
name = "typst";
roots = [ "flake.nix" ];
}
{
auto-format = true;
formatter = {
args = [ "-in" ];
command = "yamlfmt";
};
name = "yaml";
}
];
language-server = {
elm-language-server = {
config.elmLS = {
disableElmLSDiagnostics = true;
elmReviewDiagnostics = "warning";
};
};
"${pkgs.jdt-language-server.pname}" = {
command = lib.getExe pkgs.jdt-language-server;
};
just-lsp = {
command = lib.getExe pkgs.just-lsp;
};
tinymist = {
command = lib.getExe pkgs.tinymist;
config.exportPdf = "onType";
};
vale = {
command = lib.getExe pkgs.vale-ls;
};
};
}