diff --git a/docs/manual/configuring/queries.md b/docs/manual/configuring/queries.md index 87945fdec..f07c8bf37 100644 --- a/docs/manual/configuring/queries.md +++ b/docs/manual/configuring/queries.md @@ -28,16 +28,14 @@ in { filetypes = ["nix"]; loadtype = "extends"; query = '' - ((apply_expression + (apply_expression function: (variable_expression name: (identifier) @_func (#eq? @_func "mkLuaInline")) - argument: (indented_string_expression (string_fragment) @injection.content) - (#set! injection.language "lua") - (#set! injection.combined))) + (#set! injection.combined)) ''; }]; } diff --git a/docs/manual/hacking.md b/docs/manual/hacking.md index 6a5703098..b0668e442 100644 --- a/docs/manual/hacking.md +++ b/docs/manual/hacking.md @@ -310,6 +310,25 @@ acceptableList = [ ]; ``` +##### Binaries + +Always use `getExe` and `getExe'` from `lib.meta` instead of manual binary path +expansion. + +###### Examples + +```diff ++let ++ inherit (lib.meta) getExe getExe'; ++in + +-bin = "${pkgs.bar}/bin/bar"; ++cmd = getExe pkgs.bar; + +-cmd = "${pkgs.bar}/bin/foo"; ++cmd = getExe' pkgs.bar "foo"; +``` + #### Naming of External Tools {#sec-code-style-naming-external-tools} In NVF, we often package or preconfigure external tools. One common example are diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 4def30efe..e48030c3b 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -362,6 +362,15 @@ - Split of `zsh` from `languages.bash` into its own language module. +[`injected` formatter]: https://github.com/stevearc/conform.nvim/blob/master/doc/advanced_topics.md#injected-language-formatting-code-blocks + +- Add [`injected` formatter] to all language modules, to allow for formatting of + injections via conform, like Markdown code blocks or some multiline strings in + nix. + +- Make `query` injections in `nix` files combined, to fix highlighting problems, + when injecting inside multiline strings. + - Telling the `vscode-json-language-server` that `json5` is `jsonc` instead of the default fallback of `json`, for more accurate results. @@ -395,6 +404,10 @@ - Added `gitlab-ci-ls`. +- Add `ts-query-ls` as a conform.nvim formatter. + +- Added formatting to `languages.query`. + - Added `phpantom` LSP preset and into `languages.php`. - Moved extra diagnostic modules under `diagnostics.presets.` this will diff --git a/modules/plugins/debugger/nvim-dap/presets/lldb.nix b/modules/plugins/debugger/nvim-dap/presets/lldb.nix index 0d79c7457..775da3025 100644 --- a/modules/plugins/debugger/nvim-dap/presets/lldb.nix +++ b/modules/plugins/debugger/nvim-dap/presets/lldb.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDapPresetEnableOption; + inherit (lib.meta) getExe'; cfg = config.vim.debugger.nvim-dap.presets.lldb; in { @@ -20,7 +21,7 @@ in { config.vim.debugger.nvim-dap.adapters = mkIf cfg.enable { lldb = { type = "executable"; - command = "${pkgs.lldb}/bin/lldb-dap"; + command = getExe' pkgs.lldb "lldb-dap"; }; }; } diff --git a/modules/plugins/diagnostics/presets/biomejs.nix b/modules/plugins/diagnostics/presets/biomejs.nix index 00d7ff218..3f2f1d7ee 100644 --- a/modules/plugins/diagnostics/presets/biomejs.nix +++ b/modules/plugins/diagnostics/presets/biomejs.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.biomejs; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.biomejs.cmd = "${pkgs.biome}/bin/biome"; + vim.diagnostics.nvim-lint.linters.biomejs.cmd = getExe pkgs.biome; }; } diff --git a/modules/plugins/diagnostics/presets/checkmake.nix b/modules/plugins/diagnostics/presets/checkmake.nix index c5f1c57c7..c2cf2c507 100644 --- a/modules/plugins/diagnostics/presets/checkmake.nix +++ b/modules/plugins/diagnostics/presets/checkmake.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.checkmake; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.checkmake.cmd = "${pkgs.checkmake}/bin/checkmake"; + vim.diagnostics.nvim-lint.linters.checkmake.cmd = getExe pkgs.checkmake; }; } diff --git a/modules/plugins/diagnostics/presets/cpplint.nix b/modules/plugins/diagnostics/presets/cpplint.nix index b8e36c2a7..444d71513 100644 --- a/modules/plugins/diagnostics/presets/cpplint.nix +++ b/modules/plugins/diagnostics/presets/cpplint.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.cpplint; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.cpplint.cmd = "${pkgs.cpplint}/bin/cpplint"; + vim.diagnostics.nvim-lint.linters.cpplint.cmd = getExe pkgs.cpplint; }; } diff --git a/modules/plugins/diagnostics/presets/deadnix.nix b/modules/plugins/diagnostics/presets/deadnix.nix index fe0d7b467..50216d8bd 100644 --- a/modules/plugins/diagnostics/presets/deadnix.nix +++ b/modules/plugins/diagnostics/presets/deadnix.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.deadnix; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.deadnix.cmd = "${pkgs.deadnix}/bin/deadnix"; + vim.diagnostics.nvim-lint.linters.deadnix.cmd = getExe pkgs.deadnix; }; } diff --git a/modules/plugins/diagnostics/presets/djlint.nix b/modules/plugins/diagnostics/presets/djlint.nix index 2bea3d099..df599583d 100644 --- a/modules/plugins/diagnostics/presets/djlint.nix +++ b/modules/plugins/diagnostics/presets/djlint.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.djlint; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.djlint.cmd = "${pkgs.djlint}/bin/djlint"; + vim.diagnostics.nvim-lint.linters.djlint.cmd = getExe pkgs.djlint; }; } diff --git a/modules/plugins/diagnostics/presets/dotenv-linter.nix b/modules/plugins/diagnostics/presets/dotenv-linter.nix index f445b7773..c215dddb2 100644 --- a/modules/plugins/diagnostics/presets/dotenv-linter.nix +++ b/modules/plugins/diagnostics/presets/dotenv-linter.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.dotenv-linter; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.dotenv-linter.cmd = "${pkgs.dotenv-linter}/bin/dotenv-linter"; + vim.diagnostics.nvim-lint.linters.dotenv-linter.cmd = getExe pkgs.dotenv-linter; }; } diff --git a/modules/plugins/diagnostics/presets/eslint_d.nix b/modules/plugins/diagnostics/presets/eslint_d.nix index 09dc3b3a0..2882ac7cc 100644 --- a/modules/plugins/diagnostics/presets/eslint_d.nix +++ b/modules/plugins/diagnostics/presets/eslint_d.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.eslint_d; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.diagnostics.nvim-lint.linters.eslint_d = { - cmd = "${pkgs.eslint_d}/bin/eslint_d"; + cmd = getExe pkgs.eslint_d; required_files = [ "eslint.config.js" "eslint.config.mjs" diff --git a/modules/plugins/diagnostics/presets/golangci-lint.nix b/modules/plugins/diagnostics/presets/golangci-lint.nix index 656df99ce..ee8b99e78 100644 --- a/modules/plugins/diagnostics/presets/golangci-lint.nix +++ b/modules/plugins/diagnostics/presets/golangci-lint.nix @@ -5,6 +5,7 @@ ... }: let inherit (lib.modules) mkIf; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.diagnostics.nvim-lint.linters.golangci-lint = { - cmd = "${pkgs.golangci-lint}/bin/golangci-lint"; + cmd = getExe pkgs.golangci-lint; args = [ "run" "--output.json.path=stdout" @@ -40,7 +41,7 @@ in { -- Run on current file only if go.mod is missing function() local fnmod = ":p"; - local cmd = {"${pkgs.go}/bin/go", "env", "GOMOD"}; + local cmd = {"${getExe pkgs.go}", "env", "GOMOD"}; local ok, gomod = pcall(vim.fn.system, cmd); gomod = gomod:gsub("%s+", "") if ok and gomod ~= "" and gomod ~= "/dev/null" then diff --git a/modules/plugins/diagnostics/presets/hadolint.nix b/modules/plugins/diagnostics/presets/hadolint.nix index 3f9f55293..18a1cfd87 100644 --- a/modules/plugins/diagnostics/presets/hadolint.nix +++ b/modules/plugins/diagnostics/presets/hadolint.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.hadolint; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.hadolint.cmd = "${pkgs.hadolint}/bin/hadolint"; + vim.diagnostics.nvim-lint.linters.hadolint.cmd = getExe pkgs.hadolint; }; } diff --git a/modules/plugins/diagnostics/presets/htmlhint.nix b/modules/plugins/diagnostics/presets/htmlhint.nix index 8c804e1c5..0958af5d1 100644 --- a/modules/plugins/diagnostics/presets/htmlhint.nix +++ b/modules/plugins/diagnostics/presets/htmlhint.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.htmlhint; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.htmlhint.cmd = "${pkgs.htmlhint}/bin/htmlhint"; + vim.diagnostics.nvim-lint.linters.htmlhint.cmd = getExe pkgs.htmlhint; }; } diff --git a/modules/plugins/diagnostics/presets/ktlint.nix b/modules/plugins/diagnostics/presets/ktlint.nix index cd26259c0..538da716b 100644 --- a/modules/plugins/diagnostics/presets/ktlint.nix +++ b/modules/plugins/diagnostics/presets/ktlint.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.ktlint; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.ktlint.cmd = "${pkgs.ktlint}/bin/ktlint"; + vim.diagnostics.nvim-lint.linters.ktlint.cmd = getExe pkgs.ktlint; }; } diff --git a/modules/plugins/diagnostics/presets/luacheck.nix b/modules/plugins/diagnostics/presets/luacheck.nix index a70451cfb..1097f746d 100644 --- a/modules/plugins/diagnostics/presets/luacheck.nix +++ b/modules/plugins/diagnostics/presets/luacheck.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.luacheck; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.luacheck.cmd = "${pkgs.luajitPackages.luacheck}/bin/luacheck"; + vim.diagnostics.nvim-lint.linters.luacheck.cmd = getExe pkgs.luajitPackages.luacheck; }; } diff --git a/modules/plugins/diagnostics/presets/mago.nix b/modules/plugins/diagnostics/presets/mago.nix index eb20fe591..ecbed2e35 100644 --- a/modules/plugins/diagnostics/presets/mago.nix +++ b/modules/plugins/diagnostics/presets/mago.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets; in { @@ -24,10 +25,10 @@ in { config.vim.diagnostics.nvim-lint.linters = { mago_lint = mkIf cfg.mago_lint.enable { - cmd = "${pkgs.mago}/bin/mago"; + cmd = getExe pkgs.mago; }; mago_analyze = mkIf cfg.mago_analyze.enable { - cmd = "${pkgs.mago}/bin/mago"; + cmd = getExe pkgs.mago; }; }; } diff --git a/modules/plugins/diagnostics/presets/markdownlint-cli2.nix b/modules/plugins/diagnostics/presets/markdownlint-cli2.nix index 6feadc5e0..927fc3b98 100644 --- a/modules/plugins/diagnostics/presets/markdownlint-cli2.nix +++ b/modules/plugins/diagnostics/presets/markdownlint-cli2.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.markdownlint-cli2; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.markdownlint-cli2.cmd = "${pkgs.markdownlint-cli2}/bin/markdownlint-cli2"; + vim.diagnostics.nvim-lint.linters.markdownlint-cli2.cmd = getExe pkgs.markdownlint-cli2; }; } diff --git a/modules/plugins/diagnostics/presets/mypy.nix b/modules/plugins/diagnostics/presets/mypy.nix index c28d96a68..e61ed5c7d 100644 --- a/modules/plugins/diagnostics/presets/mypy.nix +++ b/modules/plugins/diagnostics/presets/mypy.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.mypy; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.mypy.cmd = "${pkgs.mypy}/bin/mypy"; + vim.diagnostics.nvim-lint.linters.mypy.cmd = getExe pkgs.mypy; }; } diff --git a/modules/plugins/diagnostics/presets/phpstan.nix b/modules/plugins/diagnostics/presets/phpstan.nix index b1f2681ea..92d3117c4 100644 --- a/modules/plugins/diagnostics/presets/phpstan.nix +++ b/modules/plugins/diagnostics/presets/phpstan.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.phpstan; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.phpstan.cmd = "${pkgs.phpstan}/bin/phpstan"; + vim.diagnostics.nvim-lint.linters.phpstan.cmd = getExe pkgs.phpstan; }; } diff --git a/modules/plugins/diagnostics/presets/rubocop.nix b/modules/plugins/diagnostics/presets/rubocop.nix index dc9e3abfe..515fd95d0 100644 --- a/modules/plugins/diagnostics/presets/rubocop.nix +++ b/modules/plugins/diagnostics/presets/rubocop.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.rubocop; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.rubocop.cmd = "${pkgs.rubocop}/bin/rubocop"; + vim.diagnostics.nvim-lint.linters.rubocop.cmd = getExe pkgs.rubocop; }; } diff --git a/modules/plugins/diagnostics/presets/rumdl.nix b/modules/plugins/diagnostics/presets/rumdl.nix index 854b8c0a2..38f57947a 100644 --- a/modules/plugins/diagnostics/presets/rumdl.nix +++ b/modules/plugins/diagnostics/presets/rumdl.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.rumdl; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.rumdl.cmd = "${pkgs.rumdl}/bin/rumdl"; + vim.diagnostics.nvim-lint.linters.rumdl.cmd = getExe pkgs.rumdl; }; } diff --git a/modules/plugins/diagnostics/presets/selene.nix b/modules/plugins/diagnostics/presets/selene.nix index e1de18168..6aecfd8d9 100644 --- a/modules/plugins/diagnostics/presets/selene.nix +++ b/modules/plugins/diagnostics/presets/selene.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.selene; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.selene.cmd = "${pkgs.selene}/bin/selene"; + vim.diagnostics.nvim-lint.linters.selene.cmd = getExe pkgs.selene; }; } diff --git a/modules/plugins/diagnostics/presets/shellcheck.nix b/modules/plugins/diagnostics/presets/shellcheck.nix index 4402cb6a7..0292f860c 100644 --- a/modules/plugins/diagnostics/presets/shellcheck.nix +++ b/modules/plugins/diagnostics/presets/shellcheck.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.shellcheck; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.shellcheck.cmd = "${pkgs.shellcheck}/bin/shellcheck"; + vim.diagnostics.nvim-lint.linters.shellcheck.cmd = getExe pkgs.shellcheck; }; } diff --git a/modules/plugins/diagnostics/presets/sqlfluff.nix b/modules/plugins/diagnostics/presets/sqlfluff.nix index 54d4030b1..51d4dda4f 100644 --- a/modules/plugins/diagnostics/presets/sqlfluff.nix +++ b/modules/plugins/diagnostics/presets/sqlfluff.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.sqlfluff; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.diagnostics.nvim-lint.linters.sqlfluff = { - cmd = "${pkgs.sqlfluff}/bin/sqlfluff"; + cmd = getExe pkgs.sqlfluff; args = ["lint" "--format=json"]; }; }; diff --git a/modules/plugins/diagnostics/presets/sqruff.nix b/modules/plugins/diagnostics/presets/sqruff.nix index 3b7513b57..9ffc07f0c 100644 --- a/modules/plugins/diagnostics/presets/sqruff.nix +++ b/modules/plugins/diagnostics/presets/sqruff.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.sqruff; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.diagnostics.nvim-lint.linters.sqruff = { - cmd = "${pkgs.sqruff}/bin/sqruff"; + cmd = getExe pkgs.sqruff; args = ["lint" "--format=json" "-"]; }; }; diff --git a/modules/plugins/diagnostics/presets/statix.nix b/modules/plugins/diagnostics/presets/statix.nix index 06dca086a..255760c77 100644 --- a/modules/plugins/diagnostics/presets/statix.nix +++ b/modules/plugins/diagnostics/presets/statix.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.statix; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.statix.cmd = "${pkgs.statix}/bin/statix"; + vim.diagnostics.nvim-lint.linters.statix.cmd = getExe pkgs.statix; }; } diff --git a/modules/plugins/diagnostics/presets/stylelint.nix b/modules/plugins/diagnostics/presets/stylelint.nix index 8e782aa57..dee5caeba 100644 --- a/modules/plugins/diagnostics/presets/stylelint.nix +++ b/modules/plugins/diagnostics/presets/stylelint.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.stylelint; in { @@ -17,6 +18,6 @@ in { }; config = mkIf cfg.enable { - vim.diagnostics.nvim-lint.linters.stylelint.cmd = "${pkgs.stylelint}/bin/stylelint"; + vim.diagnostics.nvim-lint.linters.stylelint.cmd = getExe pkgs.stylelint; }; } diff --git a/modules/plugins/diagnostics/presets/taplo.nix b/modules/plugins/diagnostics/presets/taplo.nix index 89b4a1ad2..fd60e0557 100644 --- a/modules/plugins/diagnostics/presets/taplo.nix +++ b/modules/plugins/diagnostics/presets/taplo.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.taplo; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.diagnostics.nvim-lint.linters.taplo = { - cmd = "${pkgs.taplo}/bin/taplo"; + cmd = getExe pkgs.taplo; args = ["lint"]; }; }; diff --git a/modules/plugins/diagnostics/presets/tombi.nix b/modules/plugins/diagnostics/presets/tombi.nix index 2975a0c4b..ab5e200e2 100644 --- a/modules/plugins/diagnostics/presets/tombi.nix +++ b/modules/plugins/diagnostics/presets/tombi.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkDiagnosticsPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.diagnostics.presets.tombi; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.diagnostics.nvim-lint.linters.tombi = { - cmd = "${pkgs.tombi}/bin/tombi"; + cmd = getExe pkgs.tombi; args = ["lint"]; }; }; diff --git a/modules/plugins/filetree/nvimtree/nvimtree.nix b/modules/plugins/filetree/nvimtree/nvimtree.nix index 2aabda5eb..f0afef85b 100644 --- a/modules/plugins/filetree/nvimtree/nvimtree.nix +++ b/modules/plugins/filetree/nvimtree/nvimtree.nix @@ -5,6 +5,7 @@ ... }: let inherit (lib.options) mkEnableOption mkOption literalExpression; + inherit (lib.meta) getExe'; inherit (lib.generators) mkLuaInline; inherit (lib.types) str bool int submodule listOf enum oneOf attrs addCheck; inherit (lib.nvim.types) mkPluginSetupOption; @@ -844,7 +845,7 @@ in { trash = mkOption { description = "Configuration options for trashing."; default = { - cmd = "${pkgs.glib}/bin/gio trash"; + cmd = "${getExe' pkgs.glib "gio"} trash"; }; type = submodule { diff --git a/modules/plugins/formatter/conform-nvim/presets/alejandra.nix b/modules/plugins/formatter/conform-nvim/presets/alejandra.nix index 840312b48..49357b756 100644 --- a/modules/plugins/formatter/conform-nvim/presets/alejandra.nix +++ b/modules/plugins/formatter/conform-nvim/presets/alejandra.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.alejandra; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.alejandra = { - command = "${pkgs.alejandra}/bin/alejandra"; + command = getExe pkgs.alejandra; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/asmfmt.nix b/modules/plugins/formatter/conform-nvim/presets/asmfmt.nix index 61861f18a..1738b3ea4 100644 --- a/modules/plugins/formatter/conform-nvim/presets/asmfmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/asmfmt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.asmfmt; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.asmfmt = { - command = "${pkgs.asmfmt}/bin/asmfmt"; + command = getExe pkgs.asmfmt; stdin = true; }; }; diff --git a/modules/plugins/formatter/conform-nvim/presets/astyle.nix b/modules/plugins/formatter/conform-nvim/presets/astyle.nix index 5fb7fb848..5c85e08e6 100644 --- a/modules/plugins/formatter/conform-nvim/presets/astyle.nix +++ b/modules/plugins/formatter/conform-nvim/presets/astyle.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.lua) toLuaObject; @@ -21,7 +22,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.astyle = { - command = "${pkgs.astyle}/bin/astyle"; + command = getExe pkgs.astyle; stdin = false; options = { filetype_mode = { diff --git a/modules/plugins/formatter/conform-nvim/presets/biome.nix b/modules/plugins/formatter/conform-nvim/presets/biome.nix index 6f5c13d26..250ee4999 100644 --- a/modules/plugins/formatter/conform-nvim/presets/biome.nix +++ b/modules/plugins/formatter/conform-nvim/presets/biome.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets; in { @@ -34,13 +35,13 @@ in { config.vim.formatter.conform-nvim.setupOpts.formatters = { biome = mkIf cfg.biome.enable { - command = "${pkgs.biome}/bin/biome"; + command = getExe pkgs.biome; }; biome-check = mkIf cfg.biome-check.enable { - command = "${pkgs.biome}/bin/biome"; + command = getExe pkgs.biome; }; biome-organize-imports = mkIf cfg.biome-organize-imports.enable { - command = "${pkgs.biome}/bin/biome"; + command = getExe pkgs.biome; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/black.nix b/modules/plugins/formatter/conform-nvim/presets/black.nix index 83f80a09c..7e2c88cd6 100644 --- a/modules/plugins/formatter/conform-nvim/presets/black.nix +++ b/modules/plugins/formatter/conform-nvim/presets/black.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.black; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.black = { - command = "${pkgs.black}/bin/black"; + command = getExe pkgs.black; stdin = true; }; }; diff --git a/modules/plugins/formatter/conform-nvim/presets/cabal-fmt.nix b/modules/plugins/formatter/conform-nvim/presets/cabal-fmt.nix index d929d48c9..cd5aafae6 100644 --- a/modules/plugins/formatter/conform-nvim/presets/cabal-fmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/cabal-fmt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.cabal-fmt; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.cabal-fmt = { - command = "${pkgs.haskellPackages.cabal-fmt}/bin/cabal-fmt"; + command = getExe pkgs.haskellPackages.cabal-fmt; stdin = false; args = mkLuaInline '' function(self, ctx) diff --git a/modules/plugins/formatter/conform-nvim/presets/clang-format.nix b/modules/plugins/formatter/conform-nvim/presets/clang-format.nix index 73bd4fb3f..40f04bf50 100644 --- a/modules/plugins/formatter/conform-nvim/presets/clang-format.nix +++ b/modules/plugins/formatter/conform-nvim/presets/clang-format.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe'; cfg = config.vim.formatter.conform-nvim.presets.clang-format; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.clang-format = { - command = "${pkgs.clang-tools}/bin/clang-format"; + command = getExe' pkgs.clang-tools "clang-format"; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/csharpier.nix b/modules/plugins/formatter/conform-nvim/presets/csharpier.nix index 74104dd25..0f923bb21 100644 --- a/modules/plugins/formatter/conform-nvim/presets/csharpier.nix +++ b/modules/plugins/formatter/conform-nvim/presets/csharpier.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.csharpier; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.csharpier = { - command = "${pkgs.csharpier}/bin/csharpier"; + command = getExe pkgs.csharpier; stdin = true; args = ["format"]; }; diff --git a/modules/plugins/formatter/conform-nvim/presets/default.nix b/modules/plugins/formatter/conform-nvim/presets/default.nix index 897de1d84..0c1b94e19 100644 --- a/modules/plugins/formatter/conform-nvim/presets/default.nix +++ b/modules/plugins/formatter/conform-nvim/presets/default.nix @@ -59,6 +59,7 @@ ./terraform.nix ./tex-fmt.nix ./tombi.nix + ./ts-query-ls.nix ./typstyle.nix ]; } diff --git a/modules/plugins/formatter/conform-nvim/presets/deno.nix b/modules/plugins/formatter/conform-nvim/presets/deno.nix index a8ba418eb..8dad3ba42 100644 --- a/modules/plugins/formatter/conform-nvim/presets/deno.nix +++ b/modules/plugins/formatter/conform-nvim/presets/deno.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.lua) toLuaObject; @@ -41,7 +42,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.deno = { - command = "${pkgs.deno}/bin/deno"; + command = getExe pkgs.deno; stdin = true; args = mkLuaInline '' function(self, ctx) diff --git a/modules/plugins/formatter/conform-nvim/presets/djlint.nix b/modules/plugins/formatter/conform-nvim/presets/djlint.nix index b34813873..dfb5d0c7d 100644 --- a/modules/plugins/formatter/conform-nvim/presets/djlint.nix +++ b/modules/plugins/formatter/conform-nvim/presets/djlint.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.djlint; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.djlint = { - command = "${pkgs.djlint}/bin/djlint"; + command = getExe pkgs.djlint; args = mkLuaInline '' function(self, ctx) return { diff --git a/modules/plugins/formatter/conform-nvim/presets/dockerfmt.nix b/modules/plugins/formatter/conform-nvim/presets/dockerfmt.nix index f89eec801..5239de3a0 100644 --- a/modules/plugins/formatter/conform-nvim/presets/dockerfmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/dockerfmt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.dockerfmt; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.dockerfmt = { - command = "${pkgs.dockerfmt}/bin/dockerfmt"; + command = getExe pkgs.dockerfmt; args = mkLuaInline '' function(self, ctx) return { diff --git a/modules/plugins/formatter/conform-nvim/presets/fantomas.nix b/modules/plugins/formatter/conform-nvim/presets/fantomas.nix index 72dd8bbc4..698bf64b6 100644 --- a/modules/plugins/formatter/conform-nvim/presets/fantomas.nix +++ b/modules/plugins/formatter/conform-nvim/presets/fantomas.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.fantomas; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.fantomas = { - command = "${pkgs.fantomas}/bin/fantomas"; + command = getExe pkgs.fantomas; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/fish-indent.nix b/modules/plugins/formatter/conform-nvim/presets/fish-indent.nix index a34879b43..99916e198 100644 --- a/modules/plugins/formatter/conform-nvim/presets/fish-indent.nix +++ b/modules/plugins/formatter/conform-nvim/presets/fish-indent.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe'; cfg = config.vim.formatter.conform-nvim.presets.fish-indent; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.fish-indent = { - command = "${pkgs.fish}/bin/fish_indent"; + command = getExe' pkgs.fish "fish_indent"; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/floskell.nix b/modules/plugins/formatter/conform-nvim/presets/floskell.nix index ad029acd1..a8c3f97ed 100644 --- a/modules/plugins/formatter/conform-nvim/presets/floskell.nix +++ b/modules/plugins/formatter/conform-nvim/presets/floskell.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.floskell; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.floskell = { - command = "${pkgs.haskellPackages.floskell}/bin/floskell"; + command = getExe pkgs.haskellPackages.floskell; stdin = true; }; }; diff --git a/modules/plugins/formatter/conform-nvim/presets/format-r.nix b/modules/plugins/formatter/conform-nvim/presets/format-r.nix index 033fd80d4..8ed9bc7e2 100644 --- a/modules/plugins/formatter/conform-nvim/presets/format-r.nix +++ b/modules/plugins/formatter/conform-nvim/presets/format-r.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.format-r; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.format-r = { - command = "${pkgs.rWrapper.override {packages = [pkgs.rPackages.formatR];}}/bin/R"; + command = getExe (pkgs.rWrapper.override {packages = [pkgs.rPackages.formatR];}); stdin = true; args = [ "--slave" diff --git a/modules/plugins/formatter/conform-nvim/presets/fourmolu.nix b/modules/plugins/formatter/conform-nvim/presets/fourmolu.nix index 68fe840ba..af5b2cc27 100644 --- a/modules/plugins/formatter/conform-nvim/presets/fourmolu.nix +++ b/modules/plugins/formatter/conform-nvim/presets/fourmolu.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.fourmolu; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.fourmolu = { - command = "${pkgs.haskellPackages.fourmolu}/bin/fourmolu"; + command = getExe pkgs.haskellPackages.fourmolu; stdin = true; args = mkLuaInline '' function(self, ctx) diff --git a/modules/plugins/formatter/conform-nvim/presets/gersemi.nix b/modules/plugins/formatter/conform-nvim/presets/gersemi.nix index c7e515f4d..00457dce8 100644 --- a/modules/plugins/formatter/conform-nvim/presets/gersemi.nix +++ b/modules/plugins/formatter/conform-nvim/presets/gersemi.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.gersemi; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.gersemi = { - command = "${pkgs.gersemi}/bin/gersemi"; + command = getExe pkgs.gersemi; args = mkLuaInline '' function(self, ctx) local indent = vim.bo[ctx.buf].expandtab and vim.bo[ctx.buf].shiftwidth or "tabs" diff --git a/modules/plugins/formatter/conform-nvim/presets/gofmt.nix b/modules/plugins/formatter/conform-nvim/presets/gofmt.nix index 1245bae93..b4e464166 100644 --- a/modules/plugins/formatter/conform-nvim/presets/gofmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/gofmt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe'; cfg = config.vim.formatter.conform-nvim.presets.gofmt; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.gofmt = { - command = "${pkgs.go}/bin/gofmt"; + command = getExe' pkgs.go "gofmt"; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/gofumpt.nix b/modules/plugins/formatter/conform-nvim/presets/gofumpt.nix index 400cf1f13..eb207dac5 100644 --- a/modules/plugins/formatter/conform-nvim/presets/gofumpt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/gofumpt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.gofumpt; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.gofumpt = { - command = "${pkgs.gofumpt}/bin/gofumpt"; + command = getExe pkgs.gofumpt; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/goimports.nix b/modules/plugins/formatter/conform-nvim/presets/goimports.nix index 99637b35b..0dfd20da0 100644 --- a/modules/plugins/formatter/conform-nvim/presets/goimports.nix +++ b/modules/plugins/formatter/conform-nvim/presets/goimports.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe'; cfg = config.vim.formatter.conform-nvim.presets.goimports; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.goimports = { - command = "${pkgs.gotools}/bin/goimports"; + command = getExe' pkgs.gotools "goimports"; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/golines.nix b/modules/plugins/formatter/conform-nvim/presets/golines.nix index 7a2625d8f..b5ae155e4 100644 --- a/modules/plugins/formatter/conform-nvim/presets/golines.nix +++ b/modules/plugins/formatter/conform-nvim/presets/golines.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe'; cfg = config.vim.formatter.conform-nvim.presets.golines; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.golines = { - command = "${pkgs.go}/bin/golines"; + command = getExe' pkgs.go "golines"; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/hclfmt.nix b/modules/plugins/formatter/conform-nvim/presets/hclfmt.nix index 0ed7260b5..8e21c8da6 100644 --- a/modules/plugins/formatter/conform-nvim/presets/hclfmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/hclfmt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.hclfmt; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.hclfmt = { - command = "${pkgs.hclfmt}/bin/hclfmt"; + command = getExe pkgs.hclfmt; stdin = true; }; }; diff --git a/modules/plugins/formatter/conform-nvim/presets/indent.nix b/modules/plugins/formatter/conform-nvim/presets/indent.nix index 562c68d75..ea201958d 100644 --- a/modules/plugins/formatter/conform-nvim/presets/indent.nix +++ b/modules/plugins/formatter/conform-nvim/presets/indent.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.indent; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.indent = { - command = "${pkgs.indent}/bin/indent"; + command = getExe pkgs.indent; stdin = true; args = mkLuaInline '' function(self, ctx) diff --git a/modules/plugins/formatter/conform-nvim/presets/isort.nix b/modules/plugins/formatter/conform-nvim/presets/isort.nix index 21be4dd90..c07da3811 100644 --- a/modules/plugins/formatter/conform-nvim/presets/isort.nix +++ b/modules/plugins/formatter/conform-nvim/presets/isort.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.isort; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.isort = { - command = "${pkgs.isort}/bin/isort"; + command = getExe pkgs.isort; args = mkLuaInline '' function(self, ctx) local indent = vim.bo[ctx.buf].expandtab and string.rep(" ", vim.bo[ctx.buf].shiftwidth) or "\t" diff --git a/modules/plugins/formatter/conform-nvim/presets/jqfmt.nix b/modules/plugins/formatter/conform-nvim/presets/jqfmt.nix index d8172d5dd..38aec721b 100644 --- a/modules/plugins/formatter/conform-nvim/presets/jqfmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/jqfmt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.jqfmt; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.jqfmt = { - command = "${pkgs.jqfmt}/bin/jqfmt"; + command = getExe pkgs.jqfmt; args = [ "-ob" "-ar" diff --git a/modules/plugins/formatter/conform-nvim/presets/jsonfmt.nix b/modules/plugins/formatter/conform-nvim/presets/jsonfmt.nix index 04290771d..1d7f89746 100644 --- a/modules/plugins/formatter/conform-nvim/presets/jsonfmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/jsonfmt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.jsonfmt; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.jsonfmt = { - command = "${pkgs.jsonfmt}/bin/jsonfmt"; + command = getExe pkgs.jsonfmt; args = ["--write" "-"]; }; }; diff --git a/modules/plugins/formatter/conform-nvim/presets/just.nix b/modules/plugins/formatter/conform-nvim/presets/just.nix index 2b05c270c..fbaa99338 100644 --- a/modules/plugins/formatter/conform-nvim/presets/just.nix +++ b/modules/plugins/formatter/conform-nvim/presets/just.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.just; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.just = { - command = "${pkgs.just}/bin/just"; + command = getExe pkgs.just; stdin = false; args = mkLuaInline '' function(self, ctx) diff --git a/modules/plugins/formatter/conform-nvim/presets/latexindent.nix b/modules/plugins/formatter/conform-nvim/presets/latexindent.nix index 04d3aa4fc..bbfc5e611 100644 --- a/modules/plugins/formatter/conform-nvim/presets/latexindent.nix +++ b/modules/plugins/formatter/conform-nvim/presets/latexindent.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe'; cfg = config.vim.formatter.conform-nvim.presets.latexindent; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.latexindent = { - command = "${pkgs.texlive.withPackages (p: [p.latexindent])}/bin/latexindent"; + command = getExe' (pkgs.texlive.withPackages (p: [p.latexindent])) "latexindent"; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/mago.nix b/modules/plugins/formatter/conform-nvim/presets/mago.nix index 04edc6ecf..d949557fe 100644 --- a/modules/plugins/formatter/conform-nvim/presets/mago.nix +++ b/modules/plugins/formatter/conform-nvim/presets/mago.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets; in { @@ -28,7 +29,7 @@ in { config = { vim.formatter.conform-nvim.setupOpts.formatters = { mago = mkIf cfg.mago.enable { - command = "${pkgs.mago}/bin/mago"; + command = getExe pkgs.mago; stdin = true; args = [ "--colors=never" @@ -37,7 +38,7 @@ in { ]; }; mago-fix = mkIf cfg.mago-fix.enable { - command = "${pkgs.mago}/bin/mago"; + command = getExe pkgs.mago; stdin = true; args = [ "--colors=never" diff --git a/modules/plugins/formatter/conform-nvim/presets/mbake.nix b/modules/plugins/formatter/conform-nvim/presets/mbake.nix index 787189d81..2be5215de 100644 --- a/modules/plugins/formatter/conform-nvim/presets/mbake.nix +++ b/modules/plugins/formatter/conform-nvim/presets/mbake.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.mbake; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.mbake = { - command = "${pkgs.mbake}/bin/mbake"; + command = getExe pkgs.mbake; args = [ "format" "--stdin" diff --git a/modules/plugins/formatter/conform-nvim/presets/mdformat.nix b/modules/plugins/formatter/conform-nvim/presets/mdformat.nix index 417cf80db..d836dfcb2 100644 --- a/modules/plugins/formatter/conform-nvim/presets/mdformat.nix +++ b/modules/plugins/formatter/conform-nvim/presets/mdformat.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe'; cfg = config.vim.formatter.conform-nvim.presets.mdformat; in { @@ -18,14 +19,14 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.mdformat = { - command = "${pkgs.python314Packages.python.withPackages (py: + command = getExe' (pkgs.python314Packages.python.withPackages (py: with py; [ mdformat mdformat-gfm mdformat-front-matters mdformat-footnote mdformat-wikilink - ])}/bin/mdformat"; + ])) "mdformat"; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/mix.nix b/modules/plugins/formatter/conform-nvim/presets/mix.nix index d15f41844..31aa9ca76 100644 --- a/modules/plugins/formatter/conform-nvim/presets/mix.nix +++ b/modules/plugins/formatter/conform-nvim/presets/mix.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe'; cfg = config.vim.formatter.conform-nvim.presets.mix; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.mix = { - command = "${pkgs.elixir}/bin/mix"; + command = getExe' pkgs.elixir "mix"; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/nasmfmt.nix b/modules/plugins/formatter/conform-nvim/presets/nasmfmt.nix index 8ba4f4cc8..471e8b71c 100644 --- a/modules/plugins/formatter/conform-nvim/presets/nasmfmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/nasmfmt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.nasmfmt; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.nasmfmt = { - command = "${pkgs.nasmfmt}/bin/nasmfmt"; + command = getExe pkgs.nasmfmt; args = mkLuaInline '' function(self, ctx) return { diff --git a/modules/plugins/formatter/conform-nvim/presets/nimpretty.nix b/modules/plugins/formatter/conform-nvim/presets/nimpretty.nix index d101e8d3d..8b8b06ecf 100644 --- a/modules/plugins/formatter/conform-nvim/presets/nimpretty.nix +++ b/modules/plugins/formatter/conform-nvim/presets/nimpretty.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe'; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.nimpretty; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.nimpretty = { - command = "${pkgs.nim}/bin/nimpretty"; + command = getExe' pkgs.nim "nimpretty"; args = mkLuaInline '' function(self, ctx) return { diff --git a/modules/plugins/formatter/conform-nvim/presets/nixfmt-rs.nix b/modules/plugins/formatter/conform-nvim/presets/nixfmt-rs.nix index a2d4e090e..208ba3e74 100644 --- a/modules/plugins/formatter/conform-nvim/presets/nixfmt-rs.nix +++ b/modules/plugins/formatter/conform-nvim/presets/nixfmt-rs.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.nixfmt-rs; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.nixfmt-rs = { - command = "${pkgs.nixfmt-rs}/bin/nixfmt"; + command = getExe pkgs.nixfmt-rs; args = mkLuaInline '' function(self, ctx) return {"--indent=" .. ctx.shiftwidth} diff --git a/modules/plugins/formatter/conform-nvim/presets/nixfmt.nix b/modules/plugins/formatter/conform-nvim/presets/nixfmt.nix index be9df623a..ba8b83a34 100644 --- a/modules/plugins/formatter/conform-nvim/presets/nixfmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/nixfmt.nix @@ -7,6 +7,7 @@ inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; inherit (lib.generators) mkLuaInline; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.nixfmt; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.nixfmt = { - command = "${pkgs.nixfmt}/bin/nixfmt"; + command = getExe pkgs.nixfmt; args = mkLuaInline '' function(self, ctx) return {"--indent=" .. ctx.shiftwidth} diff --git a/modules/plugins/formatter/conform-nvim/presets/nomad.nix b/modules/plugins/formatter/conform-nvim/presets/nomad.nix index a5f64ccba..d91ba1de5 100644 --- a/modules/plugins/formatter/conform-nvim/presets/nomad.nix +++ b/modules/plugins/formatter/conform-nvim/presets/nomad.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.nomad; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.nomad = { - command = "${pkgs.nomad}/bin/nomad"; + command = getExe pkgs.nomad; args = ["fmt" "$FILENAME"]; stdin = false; }; diff --git a/modules/plugins/formatter/conform-nvim/presets/ocamlformat.nix b/modules/plugins/formatter/conform-nvim/presets/ocamlformat.nix index 6ae9e20b3..4344f09a6 100644 --- a/modules/plugins/formatter/conform-nvim/presets/ocamlformat.nix +++ b/modules/plugins/formatter/conform-nvim/presets/ocamlformat.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.ocamlformat; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.ocamlformat = { - command = "${pkgs.ocamlformat}/bin/ocamlformat"; + command = getExe pkgs.ocamlformat; args = mkLuaInline '' function(self, ctx) return { diff --git a/modules/plugins/formatter/conform-nvim/presets/opentofu.nix b/modules/plugins/formatter/conform-nvim/presets/opentofu.nix index b27cfcb8f..bf44a2d34 100644 --- a/modules/plugins/formatter/conform-nvim/presets/opentofu.nix +++ b/modules/plugins/formatter/conform-nvim/presets/opentofu.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.opentofu; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.opentofu = { - command = "${pkgs.opentofu}/bin/tofu"; + command = getExe pkgs.opentofu; args = ["fmt" "-no-color" "$FILENAME"]; stdin = false; }; diff --git a/modules/plugins/formatter/conform-nvim/presets/ormolu.nix b/modules/plugins/formatter/conform-nvim/presets/ormolu.nix index f982eddd9..84cf25cfa 100644 --- a/modules/plugins/formatter/conform-nvim/presets/ormolu.nix +++ b/modules/plugins/formatter/conform-nvim/presets/ormolu.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.ormolu; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.ormolu = { - command = "${pkgs.haskellPackages.ormolu}/bin/ormolu"; + command = getExe pkgs.haskellPackages.ormolu; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/php-cs-fixer.nix b/modules/plugins/formatter/conform-nvim/presets/php-cs-fixer.nix index d5f09da73..f7b2234ee 100644 --- a/modules/plugins/formatter/conform-nvim/presets/php-cs-fixer.nix +++ b/modules/plugins/formatter/conform-nvim/presets/php-cs-fixer.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.php-cs-fixer; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.php-cs-fixer = { - command = "${pkgs.php85Packages.php-cs-fixer}/bin/php-cs-fixer"; + command = getExe pkgs.php85Packages.php-cs-fixer; stdin = false; args = ["fix" "$FILENAME"]; }; diff --git a/modules/plugins/formatter/conform-nvim/presets/prettier.nix b/modules/plugins/formatter/conform-nvim/presets/prettier.nix index ac8bddf8e..1d450a291 100644 --- a/modules/plugins/formatter/conform-nvim/presets/prettier.nix +++ b/modules/plugins/formatter/conform-nvim/presets/prettier.nix @@ -8,6 +8,7 @@ inherit (lib.modules) mkIf; inherit (lib.options) mkOption literalMD; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.types) enum listOf attrsOf str; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.lua) toLuaObject; @@ -79,7 +80,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.prettier = { # extends - command = "${pkgs.prettier}/bin/prettier"; + command = getExe pkgs.prettier; # Due to the way conform does the parser options, we can always register the filetype parser, # even when we didn't load the plugin. This allows us to precompute this map. diff --git a/modules/plugins/formatter/conform-nvim/presets/qmlformat.nix b/modules/plugins/formatter/conform-nvim/presets/qmlformat.nix index bb801d746..4fa8e4105 100644 --- a/modules/plugins/formatter/conform-nvim/presets/qmlformat.nix +++ b/modules/plugins/formatter/conform-nvim/presets/qmlformat.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe'; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.qmlformat; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.qmlformat = { - command = "${pkgs.kdePackages.qtdeclarative}/bin/qmlformat"; + command = getExe' pkgs.kdePackages.qtdeclarative "qmlformat"; stdin = false; args = mkLuaInline '' function(self, ctx) diff --git a/modules/plugins/formatter/conform-nvim/presets/rubocop.nix b/modules/plugins/formatter/conform-nvim/presets/rubocop.nix index e14f8369c..68e6fadc3 100644 --- a/modules/plugins/formatter/conform-nvim/presets/rubocop.nix +++ b/modules/plugins/formatter/conform-nvim/presets/rubocop.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.rubocop; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.rubocop = { - command = "${pkgs.rubocop}/bin/rubocop"; + command = getExe pkgs.rubocop; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/ruff.nix b/modules/plugins/formatter/conform-nvim/presets/ruff.nix index c04529419..33e9bfc94 100644 --- a/modules/plugins/formatter/conform-nvim/presets/ruff.nix +++ b/modules/plugins/formatter/conform-nvim/presets/ruff.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets; @@ -36,7 +37,7 @@ in { config = { vim.formatter.conform-nvim.setupOpts.formatters = { ruff = mkIf cfg.ruff.enable { - command = "${pkgs.ruff}/bin/ruff"; + command = getExe pkgs.ruff; stdin = true; args = mkLuaInline '' function(self, ctx) @@ -75,7 +76,7 @@ in { ''; }; ruff-fix = mkIf cfg.ruff-fix.enable { - command = "${pkgs.ruff}/bin/ruff"; + command = getExe pkgs.ruff; stdin = true; args = [ "check" @@ -89,7 +90,7 @@ in { ]; }; ruff-organize-imports = mkIf cfg.ruff-organize-imports.enable { - command = "${pkgs.ruff}/bin/ruff"; + command = getExe pkgs.ruff; stdin = true; args = [ "check" diff --git a/modules/plugins/formatter/conform-nvim/presets/rumdl.nix b/modules/plugins/formatter/conform-nvim/presets/rumdl.nix index fad5d7676..28aa312bf 100644 --- a/modules/plugins/formatter/conform-nvim/presets/rumdl.nix +++ b/modules/plugins/formatter/conform-nvim/presets/rumdl.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.rumdl; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.rumdl = { - command = "${pkgs.rumdl}/bin/rumdl"; + command = getExe pkgs.rumdl; stdin = true; args = mkLuaInline '' function(self, ctx) diff --git a/modules/plugins/formatter/conform-nvim/presets/rustfmt.nix b/modules/plugins/formatter/conform-nvim/presets/rustfmt.nix index d3e72d062..f254b1df1 100644 --- a/modules/plugins/formatter/conform-nvim/presets/rustfmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/rustfmt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.rustfmt; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.rustfmt = { - command = "${pkgs.rustfmt}/bin/rustfmt"; + command = getExe pkgs.rustfmt; options.default_edition = "2024"; }; }; diff --git a/modules/plugins/formatter/conform-nvim/presets/shfmt.nix b/modules/plugins/formatter/conform-nvim/presets/shfmt.nix index bde5a6771..fc4483768 100644 --- a/modules/plugins/formatter/conform-nvim/presets/shfmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/shfmt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.shfmt; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.shfmt = { - command = "${pkgs.shfmt}/bin/shfmt"; + command = getExe pkgs.shfmt; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/smlfmt.nix b/modules/plugins/formatter/conform-nvim/presets/smlfmt.nix index d77c7df14..8e1ee24a7 100644 --- a/modules/plugins/formatter/conform-nvim/presets/smlfmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/smlfmt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.smlfmt; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.smlfmt = { - command = "${pkgs.smlfmt}/bin/smlfmt"; + command = getExe pkgs.smlfmt; stdin = false; args = mkLuaInline '' function(self, ctx) diff --git a/modules/plugins/formatter/conform-nvim/presets/sqlfluff.nix b/modules/plugins/formatter/conform-nvim/presets/sqlfluff.nix index 3b566efe0..13588bcbe 100644 --- a/modules/plugins/formatter/conform-nvim/presets/sqlfluff.nix +++ b/modules/plugins/formatter/conform-nvim/presets/sqlfluff.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.sqlfluff; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.sqlfluff = { - command = "${pkgs.sqlfluff}/bin/sqlfluff"; + command = getExe pkgs.sqlfluff; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/sqruff.nix b/modules/plugins/formatter/conform-nvim/presets/sqruff.nix index 73868c011..a32ab7791 100644 --- a/modules/plugins/formatter/conform-nvim/presets/sqruff.nix +++ b/modules/plugins/formatter/conform-nvim/presets/sqruff.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.sqruff; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.sqruff = { - command = "${pkgs.sqruff}/bin/sqruff"; + command = getExe pkgs.sqruff; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/styler.nix b/modules/plugins/formatter/conform-nvim/presets/styler.nix index 4d04cc775..23480a82e 100644 --- a/modules/plugins/formatter/conform-nvim/presets/styler.nix +++ b/modules/plugins/formatter/conform-nvim/presets/styler.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.styler; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.styler = { - command = "${pkgs.rWrapper.override {packages = [pkgs.rPackages.styler];}}/bin/R"; + command = getExe (pkgs.rWrapper.override {packages = [pkgs.rPackages.styler];}); }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/stylish-haskell.nix b/modules/plugins/formatter/conform-nvim/presets/stylish-haskell.nix index 82f9c32d5..68eb8e748 100644 --- a/modules/plugins/formatter/conform-nvim/presets/stylish-haskell.nix +++ b/modules/plugins/formatter/conform-nvim/presets/stylish-haskell.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.stylish-haskell; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.stylish-haskell = { - command = "${pkgs.haskellPackages.stylish-haskell}/bin/stylish-haskell"; + command = getExe pkgs.haskellPackages.stylish-haskell; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/stylua.nix b/modules/plugins/formatter/conform-nvim/presets/stylua.nix index d35d962d2..0b45e954c 100644 --- a/modules/plugins/formatter/conform-nvim/presets/stylua.nix +++ b/modules/plugins/formatter/conform-nvim/presets/stylua.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.stylua; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.stylua = { - command = "${pkgs.stylua}/bin/stylua"; + command = getExe pkgs.stylua; args = mkLuaInline '' function(self, ctx) local style = vim.bo[ctx.buf].expandtab and "Spaces" or "Tabs" diff --git a/modules/plugins/formatter/conform-nvim/presets/superhtml.nix b/modules/plugins/formatter/conform-nvim/presets/superhtml.nix index fb597c7fd..d1bc3182c 100644 --- a/modules/plugins/formatter/conform-nvim/presets/superhtml.nix +++ b/modules/plugins/formatter/conform-nvim/presets/superhtml.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.superhtml; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.superhtml = { - command = "${pkgs.superhtml}/bin/superhtml"; + command = getExe pkgs.superhtml; args = ["fmt" "--stdin"]; }; }; diff --git a/modules/plugins/formatter/conform-nvim/presets/taplo.nix b/modules/plugins/formatter/conform-nvim/presets/taplo.nix index f776e9cf9..d3ebabbfc 100644 --- a/modules/plugins/formatter/conform-nvim/presets/taplo.nix +++ b/modules/plugins/formatter/conform-nvim/presets/taplo.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.taplo; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.taplo = { - command = "${pkgs.taplo}/bin/taplo"; + command = getExe pkgs.taplo; args = mkLuaInline '' function(self, ctx) local indent = not vim.bo[ctx.buf].expandtab and "\t" or string.rep(" ", vim.bo[ctx.buf].shiftwidth) diff --git a/modules/plugins/formatter/conform-nvim/presets/terraform.nix b/modules/plugins/formatter/conform-nvim/presets/terraform.nix index 83c189e86..c2c5c99a8 100644 --- a/modules/plugins/formatter/conform-nvim/presets/terraform.nix +++ b/modules/plugins/formatter/conform-nvim/presets/terraform.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.terraform; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.terraform = { - command = "${pkgs.terraform}/bin/terraform"; + command = getExe pkgs.terraform; args = ["fmt" "-no-color" "$FILENAME"]; stdin = false; }; diff --git a/modules/plugins/formatter/conform-nvim/presets/tex-fmt.nix b/modules/plugins/formatter/conform-nvim/presets/tex-fmt.nix index dc4474611..72f5df2ba 100644 --- a/modules/plugins/formatter/conform-nvim/presets/tex-fmt.nix +++ b/modules/plugins/formatter/conform-nvim/presets/tex-fmt.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.tex-fmt; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.tex-fmt = { - command = "${pkgs.tex-fmt}/bin/tex-fmt"; + command = getExe pkgs.tex-fmt; }; }; } diff --git a/modules/plugins/formatter/conform-nvim/presets/tombi.nix b/modules/plugins/formatter/conform-nvim/presets/tombi.nix index 42d268e1b..4ff50285c 100644 --- a/modules/plugins/formatter/conform-nvim/presets/tombi.nix +++ b/modules/plugins/formatter/conform-nvim/presets/tombi.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.formatter.conform-nvim.presets.tombi; in { @@ -18,7 +19,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.tombi = { - command = "${pkgs.tombi}/bin/tombi"; + command = getExe pkgs.tombi; args = [ "format" "--stdin-filepath" diff --git a/modules/plugins/formatter/conform-nvim/presets/ts-query-ls.nix b/modules/plugins/formatter/conform-nvim/presets/ts-query-ls.nix new file mode 100644 index 000000000..b08ca1b34 --- /dev/null +++ b/modules/plugins/formatter/conform-nvim/presets/ts-query-ls.nix @@ -0,0 +1,30 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; + + cfg = config.vim.formatter.conform-nvim.presets.ts-query-ls; +in { + options.vim.formatter.conform-nvim.presets.ts-query-ls.enable = mkFormatterPresetEnableOption { + option = "ts-query-ls"; + display = "`ts_query_ls`"; + }; + + config = mkIf cfg.enable { + vim.formatter.conform-nvim.setupOpts.formatters.ts-query-ls = { + stdin = false; + command = getExe pkgs.ts_query_ls; + args = [ + "format" + "$FILENAME" + ]; + # it only formats files ending in `.scm` + tmpfile_format = "conform.$RANDOM.$FILENAME.scm"; + }; + }; +} diff --git a/modules/plugins/formatter/conform-nvim/presets/typstyle.nix b/modules/plugins/formatter/conform-nvim/presets/typstyle.nix index 1461cab6d..47976fb23 100644 --- a/modules/plugins/formatter/conform-nvim/presets/typstyle.nix +++ b/modules/plugins/formatter/conform-nvim/presets/typstyle.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkFormatterPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.formatter.conform-nvim.presets.typstyle; @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.formatter.conform-nvim.setupOpts.formatters.typstyle = { - command = "${pkgs.typstyle}/bin/typstyle"; + command = getExe pkgs.typstyle; args = mkLuaInline '' function(self, ctx) return { diff --git a/modules/plugins/languages/angular.nix b/modules/plugins/languages/angular.nix index c5e7eb6f8..e756a2a01 100644 --- a/modules/plugins/languages/angular.nix +++ b/modules/plugins/languages/angular.nix @@ -16,7 +16,7 @@ servers = ["angular-language-server" "emmet-ls"]; defaultFormat = ["prettier"]; - formats = ["prettier" "deno"]; + formats = ["prettier" "deno" "injected"]; in { options.vim.languages.angular = { enable = mkEnableOption "Angular language support"; diff --git a/modules/plugins/languages/asm.nix b/modules/plugins/languages/asm.nix index 31af13a0e..aecc94d00 100644 --- a/modules/plugins/languages/asm.nix +++ b/modules/plugins/languages/asm.nix @@ -15,7 +15,7 @@ servers = ["asm-lsp"]; defaultFormat = ["asmfmt"]; - formats = ["asmfmt" "nasmfmt"]; + formats = ["asmfmt" "nasmfmt" "injected"]; in { options.vim.languages.assembly = { enable = mkEnableOption "Assembly support"; diff --git a/modules/plugins/languages/astro.nix b/modules/plugins/languages/astro.nix index 1fe7ffaac..07bc6872a 100644 --- a/modules/plugins/languages/astro.nix +++ b/modules/plugins/languages/astro.nix @@ -16,7 +16,7 @@ servers = ["astro-language-server" "emmet-ls"]; defaultFormat = ["prettier"]; - formats = ["prettier" "biome" "biome-check" "biome-organize-imports" "deno"]; + formats = ["prettier" "biome" "biome-check" "biome-organize-imports" "deno" "injected"]; defaultDiagnosticsProvider = ["eslint_d"]; diagnosticsProviders = ["eslint_d"]; diff --git a/modules/plugins/languages/bash.nix b/modules/plugins/languages/bash.nix index 79b6deff4..7689b8755 100644 --- a/modules/plugins/languages/bash.nix +++ b/modules/plugins/languages/bash.nix @@ -16,7 +16,7 @@ servers = ["bash-language-server"]; defaultFormat = ["shfmt"]; - formats = ["shfmt"]; + formats = ["shfmt" "injected"]; defaultDiagnosticsProvider = ["shellcheck"]; diagnosticsProviders = ["shellcheck"]; diff --git a/modules/plugins/languages/clang.nix b/modules/plugins/languages/clang.nix index 081c93003..50a698c90 100644 --- a/modules/plugins/languages/clang.nix +++ b/modules/plugins/languages/clang.nix @@ -43,7 +43,7 @@ }; defaultFormat = ["clang-format"]; - formats = ["clang-format" "indent" "astyle"]; + formats = ["clang-format" "indent" "astyle" "injected"]; defaultDiagnosticsProvider = ["cpplint"]; diagnosticsProviders = ["cpplint"]; diff --git a/modules/plugins/languages/cmake.nix b/modules/plugins/languages/cmake.nix index 0f945f3f9..42894d3e3 100644 --- a/modules/plugins/languages/cmake.nix +++ b/modules/plugins/languages/cmake.nix @@ -16,7 +16,7 @@ servers = ["neocmakelsp"]; defaultFormat = ["gersemi"]; - formats = ["gersemi"]; + formats = ["gersemi" "injected"]; in { options.vim.languages.cmake = { enable = mkEnableOption "CMake language support"; diff --git a/modules/plugins/languages/csharp.nix b/modules/plugins/languages/csharp.nix index dfa8335d5..4e9e8a7c4 100644 --- a/modules/plugins/languages/csharp.nix +++ b/modules/plugins/languages/csharp.nix @@ -21,7 +21,7 @@ servers = ["csharp_ls" "omnisharp" "roslyn-ls"]; defaultFormat = []; - formats = ["csharpier" "astyle"]; + formats = ["csharpier" "astyle" "injected"]; # Verbose names for clarity. shouldEnableExclusiveLspExtension = extension: lsp: cfg.lsp.enable && cfg.extensions.${extension}.enable && (elem lsp cfg.lsp.servers); diff --git a/modules/plugins/languages/css.nix b/modules/plugins/languages/css.nix index 60202c42b..f6016b226 100644 --- a/modules/plugins/languages/css.nix +++ b/modules/plugins/languages/css.nix @@ -16,7 +16,7 @@ servers = ["vscode-css-language-server" "emmet-ls"]; defaultFormat = ["prettier"]; - formats = ["prettier" "biome" "biome-check" "biome-organize-imports" "deno"]; + formats = ["prettier" "biome" "biome-check" "biome-organize-imports" "deno" "injected"]; formatType = deprecatedSingleOrListOf diff --git a/modules/plugins/languages/docker.nix b/modules/plugins/languages/docker.nix index ab4c0b70b..d8b357505 100644 --- a/modules/plugins/languages/docker.nix +++ b/modules/plugins/languages/docker.nix @@ -16,7 +16,7 @@ servers = ["docker-language-server"]; defaultFormat = ["dockerfmt"]; - formats = ["dockerfmt"]; + formats = ["dockerfmt" "injected"]; defaultDiagnosticsProvider = ["hadolint"]; diagnosticsProviders = ["hadolint"]; diff --git a/modules/plugins/languages/elixir.nix b/modules/plugins/languages/elixir.nix index d065e1915..adf88b0cd 100644 --- a/modules/plugins/languages/elixir.nix +++ b/modules/plugins/languages/elixir.nix @@ -17,7 +17,7 @@ servers = ["elixir-ls"]; defaultFormat = ["mix"]; - formats = ["mix"]; + formats = ["mix" "injected"]; in { options.vim.languages.elixir = { enable = mkEnableOption "Elixir language support"; diff --git a/modules/plugins/languages/fish.nix b/modules/plugins/languages/fish.nix index 6d79fb9e7..64b396a16 100644 --- a/modules/plugins/languages/fish.nix +++ b/modules/plugins/languages/fish.nix @@ -16,7 +16,7 @@ servers = ["fish-lsp"]; defaultFormat = ["fish-indent"]; - formats = ["fish-indent"]; + formats = ["fish-indent" "injected"]; in { options.vim.languages.fish = { enable = mkEnableOption "Fish language support"; diff --git a/modules/plugins/languages/fsharp.nix b/modules/plugins/languages/fsharp.nix index b5044cd3a..91f640dbe 100644 --- a/modules/plugins/languages/fsharp.nix +++ b/modules/plugins/languages/fsharp.nix @@ -14,7 +14,7 @@ servers = ["fsautocomplete"]; defaultFormat = ["fantomas"]; - formats = ["fantomas"]; + formats = ["fantomas" "injected"]; cfg = config.vim.languages.fsharp; in { diff --git a/modules/plugins/languages/go.nix b/modules/plugins/languages/go.nix index 840d86458..c15fa3ce5 100644 --- a/modules/plugins/languages/go.nix +++ b/modules/plugins/languages/go.nix @@ -20,7 +20,7 @@ servers = ["gopls"]; defaultFormat = ["gofmt"]; - formats = ["gofmt" "gofumpt" "golines" "goimports"]; + formats = ["gofmt" "gofumpt" "golines" "goimports" "injected"]; defaultDebugger = "delve"; debuggers = { @@ -202,8 +202,7 @@ in { query = '' ((text) @injection.content (#set! injection.language "${cfg.treesitter.gotmpl.injection}") - (#set! injection.combined) - ) + (#set! injection.combined)) ''; } ]; diff --git a/modules/plugins/languages/haskell.nix b/modules/plugins/languages/haskell.nix index d1dff0207..0b5388d63 100644 --- a/modules/plugins/languages/haskell.nix +++ b/modules/plugins/languages/haskell.nix @@ -23,7 +23,7 @@ servers = ["haskell-language-server"]; defaultFormat = ["ormolu"]; - formats = ["ormolu" "fourmolu" "stylish-haskell" "floskell"]; + formats = ["ormolu" "fourmolu" "stylish-haskell" "floskell" "injected"]; defaultCabalFormat = ["cabal-fmt"]; cabalFormats = ["cabal-fmt"]; diff --git a/modules/plugins/languages/hcl.nix b/modules/plugins/languages/hcl.nix index 72a241861..47d954605 100644 --- a/modules/plugins/languages/hcl.nix +++ b/modules/plugins/languages/hcl.nix @@ -16,7 +16,7 @@ servers = ["terraform-ls" "tofu-ls" "docker-language-server"]; defaultFormat = ["hclfmt"]; - formats = ["hclfmt" "nomad" "opentofu" "terraform"]; + formats = ["hclfmt" "nomad" "opentofu" "terraform" "injected"]; in { options.vim.languages.hcl = { enable = mkEnableOption "HCL support"; diff --git a/modules/plugins/languages/html.nix b/modules/plugins/languages/html.nix index 8e074aca8..17029df00 100644 --- a/modules/plugins/languages/html.nix +++ b/modules/plugins/languages/html.nix @@ -24,7 +24,7 @@ ]; defaultFormat = ["superhtml"]; - formats = ["superhtml" "biome" "prettier" "deno"]; + formats = ["superhtml" "biome" "prettier" "deno" "injected"]; defaultDiagnosticsProvider = ["htmlhint"]; diagnosticsProviders = ["htmlhint"]; diff --git a/modules/plugins/languages/java.nix b/modules/plugins/languages/java.nix index aff788443..fa9816dd7 100644 --- a/modules/plugins/languages/java.nix +++ b/modules/plugins/languages/java.nix @@ -19,7 +19,7 @@ servers = ["jdt-language-server" "jls"]; defaultFormat = ["astyle"]; - formats = ["astyle"]; + formats = ["astyle" "injected"]; defaultDebugger = ["jls"]; dapConfigurations = { diff --git a/modules/plugins/languages/jinja.nix b/modules/plugins/languages/jinja.nix index edb99b96d..59786fd85 100644 --- a/modules/plugins/languages/jinja.nix +++ b/modules/plugins/languages/jinja.nix @@ -65,8 +65,7 @@ in { query = '' ((content) @injection.content (#set! injection.language "${cfg.treesitter.injection}") - (#set! injection.combined) - ) + (#set! injection.combined)) ''; } ]; diff --git a/modules/plugins/languages/jq.nix b/modules/plugins/languages/jq.nix index 365d58d2b..67430e5c0 100644 --- a/modules/plugins/languages/jq.nix +++ b/modules/plugins/languages/jq.nix @@ -16,7 +16,7 @@ servers = ["jq-lsp"]; defaultFormat = ["jqfmt"]; - formats = ["jqfmt"]; + formats = ["jqfmt" "injected"]; in { options.vim.languages.jq = { enable = mkEnableOption "JQ support"; diff --git a/modules/plugins/languages/json.nix b/modules/plugins/languages/json.nix index f824fab39..4491b0ba1 100644 --- a/modules/plugins/languages/json.nix +++ b/modules/plugins/languages/json.nix @@ -16,7 +16,7 @@ servers = ["vscode-json-language-server"]; defaultFormat = ["jsonfmt"]; - formats = ["jsonfmt" "prettier" "biome" "deno"]; + formats = ["jsonfmt" "prettier" "biome" "deno" "injected"]; formatType = deprecatedSingleOrListOf diff --git a/modules/plugins/languages/just.nix b/modules/plugins/languages/just.nix index bd33df0b8..e5f6124f7 100644 --- a/modules/plugins/languages/just.nix +++ b/modules/plugins/languages/just.nix @@ -16,7 +16,7 @@ servers = ["just-lsp"]; defaultFormat = ["just"]; - formats = ["just"]; + formats = ["just" "injected"]; in { options.vim.languages.just = { enable = mkEnableOption "Just support"; diff --git a/modules/plugins/languages/lua.nix b/modules/plugins/languages/lua.nix index 6415048d6..9e3f88723 100644 --- a/modules/plugins/languages/lua.nix +++ b/modules/plugins/languages/lua.nix @@ -17,7 +17,7 @@ servers = ["lua-language-server"]; defaultFormat = ["stylua"]; - formats = ["stylua"]; + formats = ["stylua" "injected"]; defaultDiagnosticsProvider = ["luacheck"]; diagnosticsProviders = ["luacheck" "selene"]; diff --git a/modules/plugins/languages/make.nix b/modules/plugins/languages/make.nix index cf8d7e3a5..925baf08e 100644 --- a/modules/plugins/languages/make.nix +++ b/modules/plugins/languages/make.nix @@ -13,7 +13,7 @@ cfg = config.vim.languages.make; defaultFormat = ["mbake"]; - formats = ["mbake"]; + formats = ["mbake" "injected"]; defaultDiagnosticsProvider = ["checkmake"]; diagnosticsProviders = ["checkmake"]; diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index d04ba85ef..bc1f56886 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -17,7 +17,7 @@ servers = ["marksman" "markdown-oxide" "rumdl"]; defaultFormat = ["deno"]; - formats = ["deno" "prettier" "rumdl" "mdformat"]; + formats = ["deno" "prettier" "rumdl" "mdformat" "injected"]; defaultDiagnosticsProvider = ["markdownlint-cli2"]; diagnosticsProviders = ["markdownlint-cli2" "rumdl"]; in { diff --git a/modules/plugins/languages/nim.nix b/modules/plugins/languages/nim.nix index 3a7c9fea2..9ee710d6b 100644 --- a/modules/plugins/languages/nim.nix +++ b/modules/plugins/languages/nim.nix @@ -16,7 +16,7 @@ servers = ["nimlsp"]; defaultFormat = ["nimpretty"]; - formats = ["nimpretty"]; + formats = ["nimpretty" "injected"]; in { options.vim.languages.nim = { enable = mkEnableOption "Nim language support"; diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix index 1f93fd406..9a3809ced 100644 --- a/modules/plugins/languages/nix.nix +++ b/modules/plugins/languages/nix.nix @@ -16,7 +16,7 @@ servers = ["nil" "nixd"]; defaultFormat = ["alejandra"]; - formats = ["alejandra" "nixfmt" "nixfmt-rs"]; + formats = ["alejandra" "nixfmt" "nixfmt-rs" "injected"]; defaultDiagnosticsProvider = ["statix" "deadnix"]; diagnosticsProviders = ["statix" "deadnix"]; @@ -103,27 +103,31 @@ in { filetypes = ["nix"]; loadtype = "extends"; query = '' - ((binding + (binding attrpath: (attrpath (identifier) @_path) - (#eq? @_path "query") + (#eq? @_path "query") expression: [ (string_expression ((string_fragment) @injection.content - (#set! injection.language "query"))) + (#set! injection.language "query") + (#set! injection.combined))) (indented_string_expression ((string_fragment) @injection.content - (#set! injection.language "query"))) + (#set! injection.language "query") + (#set! injection.combined))) (apply_expression argument: [ (string_expression ((string_fragment) @injection.content - (#set! injection.language "query"))) + (#set! injection.language "query") + (#set! injection.combined))) (indented_string_expression ((string_fragment) @injection.content - (#set! injection.language "query"))) + (#set! injection.language "query") + (#set! injection.combined))) ]) - ])) + ]) ''; } # mkLuaInline, entryAnywhere, entryBefore, entryAfter -> lua @@ -138,8 +142,8 @@ in { (#any-of? @_func "mkLuaInline" "entryAnywhere")) argument: (indented_string_expression (string_fragment) @injection.content)) - (#set! injection.language "lua") - (#set! injection.combined)) + (#set! injection.language "lua") + (#set! injection.combined)) ((apply_expression function: (apply_expression @@ -149,8 +153,8 @@ in { argument: (_)) argument: (indented_string_expression (string_fragment) @injection.content)) - (#set! injection.language "lua") - (#set! injection.combined)) + (#set! injection.language "lua") + (#set! injection.combined)) ''; } ]; diff --git a/modules/plugins/languages/ocaml.nix b/modules/plugins/languages/ocaml.nix index 7827d6beb..71905710c 100644 --- a/modules/plugins/languages/ocaml.nix +++ b/modules/plugins/languages/ocaml.nix @@ -16,7 +16,7 @@ servers = ["ocaml-lsp"]; defaultFormat = ["ocamlformat"]; - formats = ["ocamlformat"]; + formats = ["ocamlformat" "injected"]; in { options.vim.languages.ocaml = { enable = mkEnableOption "OCaml language support"; diff --git a/modules/plugins/languages/php.nix b/modules/plugins/languages/php.nix index bc7056227..a9febef7a 100644 --- a/modules/plugins/languages/php.nix +++ b/modules/plugins/languages/php.nix @@ -18,7 +18,7 @@ servers = ["phpactor" "phan" "intelephense" "phpantom"]; defaultFormat = ["php-cs-fixer"]; - formats = ["php-cs-fixer" "mago" "mago-fix"]; + formats = ["php-cs-fixer" "mago" "mago-fix" "injected"]; defaultDiagnosticsProvider = ["phpstan"]; diagnosticsProviders = ["phpstan" "mago_lint" "mago_analyze"]; diff --git a/modules/plugins/languages/pug.nix b/modules/plugins/languages/pug.nix index e57c1c2ed..ef1860255 100644 --- a/modules/plugins/languages/pug.nix +++ b/modules/plugins/languages/pug.nix @@ -16,7 +16,7 @@ servers = ["emmet-ls"]; defaultFormat = ["prettier"]; - formats = ["prettier"]; + formats = ["prettier" "injected"]; in { options.vim.languages.pug = { enable = mkEnableOption "Pug language support"; diff --git a/modules/plugins/languages/python.nix b/modules/plugins/languages/python.nix index f2eff3fec..5c1acd120 100644 --- a/modules/plugins/languages/python.nix +++ b/modules/plugins/languages/python.nix @@ -20,7 +20,7 @@ servers = ["pyrefly" "pyright" "basedpyright" "python-lsp-server" "ruff" "ty" "zuban"]; defaultFormat = ["black"]; - formats = ["black" "isort" "ruff" "ruff-fix" "black-and-isort"]; + formats = ["black" "isort" "ruff" "ruff-fix" "black-and-isort" "injected"]; defaultDebugger = ["debugpy"]; dapConfigurations = { diff --git a/modules/plugins/languages/qml.nix b/modules/plugins/languages/qml.nix index 22c703666..9fce3c366 100644 --- a/modules/plugins/languages/qml.nix +++ b/modules/plugins/languages/qml.nix @@ -16,7 +16,7 @@ servers = ["qmlls"]; defaultFormat = ["qmlformat"]; - formats = ["qmlformat"]; + formats = ["qmlformat" "injected"]; in { options.vim.languages.qml = { enable = mkEnableOption "QML language support"; diff --git a/modules/plugins/languages/query.nix b/modules/plugins/languages/query.nix index c7631703a..641ea31a9 100644 --- a/modules/plugins/languages/query.nix +++ b/modules/plugins/languages/query.nix @@ -14,6 +14,9 @@ defaultServers = ["ts-query-ls"]; servers = ["ts-query-ls"]; + + defaultFormat = ["ts-query-ls"]; + formats = ["ts-query-ls" "injected"]; in { options.vim.languages.query = { enable = mkEnableOption "Treesitter Query support"; @@ -41,6 +44,21 @@ in { description = "Treesitter Query LSP server to use"; }; }; + + format = { + enable = + mkEnableOption "Treesitter Query formatting" + // { + default = config.vim.languages.enableFormat; + defaultText = literalExpression "config.vim.languages.enableFormat"; + }; + + type = mkOption { + description = "Treesitter Query formatter to use"; + type = listOf (enum formats); + default = defaultFormat; + }; + }; }; config = mkIf cfg.enable (mkMerge [ @@ -59,5 +77,13 @@ in { }); }; }) + + (mkIf cfg.format.enable { + vim.formatter.conform-nvim = { + enable = true; + presets = genAttrs cfg.format.type (_: {enable = true;}); + setupOpts.formatters_by_ft.query = cfg.format.type; + }; + }) ]); } diff --git a/modules/plugins/languages/r.nix b/modules/plugins/languages/r.nix index e1f2e740b..3564997d5 100644 --- a/modules/plugins/languages/r.nix +++ b/modules/plugins/languages/r.nix @@ -13,7 +13,7 @@ cfg = config.vim.languages.r; defaultFormat = ["format-r"]; - formats = ["styler" "format-r"]; + formats = ["styler" "format-r" "injected"]; defaultServers = ["r-languageserver"]; servers = ["r-languageserver"]; diff --git a/modules/plugins/languages/ruby.nix b/modules/plugins/languages/ruby.nix index 661caccad..4916854be 100644 --- a/modules/plugins/languages/ruby.nix +++ b/modules/plugins/languages/ruby.nix @@ -16,7 +16,7 @@ servers = ["ruby-lsp" "solargraph" "stimulus-language-server"]; defaultFormat = ["rubocop"]; - formats = ["rubocop"]; + formats = ["rubocop" "injected"]; defaultDiagnosticsProvider = ["rubocop"]; diagnosticsProviders = ["rubocop"]; diff --git a/modules/plugins/languages/rust.nix b/modules/plugins/languages/rust.nix index 6862baaba..edb2251a0 100644 --- a/modules/plugins/languages/rust.nix +++ b/modules/plugins/languages/rust.nix @@ -6,7 +6,7 @@ }: let inherit (lib.modules) mkIf mkMerge; inherit (lib.options) mkOption mkEnableOption literalMD literalExpression; - inherit (lib.meta) getExe; + inherit (lib.meta) getExe getExe'; inherit (lib.attrsets) attrNames genAttrs; inherit (lib.lists) flatten; inherit (lib.generators) mkLuaInline; @@ -22,7 +22,7 @@ defaultServers = ["rust-analyzer"]; defaultFormat = ["rustfmt"]; - formats = ["rustfmt"]; + formats = ["rustfmt" "injected"]; defaultDebugger = ["codelldb"]; dapConfigurations = { @@ -257,7 +257,7 @@ in { mkLuaInline '' { type = "executable", - command = "${pkgs.lldb}/bin/lldb-dap", + command = "${getExe' pkgs.lldb "lldb-dap"}", name = "rustacean_lldb", }'' else let diff --git a/modules/plugins/languages/scss.nix b/modules/plugins/languages/scss.nix index 2e251d005..983d2e2ed 100644 --- a/modules/plugins/languages/scss.nix +++ b/modules/plugins/languages/scss.nix @@ -16,7 +16,7 @@ servers = ["some-sass-language-server" "vscode-css-language-server" "emmet-ls"]; defaultFormat = ["prettier"]; - formats = ["prettier" "deno"]; + formats = ["prettier" "deno" "injected"]; formatType = listOf (coercedTo (enum ["prettierd"]) (_: lib.warn diff --git a/modules/plugins/languages/sql.nix b/modules/plugins/languages/sql.nix index 4a2883780..4bdb532b6 100644 --- a/modules/plugins/languages/sql.nix +++ b/modules/plugins/languages/sql.nix @@ -16,7 +16,7 @@ servers = ["sqls"]; defaultFormat = ["sqlfluff"]; - formats = ["sqlfluff" "sqruff"]; + formats = ["sqlfluff" "sqruff" "injected"]; defaultDiagnosticsProvider = ["sqlfluff"]; diagnosticsProviders = ["sqlfluff" "sqruff"]; diff --git a/modules/plugins/languages/standard-ml.nix b/modules/plugins/languages/standard-ml.nix index 8ad4889e4..7b2fbfeb2 100644 --- a/modules/plugins/languages/standard-ml.nix +++ b/modules/plugins/languages/standard-ml.nix @@ -16,7 +16,7 @@ servers = ["millet"]; defaultFormat = ["smlfmt"]; - formats = ["smlfmt"]; + formats = ["smlfmt" "injected"]; in { options.vim.languages.standard-ml = { enable = mkEnableOption "Standard ML support"; diff --git a/modules/plugins/languages/svelte.nix b/modules/plugins/languages/svelte.nix index a06ef8058..a23121dbd 100644 --- a/modules/plugins/languages/svelte.nix +++ b/modules/plugins/languages/svelte.nix @@ -16,7 +16,7 @@ servers = ["svelte-language-server" "emmet-ls"]; defaultFormat = ["prettier"]; - formats = ["prettier" "biome" "biome-check" "biome-organize-imports" "deno"]; + formats = ["prettier" "biome" "biome-check" "biome-organize-imports" "deno" "injected"]; defaultDiagnosticsProvider = ["eslint_d"]; diagnosticsProviders = ["eslint_d"]; diff --git a/modules/plugins/languages/tera.nix b/modules/plugins/languages/tera.nix index 8a31a5e76..0c2b11f18 100644 --- a/modules/plugins/languages/tera.nix +++ b/modules/plugins/languages/tera.nix @@ -61,8 +61,7 @@ in { query = '' ((content) @injection.content (#set! injection.language "${cfg.treesitter.injection}") - (#set! injection.combined) - ) + (#set! injection.combined)) ''; } ]; diff --git a/modules/plugins/languages/terraform.nix b/modules/plugins/languages/terraform.nix index 8321f372f..3114d0729 100644 --- a/modules/plugins/languages/terraform.nix +++ b/modules/plugins/languages/terraform.nix @@ -16,7 +16,7 @@ servers = ["terraform-ls" "tofu-ls"]; defaultFormat = ["opentofu"]; - formats = ["opentofu" "terraform"]; + formats = ["opentofu" "terraform" "injected"]; in { options.vim.languages.terraform = { enable = mkEnableOption "Terraform support"; diff --git a/modules/plugins/languages/tex.nix b/modules/plugins/languages/tex.nix index 00f3b58ba..178eb4a5c 100644 --- a/modules/plugins/languages/tex.nix +++ b/modules/plugins/languages/tex.nix @@ -15,7 +15,7 @@ servers = ["texlab"]; defaultFormat = ["tex-fmt"]; - formats = ["tex-fmt" "latexindent"]; + formats = ["tex-fmt" "latexindent" "injected"]; in { options.vim.languages.tex = { enable = mkEnableOption "TeX language support"; diff --git a/modules/plugins/languages/toml.nix b/modules/plugins/languages/toml.nix index 6114fccc1..3048b9ff7 100644 --- a/modules/plugins/languages/toml.nix +++ b/modules/plugins/languages/toml.nix @@ -15,7 +15,7 @@ servers = ["taplo" "tombi"]; defaultFormat = ["taplo"]; - formats = ["taplo" "tombi"]; + formats = ["taplo" "tombi" "injected"]; defaultDiagnosticsProvider = ["tombi"]; diagnosticsProviders = ["tombi" "taplo"]; diff --git a/modules/plugins/languages/tsx.nix b/modules/plugins/languages/tsx.nix index 89bd5a33e..64d10265e 100644 --- a/modules/plugins/languages/tsx.nix +++ b/modules/plugins/languages/tsx.nix @@ -16,7 +16,7 @@ servers = ["typescript-language-server" "deno" "typescript-go" "emmet-ls"]; defaultFormat = ["prettier"]; - formats = ["prettier" "biome" "biome-check" "biome-organize-imports" "deno"]; + formats = ["prettier" "biome" "biome-check" "biome-organize-imports" "deno" "injected"]; formatType = listOf (coercedTo (enum ["prettierd"]) (_: lib.warn "vim.languages.tsx.format.type: prettierd is deprecated, use prettier instead" diff --git a/modules/plugins/languages/twig.nix b/modules/plugins/languages/twig.nix index b68d88708..039ca2a4c 100644 --- a/modules/plugins/languages/twig.nix +++ b/modules/plugins/languages/twig.nix @@ -16,7 +16,7 @@ servers = ["twig-language-server" "emmet-ls" "stimulus-language-server"]; defaultFormat = ["djlint"]; - formats = ["djlint"]; + formats = ["djlint" "injected"]; defaultDiagnosticsProvider = ["djlint"]; # TODO: if curlylint gets packaged for nix, add it. diff --git a/modules/plugins/languages/typescript.nix b/modules/plugins/languages/typescript.nix index fe3f12f9c..532390ecf 100644 --- a/modules/plugins/languages/typescript.nix +++ b/modules/plugins/languages/typescript.nix @@ -25,7 +25,7 @@ ]; defaultFormat = ["prettier"]; - formats = ["prettier" "biome" "biome-check" "biome-organize-imports" "deno" "astyle"]; + formats = ["prettier" "biome" "biome-check" "biome-organize-imports" "deno" "astyle" "injected"]; formatType = listOf (coercedTo (enum ["prettierd"]) (_: lib.warn "vim.languages.typescript.format.type: prettierd is deprecated, use prettier instead" diff --git a/modules/plugins/languages/typst.nix b/modules/plugins/languages/typst.nix index f84f1da98..35b0d1196 100644 --- a/modules/plugins/languages/typst.nix +++ b/modules/plugins/languages/typst.nix @@ -21,7 +21,7 @@ servers = ["tinymist"]; defaultFormat = ["typstyle"]; - formats = ["typstyle"]; + formats = ["typstyle" "injected"]; in { options.vim.languages.typst = { enable = mkEnableOption "Typst language support"; diff --git a/modules/plugins/languages/vue.nix b/modules/plugins/languages/vue.nix index 5d88e0e2e..6fd94d6e9 100644 --- a/modules/plugins/languages/vue.nix +++ b/modules/plugins/languages/vue.nix @@ -16,7 +16,7 @@ servers = ["vue-language-server" "vtsls" "typescript-language-server" "emmet-ls"]; defaultFormat = ["biome" "biome-check" "biome-organize-imports"]; - formats = ["biome" "biome-check" "biome-organize-imports" "prettier" "deno"]; + formats = ["biome" "biome-check" "biome-organize-imports" "prettier" "deno" "injected"]; defaultDiagnosticsProvider = ["biomejs"]; diagnosticsProviders = ["biomejs"]; diff --git a/modules/plugins/languages/yaml.nix b/modules/plugins/languages/yaml.nix index 7025d7349..e839feba4 100644 --- a/modules/plugins/languages/yaml.nix +++ b/modules/plugins/languages/yaml.nix @@ -16,7 +16,7 @@ servers = ["yaml-language-server" "gitlab-ci-ls"]; defaultFormat = ["prettier"]; - formats = ["prettier" "deno"]; + formats = ["prettier" "deno" "injected"]; in { options.vim.languages.yaml = { enable = mkEnableOption "YAML language support"; diff --git a/modules/plugins/languages/zsh.nix b/modules/plugins/languages/zsh.nix index caa36d0ab..ec33341cc 100644 --- a/modules/plugins/languages/zsh.nix +++ b/modules/plugins/languages/zsh.nix @@ -16,7 +16,7 @@ servers = ["bash-language-server"]; defaultFormat = ["shfmt"]; - formats = ["shfmt"]; + formats = ["shfmt" "injected"]; in { options.vim.languages.zsh = { enable = mkEnableOption "Z Shell language support"; diff --git a/modules/plugins/lsp/presets/angular-language-server.nix b/modules/plugins/lsp/presets/angular-language-server.nix index 008628e56..d8697a8f8 100644 --- a/modules/plugins/lsp/presets/angular-language-server.nix +++ b/modules/plugins/lsp/presets/angular-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.angular-language-server; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.angular-language-server = { enable = true; - cmd = ["${pkgs.angular-language-server}/bin/ngserver" "--stdio"]; + cmd = [(getExe pkgs.angular-language-server) "--stdio"]; root_markers = ["angular.json" "nx.json"]; workspace_required = true; }; diff --git a/modules/plugins/lsp/presets/arduino-language-server.nix b/modules/plugins/lsp/presets/arduino-language-server.nix index 551910d02..b7136c3ff 100644 --- a/modules/plugins/lsp/presets/arduino-language-server.nix +++ b/modules/plugins/lsp/presets/arduino-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe getExe'; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.arduino-language-server; @@ -21,11 +22,11 @@ in { vim.lsp.servers.arduino-language-server = { enable = true; cmd = [ - "${pkgs.arduino-language-server}/bin/arduino-language-server" + (getExe pkgs.arduino-language-server) "-clangd" - "${pkgs.clang-tools}/bin/clangd" + (getExe' pkgs.clang-tools "clangd") "-cli" - "${pkgs.arduino-cli}/bin/arduino-cli" + (getExe pkgs.arduino-cli) "-cli-config" "$HOME/.arduino15/arduino-cli.yaml" ]; diff --git a/modules/plugins/lsp/presets/asm-lsp.nix b/modules/plugins/lsp/presets/asm-lsp.nix index 5a5a1df53..15f84d2d3 100644 --- a/modules/plugins/lsp/presets/asm-lsp.nix +++ b/modules/plugins/lsp/presets/asm-lsp.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.asm-lsp; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.asm-lsp = { enable = true; - cmd = ["${pkgs.asm-lsp}/bin/asm-lsp"]; + cmd = [(getExe pkgs.asm-lsp)]; root_markers = [".git" ".asm-lsp.toml"]; }; }; diff --git a/modules/plugins/lsp/presets/astro-language-server.nix b/modules/plugins/lsp/presets/astro-language-server.nix index be73f0d20..cb616c3bf 100644 --- a/modules/plugins/lsp/presets/astro-language-server.nix +++ b/modules/plugins/lsp/presets/astro-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.astro-language-server; @@ -21,13 +22,13 @@ in { vim.lsp.servers.astro-language-server = { enable = true; cmd = [ - "${pkgs.symlinkJoin { + (getExe (pkgs.symlinkJoin { name = "astro-ls-wrapper"; paths = [pkgs.astro-language-server]; meta.mainProgram = "astro-ls"; buildInputs = [pkgs.makeBinaryWrapper]; postBuild = "wrapProgram $out/bin/astro-ls --prefix NODE_PATH : '${pkgs.typescript}/lib/node_modules'"; - }}/bin/astro-ls" + })) "--stdio" ]; root_markers = [".git" "package.json" "tsconfig.json" "jsconfig.json"]; diff --git a/modules/plugins/lsp/presets/basedpyright.nix b/modules/plugins/lsp/presets/basedpyright.nix index 685a2351b..c42248fe1 100644 --- a/modules/plugins/lsp/presets/basedpyright.nix +++ b/modules/plugins/lsp/presets/basedpyright.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe'; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.dag) entryBefore; @@ -22,7 +23,7 @@ in { vim = { lsp.servers.basedpyright = { enable = true; - cmd = ["${pkgs.basedpyright}/bin/basedpyright-langserver" "--stdio"]; + cmd = [(getExe' pkgs.basedpyright "basedpyright-langserver") "--stdio"]; root_markers = [".git" "pyrightconfig.json"]; settings = { basedpyright = { diff --git a/modules/plugins/lsp/presets/bash-language-server.nix b/modules/plugins/lsp/presets/bash-language-server.nix index b9eed9e2a..6f1db1903 100644 --- a/modules/plugins/lsp/presets/bash-language-server.nix +++ b/modules/plugins/lsp/presets/bash-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.bash-language-server; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.bash-language-server = { enable = true; - cmd = ["${pkgs.bash-language-server}/bin/bash-language-server" "start"]; + cmd = [(getExe pkgs.bash-language-server) "start"]; root_markers = [".git"]; settings = { bashIde = { diff --git a/modules/plugins/lsp/presets/ccls.nix b/modules/plugins/lsp/presets/ccls.nix index c0b6c979a..5ff6e78db 100644 --- a/modules/plugins/lsp/presets/ccls.nix +++ b/modules/plugins/lsp/presets/ccls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.ccls; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.ccls = { enable = true; - cmd = ["${pkgs.ccls}/bin/ccls"]; + cmd = [(getExe pkgs.ccls)]; offset_encoding = "utf-32"; root_markers = [".git" ".ccls" "compile_commands.json"]; workspace_required = true; diff --git a/modules/plugins/lsp/presets/clangd.nix b/modules/plugins/lsp/presets/clangd.nix index ffc689176..916a54d69 100644 --- a/modules/plugins/lsp/presets/clangd.nix +++ b/modules/plugins/lsp/presets/clangd.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe'; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.clangd; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.clangd = { enable = true; - cmd = ["${pkgs.clang-tools}/bin/clangd"]; + cmd = [(getExe' pkgs.clang-tools "clangd")]; root_markers = [ ".git" ".clangd" diff --git a/modules/plugins/lsp/presets/clojure-lsp.nix b/modules/plugins/lsp/presets/clojure-lsp.nix index 3e22059cc..af35ab7a7 100644 --- a/modules/plugins/lsp/presets/clojure-lsp.nix +++ b/modules/plugins/lsp/presets/clojure-lsp.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.clojure-lsp; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.clojure-lsp = { enable = true; - cmd = ["${pkgs.clojure-lsp}/bin/clojure-lsp"]; + cmd = [(getExe pkgs.clojure-lsp)]; root_markers = [".git" "project.clj"]; }; }; diff --git a/modules/plugins/lsp/presets/csharp_ls.nix b/modules/plugins/lsp/presets/csharp_ls.nix index beb475c68..fcd21aa8b 100644 --- a/modules/plugins/lsp/presets/csharp_ls.nix +++ b/modules/plugins/lsp/presets/csharp_ls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.csharp_ls; @@ -22,7 +23,7 @@ in { vim.lsp.servers.csharp_ls = { cmd = mkLuaInline '' function(dispatchers, config) - return vim.lsp.rpc.start({ '${pkgs.csharp-ls}/bin/csharp-ls', '--features', 'razor-support' , '--features', 'metadata-uris'}, dispatchers, { + return vim.lsp.rpc.start({ '${getExe pkgs.csharp-ls}', '--features', 'razor-support' , '--features', 'metadata-uris'}, dispatchers, { -- csharp-ls attempt to locate sln, slnx or csproj files from cwd, so set cwd to root directory. -- If cmd_cwd is provided, use it instead. cwd = config.cmd_cwd or config.root_dir, diff --git a/modules/plugins/lsp/presets/cue.nix b/modules/plugins/lsp/presets/cue.nix index ea42fcabd..1c69bd73d 100644 --- a/modules/plugins/lsp/presets/cue.nix +++ b/modules/plugins/lsp/presets/cue.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.cue; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.cue = { enable = true; - cmd = ["${pkgs.cue}/bin/cue" "lsp"]; + cmd = [(getExe pkgs.cue) "lsp"]; root_markers = [".git" "cue.mod"]; }; }; diff --git a/modules/plugins/lsp/presets/dart.nix b/modules/plugins/lsp/presets/dart.nix index 6352dd8cf..4ce0adc3a 100644 --- a/modules/plugins/lsp/presets/dart.nix +++ b/modules/plugins/lsp/presets/dart.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.dart; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.dart = { enable = true; - cmd = ["${pkgs.dart}/bin/dart" "language-server" "--protocol=lsp"]; + cmd = [(getExe pkgs.dart) "language-server" "--protocol=lsp"]; root_markers = [".git" "pubspec.yaml"]; init_options = { onlyAnalyzeProjectsWithOpenFiles = true; diff --git a/modules/plugins/lsp/presets/deno.nix b/modules/plugins/lsp/presets/deno.nix index cb4a9eb37..ea7a3ec5d 100644 --- a/modules/plugins/lsp/presets/deno.nix +++ b/modules/plugins/lsp/presets/deno.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.deno; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.deno = { enable = true; - cmd = ["${pkgs.deno}/bin/deno" "lsp"]; + cmd = [(getExe pkgs.deno) "lsp"]; cmd_env = {NO_COLOR = true;}; root_markers = ["deno.json" "deno.jsonc" ".git"]; settings = { diff --git a/modules/plugins/lsp/presets/docker-language-server.nix b/modules/plugins/lsp/presets/docker-language-server.nix index faad80f20..f19583b89 100644 --- a/modules/plugins/lsp/presets/docker-language-server.nix +++ b/modules/plugins/lsp/presets/docker-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.docker-language-server; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.docker-language-server = { enable = true; - cmd = ["${pkgs.docker-language-server}/bin/docker-language-server" "start" "--stdio"]; + cmd = [(getExe pkgs.docker-language-server) "start" "--stdio"]; root_markers = [ ".git" "Dockerfile" diff --git a/modules/plugins/lsp/presets/elixir-ls.nix b/modules/plugins/lsp/presets/elixir-ls.nix index b49c483b5..922865a0b 100644 --- a/modules/plugins/lsp/presets/elixir-ls.nix +++ b/modules/plugins/lsp/presets/elixir-ls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.elixir-ls; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.elixir-ls = { enable = true; - cmd = ["${pkgs.elixir-ls}/bin/elixir-ls"]; + cmd = [(getExe pkgs.elixir-ls)]; root_dir = mkLuaInline '' function(bufnr, on_dir) local fname = vim.api.nvim_buf_get_name(bufnr) diff --git a/modules/plugins/lsp/presets/elm-language-server.nix b/modules/plugins/lsp/presets/elm-language-server.nix index abf6766b2..3425c3163 100644 --- a/modules/plugins/lsp/presets/elm-language-server.nix +++ b/modules/plugins/lsp/presets/elm-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.elm-language-server; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.elm-language-server = { enable = true; - cmd = ["${pkgs.elmPackages.elm-language-server}/bin/elm-language-server"]; + cmd = [(getExe pkgs.elmPackages.elm-language-server)]; root_markers = [".git" "elm.json"]; workspace_required = false; }; diff --git a/modules/plugins/lsp/presets/emmet-ls.nix b/modules/plugins/lsp/presets/emmet-ls.nix index 76396e44c..3a0d57679 100644 --- a/modules/plugins/lsp/presets/emmet-ls.nix +++ b/modules/plugins/lsp/presets/emmet-ls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.emmet-ls; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.emmet-ls = { enable = true; - cmd = ["${pkgs.emmet-ls}/bin/emmet-ls" "--stdio"]; + cmd = [(getExe pkgs.emmet-ls) "--stdio"]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/fish-lsp.nix b/modules/plugins/lsp/presets/fish-lsp.nix index af83c28ef..8515e1f48 100644 --- a/modules/plugins/lsp/presets/fish-lsp.nix +++ b/modules/plugins/lsp/presets/fish-lsp.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.fish-lsp; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.fish-lsp = { enable = true; - cmd = ["${pkgs.fish-lsp}/bin/fish-lsp" "start"]; + cmd = [(getExe pkgs.fish-lsp) "start"]; root_markers = ["config.fish" ".git"]; }; }; diff --git a/modules/plugins/lsp/presets/fsautocomplete.nix b/modules/plugins/lsp/presets/fsautocomplete.nix index dcafca9c9..cf77c32ed 100644 --- a/modules/plugins/lsp/presets/fsautocomplete.nix +++ b/modules/plugins/lsp/presets/fsautocomplete.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.fsautocomplete; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.fsautocomplete = { enable = true; - cmd = ["${pkgs.fsautocomplete}/bin/fsautocomplete" "--adaptive-lsp-server-enabled"]; + cmd = [(getExe pkgs.fsautocomplete) "--adaptive-lsp-server-enabled"]; root_dir = mkLuaInline '' function(bufnr, on_dir) on_dir(vim.fs.root(bufnr, function(name, path) diff --git a/modules/plugins/lsp/presets/gitlab-ci-ls.nix b/modules/plugins/lsp/presets/gitlab-ci-ls.nix index 33cf1f007..97b7dfa8f 100644 --- a/modules/plugins/lsp/presets/gitlab-ci-ls.nix +++ b/modules/plugins/lsp/presets/gitlab-ci-ls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.gitlab-ci-ls; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.gitlab-ci-ls = { enable = true; - cmd = ["${pkgs.gitlab-ci-ls}/bin/gitlab-ci-ls"]; + cmd = [(getExe pkgs.gitlab-ci-ls)]; root_markers = [".git" ".gitlab"]; }; }; diff --git a/modules/plugins/lsp/presets/gleam.nix b/modules/plugins/lsp/presets/gleam.nix index 8ee95609f..bd0266da4 100644 --- a/modules/plugins/lsp/presets/gleam.nix +++ b/modules/plugins/lsp/presets/gleam.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.gleam; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.gleam = { enable = true; - cmd = ["${pkgs.gleam}/bin/gleam" "lsp"]; + cmd = [(getExe pkgs.gleam) "lsp"]; root_markers = [".git" "gleam.toml"]; }; }; diff --git a/modules/plugins/lsp/presets/glsl_analyzer.nix b/modules/plugins/lsp/presets/glsl_analyzer.nix index 54583b2a6..f343c3848 100644 --- a/modules/plugins/lsp/presets/glsl_analyzer.nix +++ b/modules/plugins/lsp/presets/glsl_analyzer.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.glsl_analyzer; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.glsl_analyzer = { enable = true; - cmd = ["${pkgs.glsl_analyzer}/bin/glsl_analyzer"]; + cmd = [(getExe pkgs.glsl_analyzer)]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/gopls.nix b/modules/plugins/lsp/presets/gopls.nix index 1cfe00f76..899bc65d0 100644 --- a/modules/plugins/lsp/presets/gopls.nix +++ b/modules/plugins/lsp/presets/gopls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.gopls; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.gopls = { enable = true; - cmd = ["${pkgs.gopls}/bin/gopls"]; + cmd = [(getExe pkgs.gopls)]; root_dir = mkLuaInline '' function(bufnr, on_dir) local fname = vim.api.nvim_buf_get_name(bufnr) diff --git a/modules/plugins/lsp/presets/harper.nix b/modules/plugins/lsp/presets/harper.nix index 4d80eb29c..20e3b8fc3 100644 --- a/modules/plugins/lsp/presets/harper.nix +++ b/modules/plugins/lsp/presets/harper.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.harper; filetypes = [ @@ -47,7 +48,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.harper = { enable = true; - cmd = ["${pkgs.harper}/bin/harper-ls" "--stdio"]; + cmd = [(getExe pkgs.harper) "--stdio"]; root_markers = [".git" ".harper-dictionary.txt"]; # Make Harper shut up in the logs, that its key is required, when nothing is configured. settings.harper-ls = {}; diff --git a/modules/plugins/lsp/presets/haskell-language-server.nix b/modules/plugins/lsp/presets/haskell-language-server.nix index 0905fedfa..6a7371d76 100644 --- a/modules/plugins/lsp/presets/haskell-language-server.nix +++ b/modules/plugins/lsp/presets/haskell-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.haskell-language-server; in { @@ -20,7 +21,7 @@ in { vim.lsp.servers.haskell-language-server = { enable = true; cmd = [ - "${(pkgs.symlinkJoin { + (getExe (pkgs.symlinkJoin { name = "haskell-language-server-wrapper"; paths = [pkgs.haskellPackages.haskell-language-server]; meta.mainProgram = "haskell-language-server-wrapper"; @@ -30,7 +31,7 @@ in { wrapProgram $out/bin/haskell-language-server-wrapper \ --prefix PATH : ${pkgs.haskellPackages.haskell-language-server}/bin ''; - })}/bin/haskell-language-server-wrapper" + })) "--lsp" ]; root_markers = ["hie.yaml" "stack.yaml" "cabal.project" "*.cabal" "package.yaml"]; diff --git a/modules/plugins/lsp/presets/helm-ls.nix b/modules/plugins/lsp/presets/helm-ls.nix index 99cc21f25..d4ed1135d 100644 --- a/modules/plugins/lsp/presets/helm-ls.nix +++ b/modules/plugins/lsp/presets/helm-ls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.helm-ls; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.helm-ls = { enable = true; - cmd = ["${pkgs.helm-ls}/bin/helm_ls" "serve"]; + cmd = [(getExe pkgs.helm-ls) "serve"]; root_markers = [".git" "Chart.yaml"]; capabilities = { didChangeWatchedFiles = { diff --git a/modules/plugins/lsp/presets/intelephense.nix b/modules/plugins/lsp/presets/intelephense.nix index ce5729356..367a7f581 100644 --- a/modules/plugins/lsp/presets/intelephense.nix +++ b/modules/plugins/lsp/presets/intelephense.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.intelephense; in { @@ -25,7 +26,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.intelephense = { enable = true; - cmd = ["${pkgs.intelephense}/bin/intelephense" "--stdio"]; + cmd = [(getExe pkgs.intelephense) "--stdio"]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/jdt-language-server.nix b/modules/plugins/lsp/presets/jdt-language-server.nix index 9282e7a31..3c48474fc 100644 --- a/modules/plugins/lsp/presets/jdt-language-server.nix +++ b/modules/plugins/lsp/presets/jdt-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.dag) entryBefore; @@ -24,7 +25,7 @@ in { enable = true; cmd = mkLuaInline '' { - '${pkgs.jdt-language-server}/bin/jdtls', + '${getExe pkgs.jdt-language-server}', '-configuration', get_jdtls_config_dir(), '-data', diff --git a/modules/plugins/lsp/presets/jinja-lsp.nix b/modules/plugins/lsp/presets/jinja-lsp.nix index 822bc4df0..458b2e296 100644 --- a/modules/plugins/lsp/presets/jinja-lsp.nix +++ b/modules/plugins/lsp/presets/jinja-lsp.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.jinja-lsp; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.jinja-lsp = { enable = true; - cmd = ["${pkgs.jinja-lsp}/bin/jinja-lsp"]; + cmd = [(getExe pkgs.jinja-lsp)]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/jls.nix b/modules/plugins/lsp/presets/jls.nix index fd6ca0a93..df59236e5 100644 --- a/modules/plugins/lsp/presets/jls.nix +++ b/modules/plugins/lsp/presets/jls.nix @@ -7,6 +7,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.jls; in { @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.jls = { enable = true; - cmd = ["${inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.jls}/bin/jls"]; + cmd = [(getExe (inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.jls))]; root_markers = [ ".git" ".java-version" diff --git a/modules/plugins/lsp/presets/jq-lsp.nix b/modules/plugins/lsp/presets/jq-lsp.nix index 48ea9fe1d..dbc0140d4 100644 --- a/modules/plugins/lsp/presets/jq-lsp.nix +++ b/modules/plugins/lsp/presets/jq-lsp.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.jq-lsp; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.jq-lsp = { enable = true; - cmd = ["${pkgs.jq-lsp}/bin/jq-lsp"]; + cmd = [(getExe pkgs.jq-lsp)]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/julia-languageserver.nix b/modules/plugins/lsp/presets/julia-languageserver.nix index 478331153..f25ff102f 100644 --- a/modules/plugins/lsp/presets/julia-languageserver.nix +++ b/modules/plugins/lsp/presets/julia-languageserver.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.dag) entryBefore; @@ -25,7 +26,7 @@ in { root_markers = ["Project.toml" "JuliaProject.toml"]; cmd = mkLuaInline '' { - '${pkgs.julia.withPackages ["LanguageServer"]}/bin/julia', + '${getExe (pkgs.julia.withPackages ["LanguageServer"])}', '--startup-file=no', '--history-file=no', '-e', diff --git a/modules/plugins/lsp/presets/just-lsp.nix b/modules/plugins/lsp/presets/just-lsp.nix index bbbc086c9..d5372cb0a 100644 --- a/modules/plugins/lsp/presets/just-lsp.nix +++ b/modules/plugins/lsp/presets/just-lsp.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.just-lsp; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.just-lsp = { enable = true; - cmd = ["${pkgs.just-lsp}/bin/just-lsp"]; + cmd = [(getExe pkgs.just-lsp)]; root_markers = [".git" "Justfile" "justfile"]; }; }; diff --git a/modules/plugins/lsp/presets/kotlin-language-server.nix b/modules/plugins/lsp/presets/kotlin-language-server.nix index e9ba33727..6230fa914 100644 --- a/modules/plugins/lsp/presets/kotlin-language-server.nix +++ b/modules/plugins/lsp/presets/kotlin-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.kotlin-language-server; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.kotlin-language-server = { enable = true; - cmd = ["${pkgs.kotlin-language-server}/bin/kotlin-language-server"]; + cmd = [(getExe pkgs.kotlin-language-server)]; root_markers = [ "settings.gradle" # Gradle (multi-project) "settings.gradle.kts" # Gradle (multi-project) diff --git a/modules/plugins/lsp/presets/lemminx.nix b/modules/plugins/lsp/presets/lemminx.nix index 9a721330d..47df10fdd 100644 --- a/modules/plugins/lsp/presets/lemminx.nix +++ b/modules/plugins/lsp/presets/lemminx.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.lemminx; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.lemminx = { enable = true; - cmd = ["${pkgs.lemminx}/bin/lemminx"]; + cmd = [(getExe pkgs.lemminx)]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/lua-language-server.nix b/modules/plugins/lsp/presets/lua-language-server.nix index 468f8f4eb..5d6f0cd4b 100644 --- a/modules/plugins/lsp/presets/lua-language-server.nix +++ b/modules/plugins/lsp/presets/lua-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.lua-language-server; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.lua-language-server = { enable = true; - cmd = ["${pkgs.lua-language-server}/bin/lua-language-server"]; + cmd = [(getExe pkgs.lua-language-server)]; root_markers = [ ".luarc.json" ".luarc.jsonc" diff --git a/modules/plugins/lsp/presets/markdown-oxide.nix b/modules/plugins/lsp/presets/markdown-oxide.nix index 8cbb81711..379940208 100644 --- a/modules/plugins/lsp/presets/markdown-oxide.nix +++ b/modules/plugins/lsp/presets/markdown-oxide.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.markdown-oxide; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.markdown-oxide = { enable = true; - cmd = ["${pkgs.markdown-oxide}/bin/markdown-oxide"]; + cmd = [(getExe pkgs.markdown-oxide)]; root_markers = [".git" ".moxide.toml" ".obsidian"]; }; }; diff --git a/modules/plugins/lsp/presets/marksman.nix b/modules/plugins/lsp/presets/marksman.nix index dae3ebd97..054d02ee9 100644 --- a/modules/plugins/lsp/presets/marksman.nix +++ b/modules/plugins/lsp/presets/marksman.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.marksman; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.marksman = { enable = true; - cmd = ["${pkgs.marksman}/bin/marksman" "server"]; + cmd = [(getExe pkgs.marksman) "server"]; root_markers = [".git" ".marksman.toml"]; }; }; diff --git a/modules/plugins/lsp/presets/millet.nix b/modules/plugins/lsp/presets/millet.nix index a5e1ee156..1c29d5d87 100644 --- a/modules/plugins/lsp/presets/millet.nix +++ b/modules/plugins/lsp/presets/millet.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.millet; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.millet = { enable = true; - cmd = ["${pkgs.millet}/bin/millet-ls"]; + cmd = [(getExe pkgs.millet)]; root_markers = [".git" "millet.toml"]; }; }; diff --git a/modules/plugins/lsp/presets/neocmakelsp.nix b/modules/plugins/lsp/presets/neocmakelsp.nix index 8710781ef..b301c0317 100644 --- a/modules/plugins/lsp/presets/neocmakelsp.nix +++ b/modules/plugins/lsp/presets/neocmakelsp.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.neocmakelsp; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.neocmakelsp = { enable = true; - cmd = ["${pkgs.neocmakelsp}/bin/neocmakelsp" "stdio"]; + cmd = [(getExe pkgs.neocmakelsp) "stdio"]; root_markers = [".git" ".gersemirc"]; capabilities = { textDocument.completion.completionItem.snippetSupport = true; diff --git a/modules/plugins/lsp/presets/nil.nix b/modules/plugins/lsp/presets/nil.nix index 27a6363fd..9ca3ae3a1 100644 --- a/modules/plugins/lsp/presets/nil.nix +++ b/modules/plugins/lsp/presets/nil.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.nil; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.nil = { enable = true; - cmd = ["${pkgs.nil}/bin/nil"]; + cmd = [(getExe pkgs.nil)]; root_markers = [".git"]; settings.nil.nix.autoArchive = true; }; diff --git a/modules/plugins/lsp/presets/nimlsp.nix b/modules/plugins/lsp/presets/nimlsp.nix index d03f04760..8bb9f311a 100644 --- a/modules/plugins/lsp/presets/nimlsp.nix +++ b/modules/plugins/lsp/presets/nimlsp.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.nimlsp; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.nimlsp = { enable = true; - cmd = ["${pkgs.nimlsp}/bin/nimlsp"]; + cmd = [(getExe pkgs.nimlsp)]; root_dir = mkLuaInline '' function(bufnr, on_dir) local fname = vim.api.nvim_buf_get_name(bufnr) diff --git a/modules/plugins/lsp/presets/nixd.nix b/modules/plugins/lsp/presets/nixd.nix index b63ffaf91..5347fdf36 100644 --- a/modules/plugins/lsp/presets/nixd.nix +++ b/modules/plugins/lsp/presets/nixd.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.nixd; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.nixd = { enable = true; - cmd = ["${pkgs.nixd}/bin/nixd"]; + cmd = [(getExe pkgs.nixd)]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/nushell.nix b/modules/plugins/lsp/presets/nushell.nix index 954b35af3..0f82f8b3c 100644 --- a/modules/plugins/lsp/presets/nushell.nix +++ b/modules/plugins/lsp/presets/nushell.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.nushell; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.nushell = { enable = true; - cmd = ["${pkgs.nushell}/bin/nu" "--no-config-file" "--lsp"]; + cmd = [(getExe pkgs.nushell) "--no-config-file" "--lsp"]; root_dir = mkLuaInline '' function(bufnr, on_dir) on_dir(vim.fs.root(bufnr, { '.git' }) or vim.fs.dirname(vim.api.nvim_buf_get_name(bufnr))) diff --git a/modules/plugins/lsp/presets/ocaml-lsp.nix b/modules/plugins/lsp/presets/ocaml-lsp.nix index cac19cc97..58084a24b 100644 --- a/modules/plugins/lsp/presets/ocaml-lsp.nix +++ b/modules/plugins/lsp/presets/ocaml-lsp.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.ocaml-lsp; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.ocaml-lsp = { enable = true; - cmd = ["${pkgs.ocamlPackages.ocaml-lsp}/bin/ocamllsp"]; + cmd = [(getExe pkgs.ocamlPackages.ocaml-lsp)]; root_dir = mkLuaInline '' function(bufnr, on_dir) local fname = vim.api.nvim_buf_get_name(bufnr) diff --git a/modules/plugins/lsp/presets/ols.nix b/modules/plugins/lsp/presets/ols.nix index 4e0ec093b..c5315d098 100644 --- a/modules/plugins/lsp/presets/ols.nix +++ b/modules/plugins/lsp/presets/ols.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.ols; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.ols = { enable = true; - cmd = ["${pkgs.ols}/bin/ols"]; + cmd = [(getExe pkgs.ols)]; root_dir = mkLuaInline '' function(bufnr, on_dir) local fname = vim.api.nvim_buf_get_name(bufnr) diff --git a/modules/plugins/lsp/presets/omnisharp.nix b/modules/plugins/lsp/presets/omnisharp.nix index a39095a5e..e929555a9 100644 --- a/modules/plugins/lsp/presets/omnisharp.nix +++ b/modules/plugins/lsp/presets/omnisharp.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.omnisharp; @@ -22,7 +23,7 @@ in { vim.lsp.servers.omnisharp = { cmd = mkLuaInline '' { - '${pkgs.omnisharp-roslyn}/bin/OmniSharp', + '${getExe pkgs.omnisharp-roslyn}', '-z', -- https://github.com/OmniSharp/omnisharp-vscode/pull/4300 '--hostPID', tostring(vim.fn.getpid()), diff --git a/modules/plugins/lsp/presets/openscad-lsp.nix b/modules/plugins/lsp/presets/openscad-lsp.nix index e0323a257..af12196d5 100644 --- a/modules/plugins/lsp/presets/openscad-lsp.nix +++ b/modules/plugins/lsp/presets/openscad-lsp.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.openscad-lsp; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.openscad-lsp = { enable = true; - cmd = ["${pkgs.openscad-lsp}/bin/openscad-lsp" "--stdio"]; + cmd = [(getExe pkgs.openscad-lsp) "--stdio"]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/phan.nix b/modules/plugins/lsp/presets/phan.nix index 22a834f75..3e96a103c 100644 --- a/modules/plugins/lsp/presets/phan.nix +++ b/modules/plugins/lsp/presets/phan.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.phan; @@ -21,7 +22,7 @@ in { vim.lsp.servers.phan = { enable = true; cmd = [ - "${pkgs.php85Packages.phan}/bin/phan" + (getExe pkgs.php85Packages.phan) "-m" "json" "--no-color" diff --git a/modules/plugins/lsp/presets/phpactor.nix b/modules/plugins/lsp/presets/phpactor.nix index d878d7a4f..784ab5687 100644 --- a/modules/plugins/lsp/presets/phpactor.nix +++ b/modules/plugins/lsp/presets/phpactor.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.phpactor; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.phpactor = { enable = true; - cmd = ["${pkgs.phpactor}/bin/phpactor" "language-server"]; + cmd = [(getExe pkgs.phpactor) "language-server"]; root_markers = [".git" ".phpactor.json" ".phpactor.yml"]; workspace_required = true; }; diff --git a/modules/plugins/lsp/presets/phpantom.nix b/modules/plugins/lsp/presets/phpantom.nix index 0eb5f1d96..a37bddf18 100644 --- a/modules/plugins/lsp/presets/phpantom.nix +++ b/modules/plugins/lsp/presets/phpantom.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.phpantom; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.phpantom = { enable = true; - cmd = ["${pkgs.phpantom-lsp}/bin/phpantom_lsp"]; + cmd = [(getExe pkgs.phpantom-lsp)]; root_markers = [".phpantom.toml" "composer.json" ".php-version" ".git"]; }; }; diff --git a/modules/plugins/lsp/presets/pyrefly.nix b/modules/plugins/lsp/presets/pyrefly.nix index 89f8aa1da..2bee472cd 100644 --- a/modules/plugins/lsp/presets/pyrefly.nix +++ b/modules/plugins/lsp/presets/pyrefly.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.pyrefly; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.pyrefly = { enable = true; - cmd = ["${pkgs.pyrefly}/bin/pyrefly" "lsp"]; + cmd = [(getExe pkgs.pyrefly) "lsp"]; root_markers = [".git" "pyrefly.toml"]; }; }; diff --git a/modules/plugins/lsp/presets/pyright.nix b/modules/plugins/lsp/presets/pyright.nix index 9e32cdd5d..d482a40c1 100644 --- a/modules/plugins/lsp/presets/pyright.nix +++ b/modules/plugins/lsp/presets/pyright.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe'; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.dag) entryBefore; @@ -22,7 +23,7 @@ in { vim = { lsp.servers.pyright = { enable = true; - cmd = ["${pkgs.pyright}/bin/pyright-langserver" "--stdio"]; + cmd = [(getExe' pkgs.pyright "pyright-langserver") "--stdio"]; root_markers = [".git" "pyrightconfig.json"]; settings = { python = { diff --git a/modules/plugins/lsp/presets/python-lsp-server.nix b/modules/plugins/lsp/presets/python-lsp-server.nix index 211653081..09882157b 100644 --- a/modules/plugins/lsp/presets/python-lsp-server.nix +++ b/modules/plugins/lsp/presets/python-lsp-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.python-lsp-server; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.python-lsp-server = { enable = true; - cmd = ["${pkgs.python3Packages.python-lsp-server}/bin/pylsp"]; + cmd = [(getExe pkgs.python3Packages.python-lsp-server)]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/qmlls.nix b/modules/plugins/lsp/presets/qmlls.nix index fe147cea7..9511644fd 100644 --- a/modules/plugins/lsp/presets/qmlls.nix +++ b/modules/plugins/lsp/presets/qmlls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe'; cfg = config.vim.lsp.presets.qmlls; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.qmlls = { enable = true; - cmd = ["${pkgs.kdePackages.qtdeclarative}/bin/qmlls"]; + cmd = [(getExe' pkgs.kdePackages.qtdeclarative "qmlls")]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/r-languageserver.nix b/modules/plugins/lsp/presets/r-languageserver.nix index 2a5c23ceb..e5f56263e 100644 --- a/modules/plugins/lsp/presets/r-languageserver.nix +++ b/modules/plugins/lsp/presets/r-languageserver.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.r-languageserver; @@ -21,9 +22,9 @@ in { vim.lsp.servers.r-languageserver = { enable = true; cmd = [ - "${pkgs.rWrapper.override { + (getExe (pkgs.rWrapper.override { packages = [pkgs.rPackages.languageserver]; - }}/bin/R" + })) "--no-echo" "-e" "languageserver::run()" diff --git a/modules/plugins/lsp/presets/roslyn-ls.nix b/modules/plugins/lsp/presets/roslyn-ls.nix index 52265d9aa..0f5eb6e1c 100644 --- a/modules/plugins/lsp/presets/roslyn-ls.nix +++ b/modules/plugins/lsp/presets/roslyn-ls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.roslyn-ls; @@ -21,7 +22,7 @@ in { vim.lsp.servers.roslyn-ls = { cmd = mkLuaInline '' { - '${pkgs.roslyn-ls}/bin/Microsoft.CodeAnalysis.LanguageServer', + '${getExe pkgs.roslyn-ls}', '--logLevel', 'Information', '--extensionLogDirectory', diff --git a/modules/plugins/lsp/presets/ruby-lsp.nix b/modules/plugins/lsp/presets/ruby-lsp.nix index 874d69c90..04fbe1f74 100644 --- a/modules/plugins/lsp/presets/ruby-lsp.nix +++ b/modules/plugins/lsp/presets/ruby-lsp.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.ruby-lsp; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.ruby-lsp = { enable = true; - cmd = ["${pkgs.ruby-lsp}/bin/ruby-lsp"]; + cmd = [(getExe pkgs.ruby-lsp)]; root_markers = [".git"]; init_options = { formatter = "auto"; diff --git a/modules/plugins/lsp/presets/ruff.nix b/modules/plugins/lsp/presets/ruff.nix index 8a4eed37d..6cd15836c 100644 --- a/modules/plugins/lsp/presets/ruff.nix +++ b/modules/plugins/lsp/presets/ruff.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.ruff; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.ruff = { enable = true; - cmd = ["${pkgs.ruff}/bin/ruff" "server"]; + cmd = [(getExe pkgs.ruff) "server"]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/rumdl.nix b/modules/plugins/lsp/presets/rumdl.nix index a581eba90..f6c2f3126 100644 --- a/modules/plugins/lsp/presets/rumdl.nix +++ b/modules/plugins/lsp/presets/rumdl.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.rumdl; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.rumdl = { enable = true; - cmd = ["${pkgs.rumdl}/bin/rumdl" "server"]; + cmd = [(getExe pkgs.rumdl) "server"]; root_markers = [".git" ".rumdl.toml" "rumdl.toml" ".config/rumdl.toml" "pyproject.toml"]; }; }; diff --git a/modules/plugins/lsp/presets/solargraph.nix b/modules/plugins/lsp/presets/solargraph.nix index 8a59bb9fb..c0f4ba240 100644 --- a/modules/plugins/lsp/presets/solargraph.nix +++ b/modules/plugins/lsp/presets/solargraph.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.solargraph; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.solargraph = { enable = true; - cmd = ["${pkgs.rubyPackages.solargraph}/bin/solargraph" "stdio"]; + cmd = [(getExe pkgs.rubyPackages.solargraph) "stdio"]; root_markers = [".git"]; settings = { solargraph = { diff --git a/modules/plugins/lsp/presets/some-sass-language-server.nix b/modules/plugins/lsp/presets/some-sass-language-server.nix index be9014cca..c74ca07cd 100644 --- a/modules/plugins/lsp/presets/some-sass-language-server.nix +++ b/modules/plugins/lsp/presets/some-sass-language-server.nix @@ -7,6 +7,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.some-sass-language-server; in { @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.some-sass-language-server = { enable = true; - cmd = ["${inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.some-sass-language-server}/bin/some-sass-language-server" "--stdio"]; + cmd = [(getExe inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.some-sass-language-server) "--stdio"]; root_markers = [".git" "package.json"]; # settings = { diff --git a/modules/plugins/lsp/presets/sqls.nix b/modules/plugins/lsp/presets/sqls.nix index 0aea37bd6..3c7b9ddf5 100644 --- a/modules/plugins/lsp/presets/sqls.nix +++ b/modules/plugins/lsp/presets/sqls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.sqls; @@ -22,7 +23,7 @@ in { startPlugins = ["sqls-nvim"]; lsp.servers.sqls = { enable = true; - cmd = ["${pkgs.sqls}/bin/sqls"]; + cmd = [(getExe pkgs.sqls)]; root_markers = ["config.yml"]; on_attach = mkLuaInline '' function(client, bufnr) diff --git a/modules/plugins/lsp/presets/stimulus-language-server.nix b/modules/plugins/lsp/presets/stimulus-language-server.nix index ce28d44a7..675fd406e 100644 --- a/modules/plugins/lsp/presets/stimulus-language-server.nix +++ b/modules/plugins/lsp/presets/stimulus-language-server.nix @@ -7,6 +7,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.stimulus-language-server; in { @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.stimulus-language-server = { enable = true; - cmd = ["${inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.stimulus-language-server}/bin/stimulus-language-server" "--stdio"]; + cmd = [(getExe inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.stimulus-language-server) "--stdio"]; root_markers = [".git"]; workspace_required = true; }; diff --git a/modules/plugins/lsp/presets/superhtml.nix b/modules/plugins/lsp/presets/superhtml.nix index e68d57ea4..b16023005 100644 --- a/modules/plugins/lsp/presets/superhtml.nix +++ b/modules/plugins/lsp/presets/superhtml.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.superhtml; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.superhtml = { enable = true; - cmd = ["${pkgs.superhtml}/bin/superhtml" "lsp"]; + cmd = [(getExe pkgs.superhtml) "lsp"]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/svelte-language-server.nix b/modules/plugins/lsp/presets/svelte-language-server.nix index eb71dee5c..d9ca4d3b5 100644 --- a/modules/plugins/lsp/presets/svelte-language-server.nix +++ b/modules/plugins/lsp/presets/svelte-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.svelte-language-server; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.svelte-language-server = { enable = true; - cmd = ["${pkgs.svelte-language-server}/bin/svelteserver" "--stdio"]; + cmd = [(getExe pkgs.svelte-language-server) "--stdio"]; root_dir = mkLuaInline '' function(bufnr, on_dir) local root_files = { 'package.json', '.git' } diff --git a/modules/plugins/lsp/presets/tailwindcss-language-server.nix b/modules/plugins/lsp/presets/tailwindcss-language-server.nix index fd148e506..9d5cdac6b 100644 --- a/modules/plugins/lsp/presets/tailwindcss-language-server.nix +++ b/modules/plugins/lsp/presets/tailwindcss-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.lua) toLuaObject; @@ -78,7 +79,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.tailwindcss-language-server = { enable = true; - cmd = ["${pkgs.tailwindcss-language-server}/bin/tailwindcss-language-server" "--stdio"]; + cmd = [(getExe pkgs.tailwindcss-language-server) "--stdio"]; root_markers = [".git"]; inherit filetypes; settings = { diff --git a/modules/plugins/lsp/presets/taplo.nix b/modules/plugins/lsp/presets/taplo.nix index 8dd3b79cf..cb01101de 100644 --- a/modules/plugins/lsp/presets/taplo.nix +++ b/modules/plugins/lsp/presets/taplo.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.taplo; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.taplo = { enable = true; - cmd = ["${pkgs.taplo}/bin/taplo" "lsp" "stdio"]; + cmd = [(getExe pkgs.taplo) "lsp" "stdio"]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/terraform-ls.nix b/modules/plugins/lsp/presets/terraform-ls.nix index 9c9747841..656fcf1dc 100644 --- a/modules/plugins/lsp/presets/terraform-ls.nix +++ b/modules/plugins/lsp/presets/terraform-ls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.terraform-ls; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.terraform-ls = { enable = true; - cmd = ["${pkgs.terraform-ls}/bin/terraform-ls" "serve"]; + cmd = [(getExe pkgs.terraform-ls) "serve"]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/texlab.nix b/modules/plugins/lsp/presets/texlab.nix index c4a14f740..00c97bb45 100644 --- a/modules/plugins/lsp/presets/texlab.nix +++ b/modules/plugins/lsp/presets/texlab.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.texlab; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.texlab = { enable = true; - cmd = ["${pkgs.texlab}/bin/texlab" "run"]; + cmd = [(getExe pkgs.texlab) "run"]; root_markers = [".git" ".latexmkrc" "latexmkrc" ".texlabroot" "texlabroot" ".texstudio" "Tectonic.toml"]; }; }; diff --git a/modules/plugins/lsp/presets/tinymist.nix b/modules/plugins/lsp/presets/tinymist.nix index a878e5026..831aefc7c 100644 --- a/modules/plugins/lsp/presets/tinymist.nix +++ b/modules/plugins/lsp/presets/tinymist.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.tinymist; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.tinymist = { enable = true; - cmd = ["${pkgs.tinymist}/bin/tinymist"]; + cmd = [(getExe pkgs.tinymist)]; root_markers = [".git"]; on_attach = mkLuaInline '' function(client, bufnr) diff --git a/modules/plugins/lsp/presets/tofu-ls.nix b/modules/plugins/lsp/presets/tofu-ls.nix index 6bb7b839c..a74670aca 100644 --- a/modules/plugins/lsp/presets/tofu-ls.nix +++ b/modules/plugins/lsp/presets/tofu-ls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.tofu-ls; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.tofu-ls = { enable = true; - cmd = ["${pkgs.tofu-ls}/bin/tofu-ls" "serve"]; + cmd = [(getExe pkgs.tofu-ls) "serve"]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/tombi.nix b/modules/plugins/lsp/presets/tombi.nix index d07344695..ff360c6d3 100644 --- a/modules/plugins/lsp/presets/tombi.nix +++ b/modules/plugins/lsp/presets/tombi.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.tombi; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.tombi = { enable = true; - cmd = ["${pkgs.tombi}/bin/tombi" "lsp"]; + cmd = [(getExe pkgs.tombi) "lsp"]; root_markers = [".git" "tombi.toml"]; }; }; diff --git a/modules/plugins/lsp/presets/ts-query-ls.nix b/modules/plugins/lsp/presets/ts-query-ls.nix index 5b1ae4cbc..a48a0921d 100644 --- a/modules/plugins/lsp/presets/ts-query-ls.nix +++ b/modules/plugins/lsp/presets/ts-query-ls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.ts-query-ls; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.ts-query-ls = { enable = true; - cmd = ["${pkgs.ts_query_ls}/bin/ts_query_ls"]; + cmd = [(getExe pkgs.ts_query_ls)]; }; }; } diff --git a/modules/plugins/lsp/presets/twig-language-server.nix b/modules/plugins/lsp/presets/twig-language-server.nix index 75fa19f5e..f51623660 100644 --- a/modules/plugins/lsp/presets/twig-language-server.nix +++ b/modules/plugins/lsp/presets/twig-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.twig-language-server; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.twig-language-server = { enable = true; - cmd = ["${pkgs.twig-language-server}/bin/twig-language-server" "--stdio"]; + cmd = [(getExe pkgs.twig-language-server) "--stdio"]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/ty.nix b/modules/plugins/lsp/presets/ty.nix index 3daab11fd..63132134f 100644 --- a/modules/plugins/lsp/presets/ty.nix +++ b/modules/plugins/lsp/presets/ty.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.ty; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.ty = { enable = true; - cmd = ["${pkgs.ty}/bin/ty" "server"]; + cmd = [(getExe pkgs.ty) "server"]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/typescript-go.nix b/modules/plugins/lsp/presets/typescript-go.nix index fbab151f7..197f51f82 100644 --- a/modules/plugins/lsp/presets/typescript-go.nix +++ b/modules/plugins/lsp/presets/typescript-go.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe'; cfg = config.vim.lsp.presets.typescript-go; in { @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.typescript-go = { enable = true; - cmd = ["${pkgs.typescript-go}/bin/tsgo" "--lsp" "--stdio"]; + cmd = [(getExe' pkgs.typescript-go "tsgo") "--lsp" "--stdio"]; root_markers = [".git" "tsconfig.json" "package.json"]; }; }; diff --git a/modules/plugins/lsp/presets/typescript-language-server.nix b/modules/plugins/lsp/presets/typescript-language-server.nix index 3bd24ae91..7ed508425 100644 --- a/modules/plugins/lsp/presets/typescript-language-server.nix +++ b/modules/plugins/lsp/presets/typescript-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.typescript-language-server; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.typescript-language-server = { enable = true; - cmd = ["${pkgs.typescript-language-server}/bin/typescript-language-server" "--stdio"]; + cmd = [(getExe pkgs.typescript-language-server) "--stdio"]; root_markers = [".git" "tsconfig.json" "package.json"]; init_options = {hostInfo = "neovim";}; handlers = { diff --git a/modules/plugins/lsp/presets/vala-language-server.nix b/modules/plugins/lsp/presets/vala-language-server.nix index de646cc15..93d16c061 100644 --- a/modules/plugins/lsp/presets/vala-language-server.nix +++ b/modules/plugins/lsp/presets/vala-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.vala-language-server; in { @@ -23,13 +24,13 @@ in { # because it is an optional dependency to support formatting # cmd = [ - "${pkgs.symlinkJoin { + (getExe (pkgs.symlinkJoin { name = "vala-language-server-wrapper"; paths = [pkgs.vala-language-server]; meta.mainProgram = "vala-language-server"; buildInputs = [pkgs.makeBinaryWrapper]; postBuild = "wrapProgram $out/bin/vala-language-server --prefix PATH : ${pkgs.uncrustify}/bin"; - }}/bin/vala-language-server" + })) ]; root_markers = [".git"]; }; diff --git a/modules/plugins/lsp/presets/vhdl-ls.nix b/modules/plugins/lsp/presets/vhdl-ls.nix index fe84f3158..02851b638 100644 --- a/modules/plugins/lsp/presets/vhdl-ls.nix +++ b/modules/plugins/lsp/presets/vhdl-ls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.vhdl-ls; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.vhdl-ls = { enable = true; - cmd = ["${pkgs.vhdl-ls}/bin/vhdl_ls"]; + cmd = [(getExe pkgs.vhdl-ls)]; root_markers = [".git" "vhdl_ls.toml"]; }; }; diff --git a/modules/plugins/lsp/presets/vscode-css-language-server.nix b/modules/plugins/lsp/presets/vscode-css-language-server.nix index f1c3de2de..d761742f6 100644 --- a/modules/plugins/lsp/presets/vscode-css-language-server.nix +++ b/modules/plugins/lsp/presets/vscode-css-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe'; cfg = config.vim.lsp.presets.vscode-css-language-server; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.vscode-css-language-server = { enable = true; - cmd = ["${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server" "--stdio"]; + cmd = [(getExe' pkgs.vscode-langservers-extracted "vscode-css-language-server") "--stdio"]; root_markers = [".git" "package.json"]; init_options = {provideFormatter = true;}; settings = { diff --git a/modules/plugins/lsp/presets/vscode-json-language-server.nix b/modules/plugins/lsp/presets/vscode-json-language-server.nix index 0f9306df6..d959ec61d 100644 --- a/modules/plugins/lsp/presets/vscode-json-language-server.nix +++ b/modules/plugins/lsp/presets/vscode-json-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe'; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.vscode-json-language-server; @@ -20,7 +21,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.vscode-json-language-server = { enable = true; - cmd = ["${pkgs.vscode-langservers-extracted}/bin/vscode-json-language-server" "--stdio"]; + cmd = [(getExe' pkgs.vscode-langservers-extracted "vscode-json-language-server") "--stdio"]; root_markers = [".git"]; init_options = {provideFormatter = true;}; get_language_id = mkLuaInline '' diff --git a/modules/plugins/lsp/presets/vtsls.nix b/modules/plugins/lsp/presets/vtsls.nix index 758c81f04..30bcb4732 100644 --- a/modules/plugins/lsp/presets/vtsls.nix +++ b/modules/plugins/lsp/presets/vtsls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.vtsls; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.vtsls = { enable = true; - cmd = ["${pkgs.vtsls}/bin/vtsls" "--stdio"]; + cmd = [(getExe pkgs.vtsls) "--stdio"]; root_markers = [".git" "tsconfig.json" "package.json"]; settings = { vtsls = { diff --git a/modules/plugins/lsp/presets/vue-language-server.nix b/modules/plugins/lsp/presets/vue-language-server.nix index de2c8acfe..6175d0118 100644 --- a/modules/plugins/lsp/presets/vue-language-server.nix +++ b/modules/plugins/lsp/presets/vue-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; inherit (lib.generators) mkLuaInline; cfg = config.vim.lsp.presets.vue-language-server; @@ -27,7 +28,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.vue-language-server = { enable = true; - cmd = ["${pkgs.vue-language-server}/bin/vue-language-server" "--stdio"]; + cmd = [(getExe pkgs.vue-language-server) "--stdio"]; root_markers = [".git" "tsconfig.json" "package.json"]; on_init = mkLuaInline diff --git a/modules/plugins/lsp/presets/wgsl-analyzer.nix b/modules/plugins/lsp/presets/wgsl-analyzer.nix index 308198f29..8fc80bed6 100644 --- a/modules/plugins/lsp/presets/wgsl-analyzer.nix +++ b/modules/plugins/lsp/presets/wgsl-analyzer.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.wgsl-analyzer; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.wgsl-analyzer = { enable = true; - cmd = ["${pkgs.wgsl-analyzer}/bin/wgsl-analyzer"]; + cmd = [(getExe pkgs.wgsl-analyzer)]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/lsp/presets/yaml-language-server.nix b/modules/plugins/lsp/presets/yaml-language-server.nix index 7ead03b07..ab070e063 100644 --- a/modules/plugins/lsp/presets/yaml-language-server.nix +++ b/modules/plugins/lsp/presets/yaml-language-server.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.yaml-language-server; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.yaml-language-server = { enable = true; - cmd = ["${pkgs.yaml-language-server}/bin/yaml-language-server" "--stdio"]; + cmd = [(getExe pkgs.yaml-language-server) "--stdio"]; root_markers = [".git"]; settings = { # https://github.com/redhat-developer/vscode-redhat-telemetry#how-to-disable-telemetry-reporting diff --git a/modules/plugins/lsp/presets/zls.nix b/modules/plugins/lsp/presets/zls.nix index a8c402d9b..f46412e22 100644 --- a/modules/plugins/lsp/presets/zls.nix +++ b/modules/plugins/lsp/presets/zls.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.zls; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.zls = { enable = true; - cmd = ["${pkgs.zls}/bin/zls"]; + cmd = [(getExe pkgs.zls)]; root_markers = [".git" "zls.json"]; workspace_required = false; }; diff --git a/modules/plugins/lsp/presets/zuban.nix b/modules/plugins/lsp/presets/zuban.nix index 69aa3d1d9..043482466 100644 --- a/modules/plugins/lsp/presets/zuban.nix +++ b/modules/plugins/lsp/presets/zuban.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.types) mkLspPresetEnableOption; + inherit (lib.meta) getExe; cfg = config.vim.lsp.presets.zuban; in { @@ -19,7 +20,7 @@ in { config = mkIf cfg.enable { vim.lsp.servers.zuban = { enable = true; - cmd = ["${pkgs.zuban}/bin/zuban" "server"]; + cmd = [(getExe pkgs.zuban) "server"]; root_markers = [".git"]; }; }; diff --git a/modules/plugins/notes/todo-comments/todo-comments.nix b/modules/plugins/notes/todo-comments/todo-comments.nix index 76f92b1be..0552a1166 100644 --- a/modules/plugins/notes/todo-comments/todo-comments.nix +++ b/modules/plugins/notes/todo-comments/todo-comments.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkRenamedOptionModule; inherit (lib.options) mkOption mkEnableOption; + inherit (lib.meta) getExe; inherit (lib.types) str listOf; inherit (lib.nvim.types) mkPluginSetupOption; inherit (config.vim.lib) mkMappingOption; @@ -41,7 +42,7 @@ in { command = mkOption { type = str; - default = "${pkgs.ripgrep}/bin/rg"; + default = getExe pkgs.ripgrep; description = "search command"; }; diff --git a/modules/plugins/treesitter/treesitter.nix b/modules/plugins/treesitter/treesitter.nix index 60fa295e4..db6d0770e 100644 --- a/modules/plugins/treesitter/treesitter.nix +++ b/modules/plugins/treesitter/treesitter.nix @@ -145,16 +145,14 @@ in { filetypes = ["nix"]; loadtype = "extends"; query = '' - ((apply_expression + (apply_expression function: (variable_expression name: (identifier) @_func (#eq? @_func "mkLuaInline")) - argument: (indented_string_expression (string_fragment) @injection.content) - (#set! injection.language "lua") - (#set! injection.combined))) + (#set! injection.combined)) ''; } ]; diff --git a/modules/plugins/utility/preview/glow/glow.nix b/modules/plugins/utility/preview/glow/glow.nix index e67bf5130..2589dc4ec 100644 --- a/modules/plugins/utility/preview/glow/glow.nix +++ b/modules/plugins/utility/preview/glow/glow.nix @@ -6,6 +6,7 @@ }: let inherit (lib.modules) mkRenamedOptionModule; inherit (lib.options) mkEnableOption mkOption; + inherit (lib.meta) getExe; inherit (lib.types) str; inherit (lib.nvim.types) mkPluginSetupOption; inherit (config.vim.lib) mkMappingOption; @@ -21,7 +22,7 @@ in { setupOpts = mkPluginSetupOption "glow.nvim" { glow_path = mkOption { type = str; - default = "${pkgs.glow}/bin/glow"; + default = getExe pkgs.glow; example = "glow"; description = "Path to the glow binary."; }; diff --git a/modules/plugins/utility/telescope/telescope.nix b/modules/plugins/utility/telescope/telescope.nix index 960d1ee5f..20ac7153f 100644 --- a/modules/plugins/utility/telescope/telescope.nix +++ b/modules/plugins/utility/telescope/telescope.nix @@ -5,6 +5,7 @@ ... }: let inherit (lib.options) mkOption mkEnableOption literalExpression; + inherit (lib.meta) getExe getExe'; inherit (lib.types) int str listOf float bool either enum submodule attrsOf anything package; inherit (lib.nvim.types) mkPluginSetupOption luaInline; inherit (config.vim.lib) mkMappingOption; @@ -14,14 +15,14 @@ pickers.find_files.find_command = mkOption { description = "cmd to use for finding files"; type = either (listOf str) luaInline; - default = ["${pkgs.fd}/bin/fd" "--type=file"]; + default = [(getExe pkgs.fd) "--type=file"]; }; defaults = { vimgrep_arguments = mkOption { type = listOf str; default = [ - "${pkgs.ripgrep}/bin/rg" + (getExe pkgs.ripgrep) "--color=never" "--no-heading" "--with-filename" @@ -40,7 +41,7 @@ pickers.find_command = mkOption { type = either (listOf str) luaInline; - default = ["${pkgs.fd}/bin/fd"]; + default = [(getExe pkgs.fd)]; description = '' Command to use for finding files. If using an executable from {env}`PATH` then you must make sure that the package is available in {option}`vim.extraPackages`.