diff --git a/modules/home/cli/development/editing/helix/config/languages.nix b/modules/home/cli/development/editing/helix/config/languages.nix index b0bc3d0..57a8578 100755 --- a/modules/home/cli/development/editing/helix/config/languages.nix +++ b/modules/home/cli/development/editing/helix/config/languages.nix @@ -1,14 +1,20 @@ +{ + lib, + pkgs, + flake, + ... +}: { language = [ { auto-format = true; - formatter.command = "nixfmt"; - name = "nix"; + formatter.command = "shfmt"; + name = "bash"; } { auto-format = true; - formatter.command = "cssfmt"; - name = "css"; + formatter.command = lib.getExe pkgs.haskellPackages.cabal-fmt; + name = "cabal"; } { auto-format = true; @@ -19,19 +25,116 @@ } { auto-format = true; - formatter.command = "haskell"; + formatter.command = lib.getExe pkgs.fprettify; + name = "fortran"; + roots = [ "flake.nix" ]; + } + { + auto-format = true; name = "haskell"; } { auto-format = true; - formatter.command = "yamlfmt"; - name = "yaml"; + 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 = "yuck"; - name = "yuck"; + 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 = { @@ -40,5 +143,19 @@ 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; + }; }; + } diff --git a/modules/home/cli/development/editing/helix/default.nix b/modules/home/cli/development/editing/helix/default.nix index bf25a9f..d10bbc9 100755 --- a/modules/home/cli/development/editing/helix/default.nix +++ b/modules/home/cli/development/editing/helix/default.nix @@ -1,6 +1,7 @@ { pkgs, flake, + lib, ... }: { @@ -8,7 +9,7 @@ let configPath = ./config; settingsPath = import (configPath + /settings.nix); - languagesPath = import (configPath + /languages.nix); + languagesPath = import (configPath + /languages.nix) { inherit pkgs lib flake; }; in { enable = true;