From 6e8b6bf6356a19f04b2d9fff73549f9d49e951be Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 16:31:52 +0100 Subject: [PATCH 01/33] nvim-lint: add lint after save autocmd --- .../plugins/diagnostics/nvim-lint/config.nix | 36 ++++++++++++++----- .../diagnostics/nvim-lint/nvim-lint.nix | 2 ++ 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/modules/plugins/diagnostics/nvim-lint/config.nix b/modules/plugins/diagnostics/nvim-lint/config.nix index 085140dc..5ecd8d70 100644 --- a/modules/plugins/diagnostics/nvim-lint/config.nix +++ b/modules/plugins/diagnostics/nvim-lint/config.nix @@ -3,18 +3,36 @@ lib, ... }: let - inherit (lib.modules) mkIf; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.generators) mkLuaInline; inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.lua) toLuaObject; cfg = config.vim.diagnostics.nvim-lint; in { - config = mkIf cfg.enable { - vim = { - startPlugins = ["nvim-lint"]; - pluginRC.nvim-lint = entryAnywhere '' - require("lint").linters_by_ft = ${toLuaObject cfg.linters_by_ft} - ''; - }; - }; + config = mkMerge [ + (mkIf cfg.enable { + vim = { + startPlugins = ["nvim-lint"]; + pluginRC.nvim-lint = entryAnywhere '' + require("lint").linters_by_ft = ${toLuaObject cfg.linters_by_ft} + ''; + }; + }) + (mkIf cfg.lint_after_save { + vim = { + augroups = [{name = "nvf_nvim_lint";}]; + autocmds = [ + { + event = ["BufWritePost"]; + callback = mkLuaInline '' + function() + require("lint").try_lint() + end + ''; + } + ]; + }; + }) + ]; } diff --git a/modules/plugins/diagnostics/nvim-lint/nvim-lint.nix b/modules/plugins/diagnostics/nvim-lint/nvim-lint.nix index b08d82be..fc19d987 100644 --- a/modules/plugins/diagnostics/nvim-lint/nvim-lint.nix +++ b/modules/plugins/diagnostics/nvim-lint/nvim-lint.nix @@ -21,5 +21,7 @@ in { accept. ''; }; + + lint_after_save = mkEnableOption "autocmd to lint after each save" // {default = true;}; }; } From 7e1ffe40f519f31e8b22a4900c3b11d980d231ef Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 16:32:44 +0100 Subject: [PATCH 02/33] nvim-lint: add linters option --- .../plugins/diagnostics/nvim-lint/config.nix | 12 +++ .../diagnostics/nvim-lint/nvim-lint.nix | 96 ++++++++++++++++++- 2 files changed, 107 insertions(+), 1 deletion(-) diff --git a/modules/plugins/diagnostics/nvim-lint/config.nix b/modules/plugins/diagnostics/nvim-lint/config.nix index 5ecd8d70..cf9c45e2 100644 --- a/modules/plugins/diagnostics/nvim-lint/config.nix +++ b/modules/plugins/diagnostics/nvim-lint/config.nix @@ -16,6 +16,18 @@ in { startPlugins = ["nvim-lint"]; pluginRC.nvim-lint = entryAnywhere '' require("lint").linters_by_ft = ${toLuaObject cfg.linters_by_ft} + + local linters = require("lint").linters + local nvf_linters = ${toLuaObject cfg.linters} + for linter, config in pairs(nvf_linters) do + if linters[linter] == nil then + linters[linter] = config + else + for key, val in pairs(config) do + linters[linter][key] = val + end + end + end ''; }; }) diff --git a/modules/plugins/diagnostics/nvim-lint/nvim-lint.nix b/modules/plugins/diagnostics/nvim-lint/nvim-lint.nix index fc19d987..20f14f0b 100644 --- a/modules/plugins/diagnostics/nvim-lint/nvim-lint.nix +++ b/modules/plugins/diagnostics/nvim-lint/nvim-lint.nix @@ -1,6 +1,76 @@ {lib, ...}: let inherit (lib.options) mkOption mkEnableOption; - inherit (lib.types) attrsOf listOf str; + inherit (lib.types) nullOr attrsOf listOf str either submodule bool enum; + inherit (lib.nvim.types) luaInline; + + linterType = submodule { + options = { + name = mkOption { + type = nullOr str; + default = null; + description = "Name of the linter"; + }; + + cmd = mkOption { + type = nullOr str; + default = null; + description = "Command of the linter"; + }; + + args = mkOption { + type = nullOr (listOf (either str luaInline)); + default = null; + description = "Arguments to pass"; + }; + + stdin = mkOption { + type = nullOr bool; + default = null; + description = "Send content via stdin."; + }; + + append_fname = mkOption { + type = nullOr bool; + default = null; + description = '' + Automatically add the current file name to the commands arguments. Only + has an effect if stdin is false + ''; + }; + + stream = mkOption { + type = nullOr (enum ["stdout" "stderr" "both"]); + default = null; + description = "Result stream"; + }; + + ignore_exitcode = mkOption { + type = nullOr bool; + default = null; + description = '' + Declares if exit code != 1 should be ignored or result in a warning. + ''; + }; + + env = mkOption { + type = nullOr (attrsOf str); + default = null; + description = "Environment variables to use"; + }; + + cwd = mkOption { + type = nullOr str; + default = null; + description = "Working directory of the linter"; + }; + + parser = mkOption { + type = nullOr luaInline; + default = null; + description = "Parser function"; + }; + }; + }; in { options.vim.diagnostics.nvim-lint = { enable = mkEnableOption "asynchronous linter plugin for Neovim [nvim-lint]"; @@ -22,6 +92,30 @@ in { ''; }; + linters = mkOption { + type = attrsOf linterType; + default = {}; + example = '' + { + phpcs = { + args = ["-q" "--report-json" "-"]; + + # this will replace the builtin's env table if it exists + env = { + ENV_VAR = "something"; + }; + }; + } + ''; + + description = '' + Linter configurations. Builtin linters will be updated and not + replaced, but note that this is not a deep extend operation, i.e. if + you define an `env` option, it will replace the entire `env` table + provided by the builtin (if it exists). + ''; + }; + lint_after_save = mkEnableOption "autocmd to lint after each save" // {default = true;}; }; } From 2bc0492af3735fafebcb72a737f14fcc7e5dac20 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 16:32:58 +0100 Subject: [PATCH 03/33] nix: migrate to conform/nvim-lint --- modules/plugins/languages/nix.nix | 41 ++++++++++++------------------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix index 54c11af2..ad16a34e 100644 --- a/modules/plugins/languages/nix.nix +++ b/modules/plugins/languages/nix.nix @@ -6,6 +6,7 @@ }: let inherit (builtins) attrNames; inherit (lib) concatStringsSep; + inherit (lib.meta) getExe; inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; inherit (lib.lists) isList; @@ -13,7 +14,6 @@ inherit (lib.types) anything attrsOf enum either listOf nullOr package str; inherit (lib.nvim.types) mkGrammarOption diagnostics; inherit (lib.nvim.lua) expToLua toLuaObject; - inherit (lib.nvim.languages) diagnosticsToLua; cfg = config.vim.languages.nix; @@ -100,26 +100,10 @@ formats = { alejandra = { package = pkgs.alejandra; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.alejandra.with({ - command = "${cfg.format.package}/bin/alejandra" - }) - ) - ''; }; nixfmt = { package = pkgs.nixfmt-rfc-style; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.nixfmt.with({ - command = "${cfg.format.package}/bin/nixfmt" - }) - ) - ''; }; }; @@ -237,17 +221,24 @@ in { vim.lsp.lspconfig.sources.nix-lsp = servers.${cfg.lsp.server}.lspConfig; }) - (mkIf (cfg.format.enable && !servers.${cfg.lsp.server}.internalFormatter) { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.nix-format = formats.${cfg.format.type}.nullConfig; + (mkIf (cfg.format.enable && (!cfg.lsp.enable || !servers.${cfg.lsp.server}.internalFormatter)) { + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.nix = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = { + command = getExe cfg.format.package; + }; + }; }) (mkIf cfg.extraDiagnostics.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources = diagnosticsToLua { - lang = "nix"; - config = cfg.extraDiagnostics.types; - inherit diagnosticsProviders; + vim.diagnostics.nvim-lint = { + enable = true; + linters_by_ft.nix = cfg.extraDiagnostics.types; + linters = mkMerge (map (name: { + ${name}.cmd = getExe diagnosticsProviders.${name}.package; + }) + cfg.extraDiagnostics.types); }; }) ]); From a0c94b31d61420f30bc395b8b051e67b7df05897 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 18:12:24 +0100 Subject: [PATCH 04/33] language/astro: migrate to conform/nvim-lint --- modules/plugins/languages/astro.nix | 80 ++++++++++++++--------------- 1 file changed, 38 insertions(+), 42 deletions(-) diff --git a/modules/plugins/languages/astro.nix b/modules/plugins/languages/astro.nix index d5672af0..e1a56172 100644 --- a/modules/plugins/languages/astro.nix +++ b/modules/plugins/languages/astro.nix @@ -10,8 +10,8 @@ inherit (lib.lists) isList; inherit (lib.meta) getExe; inherit (lib.types) enum either listOf package str; + inherit (lib.generators) mkLuaInline; inherit (lib.nvim.lua) expToLua; - inherit (lib.nvim.languages) diagnosticsToLua; inherit (lib.nvim.types) mkGrammarOption diagnostics; cfg = config.vim.languages.astro; @@ -39,26 +39,10 @@ formats = { prettier = { package = pkgs.nodePackages.prettier; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.prettier.with({ - command = "${cfg.format.package}/bin/prettier", - }) - ) - ''; }; biome = { package = pkgs.biome; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.biome.with({ - command = "${cfg.format.package}/bin/biome", - }) - ) - ''; }; }; @@ -67,24 +51,23 @@ diagnosticsProviders = { eslint_d = { package = pkgs.eslint_d; - nullConfig = pkg: '' - table.insert( - ls_sources, - null_ls.builtins.diagnostics.eslint_d.with({ - command = "${getExe pkg}", - condition = function(utils) - return utils.root_has_file({ - "eslint.config.js", - "eslint.config.mjs", - ".eslintrc", - ".eslintrc.json", - ".eslintrc.js", - ".eslintrc.yml", - }) - end, - }) - ) - ''; + config = { + # HACK: change if nvim-lint gets a dynamic enable thing + parser = mkLuaInline '' + function(output, bufnr, cwd) + local markers = { "eslint.config.js", "eslint.config.mjs", + ".eslintrc", ".eslintrc.json", ".eslintrc.js", ".eslintrc.yml", } + for _, filename in ipairs(markers) do + local path = vim.fs.join(cwd, filename) + if vim.loop.fs_stat(path) then + return require("lint.linters.eslint_d").parser(output, bufnr, cwd) + end + end + + return {} + end + ''; + }; }; }; in { @@ -153,16 +136,29 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.astro-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.astro = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = { + command = getExe cfg.format.package; + }; + }; }) (mkIf cfg.extraDiagnostics.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources = diagnosticsToLua { - lang = "astro"; - config = cfg.extraDiagnostics.types; - inherit diagnosticsProviders; + vim.diagnostics.nvim-lint = { + enable = true; + linters_by_ft.astro = cfg.extraDiagnostics.types; + linters = mkMerge (map ( + name: { + ${name} = + diagnosticsProviders.${name}.config + // { + cmd = getExe diagnosticsProviders.${name}.package; + }; + } + ) + cfg.extraDiagnostics.types); }; }) ]); From e996999c0b9fd5308a4a8682e955d61973f7ea45 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 19:28:00 +0100 Subject: [PATCH 05/33] language/bash: migrate to conform/nvim-lint --- modules/plugins/languages/bash.nix | 40 +++++++++++------------------- 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/modules/plugins/languages/bash.nix b/modules/plugins/languages/bash.nix index c0066b3c..bfe01032 100644 --- a/modules/plugins/languages/bash.nix +++ b/modules/plugins/languages/bash.nix @@ -6,10 +6,10 @@ }: let inherit (builtins) attrNames; inherit (lib.options) mkOption mkEnableOption literalExpression; + inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.lists) isList; inherit (lib.types) enum either package listOf str bool; - inherit (lib.nvim.languages) diagnosticsToLua; inherit (lib.nvim.types) diagnostics mkGrammarOption; inherit (lib.nvim.lua) expToLua; @@ -37,14 +37,6 @@ formats = { shfmt = { package = pkgs.shfmt; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.shfmt.with({ - command = "${pkgs.shfmt}/bin/shfmt", - }) - ) - ''; }; }; @@ -52,15 +44,6 @@ diagnosticsProviders = { shellcheck = { package = pkgs.shellcheck; - nullConfig = pkg: '' - table.insert( - ls_sources, - null_ls.builtins.diagnostics.shellcheck.with({ - command = "${pkg}/bin/shellcheck", - diagnostics_format = "#{m} [#{c}]" - }) - ) - ''; }; }; in { @@ -130,16 +113,23 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.bash-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.sh = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = { + command = getExe cfg.format.package; + }; + }; }) (mkIf cfg.extraDiagnostics.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources = diagnosticsToLua { - lang = "bash"; - config = cfg.extraDiagnostics.types; - inherit diagnosticsProviders; + vim.diagnostics.nvim-lint = { + enable = true; + linters_by_ft.sh = cfg.extraDiagnostics.types; + linters = mkMerge (map (name: { + ${name}.cmd = getExe diagnosticsProviders.${name}.package; + }) + cfg.extraDiagnostics.types); }; }) ]); From 459e97dab7dc3c5194c68d5dc73ea81bf798d98d Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 19:52:28 +0100 Subject: [PATCH 06/33] language/css: migrate to conform/nvim-lint --- modules/plugins/languages/css.nix | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/modules/plugins/languages/css.nix b/modules/plugins/languages/css.nix index 8330a41a..d103f241 100644 --- a/modules/plugins/languages/css.nix +++ b/modules/plugins/languages/css.nix @@ -6,6 +6,7 @@ }: let inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; + inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.lists) isList; inherit (lib.types) enum either listOf package str; @@ -42,14 +43,6 @@ formats = { prettier = { package = pkgs.nodePackages.prettier; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.prettier.with({ - command = "${cfg.format.package}/bin/prettier", - }) - ) - ''; }; prettierd = { @@ -132,8 +125,13 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.css-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.css = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = { + command = getExe cfg.format.package; + }; + }; }) ]); } From 07384c3887f6aadb0c1ec56b57faa2cc08d7c783 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 19:57:01 +0100 Subject: [PATCH 07/33] language/elixir: migrate to conform/nvim-lint --- modules/plugins/languages/elixir.nix | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/modules/plugins/languages/elixir.nix b/modules/plugins/languages/elixir.nix index f8f338b1..7b3a0256 100644 --- a/modules/plugins/languages/elixir.nix +++ b/modules/plugins/languages/elixir.nix @@ -38,14 +38,9 @@ formats = { mix = { package = pkgs.elixir; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.mix.with({ - command = "${cfg.format.package}/bin/mix", - }) - ) - ''; + config = { + command = "${cfg.format.package}/bin/mix"; + }; }; }; in { @@ -107,8 +102,12 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.elixir-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.elixir = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = + formats.${cfg.format.type}.config; + }; }) (mkIf cfg.elixir-tools.enable { From 6225dff47a9b1778bb8517f7856defb1220f87e7 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 20:05:22 +0100 Subject: [PATCH 08/33] language/fsharp: migrate to conform/nvim-lint --- modules/plugins/languages/fsharp.nix | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/modules/plugins/languages/fsharp.nix b/modules/plugins/languages/fsharp.nix index 86c08d39..966b0349 100644 --- a/modules/plugins/languages/fsharp.nix +++ b/modules/plugins/languages/fsharp.nix @@ -7,6 +7,7 @@ inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; inherit (lib.types) either listOf package str enum; + inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.lists) isList; inherit (lib.nvim.types) mkGrammarOption; @@ -35,14 +36,6 @@ formats = { fantomas = { package = pkgs.fantomas; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.fantomas.with({ - command = "${cfg.format.package}/bin/fantomas", - }) - ) - ''; }; }; @@ -102,8 +95,13 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.fsharp-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.fsharp = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = { + command = getExe cfg.format.package; + }; + }; }) ]); } From 856b064a19f8bbac70b45cba8f91ee2be1043a65 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 20:07:51 +0100 Subject: [PATCH 09/33] language/go: migrate to conform/nvim-lint --- modules/plugins/languages/go.nix | 34 ++++++++------------------------ 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/modules/plugins/languages/go.nix b/modules/plugins/languages/go.nix index 3ac9ae77..9f8bca3c 100644 --- a/modules/plugins/languages/go.nix +++ b/modules/plugins/languages/go.nix @@ -38,36 +38,15 @@ formats = { gofmt = { package = pkgs.go; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.gofmt.with({ - command = "${cfg.format.package}/bin/gofmt", - }) - ) - ''; + config.command = "${cfg.format.package}/bin/gofmt"; }; gofumpt = { package = pkgs.gofumpt; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.gofumpt.with({ - command = "${cfg.format.package}/bin/gofumpt", - }) - ) - ''; + config.command = getExe cfg.format.package; }; golines = { package = pkgs.golines; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.golines.with({ - command = "${cfg.format.package}/bin/golines", - }) - ) - ''; + config.command = "${cfg.format.package}/bin/golines"; }; }; @@ -153,8 +132,11 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.go-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.go = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = formats.${cfg.format.type}.config; + }; }) (mkIf cfg.dap.enable { From b24999300baf3b22a8037a4bb24c0272b9046a96 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 20:10:30 +0100 Subject: [PATCH 10/33] language/hcl: migrate to conform/nvim-lint --- modules/plugins/languages/hcl.nix | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/modules/plugins/languages/hcl.nix b/modules/plugins/languages/hcl.nix index e340e74d..3a3db782 100644 --- a/modules/plugins/languages/hcl.nix +++ b/modules/plugins/languages/hcl.nix @@ -6,6 +6,7 @@ }: let inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; + inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.types) package bool enum; inherit (lib.nvim.types) mkGrammarOption; @@ -30,14 +31,6 @@ formats = { hclfmt = { package = pkgs.hclfmt; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.hclfmt.with({ - command = "${lib.getExe cfg.format.package}", - }) - ) - ''; }; }; in { @@ -110,8 +103,13 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.hcl-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.hcl = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = { + command = getExe cfg.format.package; + }; + }; }) ]); } From 543deb5c2a04699e446e6109e3d023d84b3c10e6 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 20:12:58 +0100 Subject: [PATCH 11/33] language/kotlin: migrate to conform/nvim-lint --- modules/plugins/languages/kotlin.nix | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/modules/plugins/languages/kotlin.nix b/modules/plugins/languages/kotlin.nix index 03433215..2ddc63e9 100644 --- a/modules/plugins/languages/kotlin.nix +++ b/modules/plugins/languages/kotlin.nix @@ -7,7 +7,6 @@ inherit (lib.options) mkEnableOption mkOption literalExpression; inherit (lib.modules) mkIf mkMerge; inherit (lib.meta) getExe; - inherit (lib.nvim.languages) diagnosticsToLua; inherit (lib.types) either package listOf str; inherit (lib.nvim.types) mkGrammarOption diagnostics; inherit (lib.lists) isList; @@ -19,14 +18,6 @@ diagnosticsProviders = { ktlint = { package = pkgs.ktlint; - nullConfig = pkg: '' - table.insert( - ls_sources, - null_ls.builtins.diagnostics.ktlint.with({ - command = "${getExe pkg}", - }) - ) - ''; }; }; in { @@ -76,11 +67,13 @@ in { }) (mkIf cfg.extraDiagnostics.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources = diagnosticsToLua { - lang = "kotlin"; - config = cfg.extraDiagnostics.types; - inherit diagnosticsProviders; + vim.diagnostics.nvim-lint = { + enable = true; + linters_by_ft.kotlin = cfg.extraDiagnostics.types; + linters = mkMerge (map (name: { + ${name}.cmd = getExe diagnosticsProviders.${name}.package; + }) + cfg.extraDiagnostics.types); }; }) From ab5dbb263e03cd9004ed9a5c543687229470d76f Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 20:13:07 +0100 Subject: [PATCH 12/33] language/markdown: migrate to conform/nvim-lint --- modules/plugins/languages/markdown.nix | 42 ++++++++++++-------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index ac098a1c..6767a9cf 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -5,9 +5,10 @@ ... }: let inherit (builtins) attrNames; + inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.options) mkEnableOption mkOption; - inherit (lib.lists) isList concatLists; + inherit (lib.lists) isList; inherit (lib.types) bool enum either package listOf str; inherit (lib.nvim.lua) expToLua toLuaObject; inherit (lib.nvim.types) mkGrammarOption mkPluginSetupOption; @@ -32,31 +33,17 @@ }; }; - defaultFormat = "denofmt"; + defaultFormat = "deno_fmt"; formats = { + # for backwards compatibility denofmt = { package = pkgs.deno; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.deno_fmt.with({ - filetypes = ${expToLua (concatLists [cfg.format.extraFiletypes ["markdown"]])}, - command = "${cfg.format.package}/bin/deno", - }) - ) - ''; + }; + deno_fmt = { + package = pkgs.deno; }; prettierd = { package = pkgs.prettierd; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.prettierd.with({ - filetypes = ${expToLua (concatLists [cfg.format.extraFiletypes ["markdown"]])}, - command = "${cfg.format.package}/bin/prettierd", - }) - ) - ''; }; }; in { @@ -96,7 +83,7 @@ in { type = mkOption { type = enum (attrNames formats); default = defaultFormat; - description = "Markdown formatter to use"; + description = "Markdown formatter to use. `denofmt` is deprecated and currently aliased to deno_fmt."; }; package = mkOption { @@ -148,8 +135,17 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.markdown-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.markdown = [cfg.format.type]; + setupOpts.formatters.${ + if cfg.format.type == "denofmt" + then "deno_fmt" + else cfg.format.type + } = { + command = getExe cfg.format.package; + }; + }; }) # Extensions From e0bcd93bea016dd8caf20495783cd1b3220bf08b Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 20:14:05 +0100 Subject: [PATCH 13/33] language/nim: migrate to conform/nvim-lint --- modules/plugins/languages/nim.nix | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/modules/plugins/languages/nim.nix b/modules/plugins/languages/nim.nix index f218038e..69288223 100644 --- a/modules/plugins/languages/nim.nix +++ b/modules/plugins/languages/nim.nix @@ -6,6 +6,7 @@ }: let inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; + inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.lists) isList; inherit (lib.types) enum either listOf package str; @@ -38,14 +39,9 @@ formats = { nimpretty = { package = pkgs.nim; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.nimpretty.with({ - command = "${pkgs.nim}/bin/nimpretty", - }) - ) - ''; + config = { + command = "${cfg.format.package}/bin/nimpretty"; + }; }; }; in { @@ -110,8 +106,11 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.nim-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.nim = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = formats.${cfg.format.type}.config; + }; }) ]); } From 09e5a13c6159c32d7ff1adfb39b2075b04dfa9a1 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Thu, 27 Mar 2025 20:16:32 +0100 Subject: [PATCH 14/33] language/ocaml: migrate to conform/nvim-lint --- modules/plugins/languages/ocaml.nix | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/modules/plugins/languages/ocaml.nix b/modules/plugins/languages/ocaml.nix index ddfa85e4..568b846e 100644 --- a/modules/plugins/languages/ocaml.nix +++ b/modules/plugins/languages/ocaml.nix @@ -37,14 +37,6 @@ formats = { ocamlformat = { package = pkgs.ocamlPackages.ocamlformat; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.ocamlformat.with({ - command = "${cfg.format.package}/bin/ocamlformat", - }) - ) - ''; }; }; in { @@ -97,9 +89,13 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.ocamlformat = formats.${cfg.format.type}.nullConfig; - vim.extraPackages = [formats.${cfg.format.type}.package]; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.ocaml = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = { + command = getExe cfg.format.package; + }; + }; }) ]); } From a5deffb8900756d32ca668682fadcb6b0c00949e Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Fri, 28 Mar 2025 10:11:33 +0100 Subject: [PATCH 15/33] language/python: migrate to conform/nvim-lint --- modules/plugins/languages/python.nix | 51 +++++++++------------------- 1 file changed, 16 insertions(+), 35 deletions(-) diff --git a/modules/plugins/languages/python.nix b/modules/plugins/languages/python.nix index 0a3c6c8a..ccb15f7c 100644 --- a/modules/plugins/languages/python.nix +++ b/modules/plugins/languages/python.nix @@ -66,26 +66,10 @@ formats = { black = { package = pkgs.black; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.black.with({ - command = "${cfg.format.package}/bin/black", - }) - ) - ''; }; isort = { package = pkgs.isort; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.isort.with({ - command = "${cfg.format.package}/bin/isort", - }) - ) - ''; }; black-and-isort = { @@ -96,15 +80,6 @@ black --quiet - "$@" | isort --profile black - ''; }; - - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.black.with({ - command = "${cfg.format.package}/bin/black", - }) - ) - ''; }; ruff = { @@ -115,14 +90,6 @@ ruff format - ''; }; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.ruff.with({ - command = "${cfg.format.package}/bin/ruff", - }) - ) - ''; }; }; @@ -272,8 +239,22 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.python-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + # HACK: I'm planning to remove these soon so I just took the easiest way out + setupOpts.formatters_by_ft.python = + if cfg.format.type == "black-and-isort" + then ["black"] + else [cfg.format.type]; + setupOpts.formatters = + if (cfg.format.type == "black-and-isort") + then { + black.command = "${cfg.format.package}/bin/black"; + } + else { + ${cfg.format.type}.command = getExe cfg.format.package; + }; + }; }) (mkIf cfg.dap.enable { From 7cf9e5c0a6b5411dc1059d0cb7006eb9ea59899a Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Fri, 28 Mar 2025 11:09:20 +0100 Subject: [PATCH 16/33] language/r: migrate to conform/nvim-lint --- modules/plugins/languages/r.nix | 40 ++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/modules/plugins/languages/r.nix b/modules/plugins/languages/r.nix index 8a685a01..fcadcc37 100644 --- a/modules/plugins/languages/r.nix +++ b/modules/plugins/languages/r.nix @@ -24,28 +24,29 @@ package = pkgs.rWrapper.override { packages = [pkgs.rPackages.styler]; }; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.styler.with({ - command = "${cfg.format.package}/bin/R", - }) - ) - ''; + config = { + command = "${cfg.format.package}/bin/R"; + }; }; format_r = { package = pkgs.rWrapper.override { packages = [pkgs.rPackages.formatR]; }; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.format_r.with({ - command = "${cfg.format.package}/bin/R", - }) - ) - ''; + config = { + command = "${cfg.format.package}/bin/R"; + stdin = true; + args = [ + "--slave" + "--no-restore" + "--no-save" + "-s" + "-e" + ''formatR::tidy_source(source="stdin")'' + ]; + # TODO: range_args seem to be possible + # https://github.com/nvimtools/none-ls.nvim/blob/main/lua/null-ls/builtins/formatting/format_r.lua + }; }; }; @@ -118,8 +119,11 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.r-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.r = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = formats.${cfg.format.type}.config; + }; }) (mkIf cfg.lsp.enable { From 2c153f57e68ec418cba227ba15473ae11e78c18e Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Fri, 28 Mar 2025 11:34:14 +0100 Subject: [PATCH 17/33] language/ruby: migrate to conform/nvim-lint --- modules/plugins/languages/ruby.nix | 50 ++++++++++-------------------- 1 file changed, 17 insertions(+), 33 deletions(-) diff --git a/modules/plugins/languages/ruby.nix b/modules/plugins/languages/ruby.nix index 33f11d5d..2f42aa4f 100644 --- a/modules/plugins/languages/ruby.nix +++ b/modules/plugins/languages/ruby.nix @@ -6,10 +6,10 @@ }: let inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; + inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.nvim.types) mkGrammarOption diagnostics; inherit (lib.types) either listOf package str enum; - inherit (lib.nvim.languages) diagnosticsToLua; cfg = config.vim.languages.ruby; @@ -35,24 +35,8 @@ defaultFormat = "rubocop"; formats = { rubocop = { + # TODO: is this right? package = pkgs.rubyPackages.rubocop; - nullConfig = '' - local conditional = function(fn) - local utils = require("null-ls.utils").make_conditional_utils() - return fn(utils) - end - - table.insert( - ls_sources, - null_ls.builtins.formatting.rubocop.with({ - command="${pkgs.bundler}/bin/bundle", - args = vim.list_extend( - {"exec", "rubocop", "-a" }, - null_ls.builtins.formatting.rubocop._opts.args - ), - }) - ) - ''; }; }; @@ -60,14 +44,7 @@ diagnosticsProviders = { rubocop = { package = pkgs.rubyPackages.rubocop; - nullConfig = pkg: '' - table.insert( - ls_sources, - null_ls.builtins.diagnostics.rubocop.with({ - command = "${lib.getExe pkg}", - }) - ) - ''; + config.command = getExe cfg.format.package; }; }; in { @@ -136,16 +113,23 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.ruby-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.ruby = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = { + command = getExe cfg.format.package; + }; + }; }) (mkIf cfg.extraDiagnostics.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources = diagnosticsToLua { - lang = "ruby"; - config = cfg.extraDiagnostics.types; - inherit diagnosticsProviders; + vim.diagnostics.nvim-lint = { + enable = true; + linters_by_ft.ruby = cfg.extraDiagnostics.types; + linters = mkMerge (map (name: { + ${name}.cmd = getExe diagnosticsProviders.${name}.package; + }) + cfg.extraDiagnostics.types); }; }) ]); From 24a3989ddc07fe531efd9fa015257077c6f2a98b Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Fri, 28 Mar 2025 11:36:53 +0100 Subject: [PATCH 18/33] language/rust: migrate to conform/nvim-lint --- modules/plugins/languages/rust.nix | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/modules/plugins/languages/rust.nix b/modules/plugins/languages/rust.nix index aea10687..2181623a 100644 --- a/modules/plugins/languages/rust.nix +++ b/modules/plugins/languages/rust.nix @@ -5,6 +5,7 @@ ... }: let inherit (builtins) attrNames; + inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.options) mkOption mkEnableOption; inherit (lib.strings) optionalString; @@ -21,14 +22,6 @@ formats = { rustfmt = { package = pkgs.rustfmt; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.rustfmt.with({ - command = "${cfg.format.package}/bin/rustfmt", - }) - ) - ''; }; }; in { @@ -128,8 +121,13 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.rust-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.rust = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = { + command = getExe cfg.format.package; + }; + }; }) (mkIf (cfg.lsp.enable || cfg.dap.enable) { From 0db226be846592a187a4b2893ee403a53a7cdee7 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Fri, 28 Mar 2025 12:00:36 +0100 Subject: [PATCH 19/33] language/sql: migrate to conform/nvim-lint --- modules/plugins/languages/sql.nix | 46 ++++++++++++++----------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/modules/plugins/languages/sql.nix b/modules/plugins/languages/sql.nix index ed08ee72..277dbeef 100644 --- a/modules/plugins/languages/sql.nix +++ b/modules/plugins/languages/sql.nix @@ -6,11 +6,11 @@ }: let inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; + inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.lists) isList; inherit (lib.types) enum either listOf package str; inherit (lib.nvim.lua) expToLua; - inherit (lib.nvim.languages) diagnosticsToLua; inherit (lib.nvim.types) diagnostics; cfg = config.vim.languages.sql; @@ -41,15 +41,10 @@ formats = { sqlfluff = { package = sqlfluffDefault; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.sqlfluff.with({ - command = "${cfg.format.package}/bin/sqlfluff", - extra_args = {"--dialect", "${cfg.dialect}"} - }) - ) - ''; + config = { + command = getExe cfg.format.package; + append_args = ["--dialect=${cfg.dialect}"]; + }; }; }; @@ -57,15 +52,10 @@ diagnosticsProviders = { sqlfluff = { package = sqlfluffDefault; - nullConfig = pkg: '' - table.insert( - ls_sources, - null_ls.builtins.diagnostics.sqlfluff.with({ - command = "${pkg}/bin/sqlfluff", - extra_args = {"--dialect", "${cfg.dialect}"} - }) - ) - ''; + config = { + cmd = getExe sqlfluffDefault; + args = ["lint" "--format=json" "--dialect=${cfg.dialect}"]; + }; }; }; in { @@ -150,16 +140,20 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources."sql-format" = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.sql = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = formats.${cfg.format.type}.config; + }; }) (mkIf cfg.extraDiagnostics.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources = diagnosticsToLua { - lang = "sql"; - config = cfg.extraDiagnostics.types; - inherit diagnosticsProviders; + vim.diagnostics.nvim-lint = { + enable = true; + linters_by_ft.sql = cfg.extraDiagnostics.types; + linters = + mkMerge (map (name: {${name} = diagnosticsProviders.${name}.config;}) + cfg.extraDiagnostics.types); }; }) ]); From bc76ced636feadbb195ff1dceb809e4e6fbddd9c Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Fri, 28 Mar 2025 12:05:17 +0100 Subject: [PATCH 20/33] language/svelte: migrate to conform/nvim-lint --- modules/plugins/languages/svelte.nix | 80 +++++++++++++--------------- 1 file changed, 36 insertions(+), 44 deletions(-) diff --git a/modules/plugins/languages/svelte.nix b/modules/plugins/languages/svelte.nix index 4d96c20a..67f11bc2 100644 --- a/modules/plugins/languages/svelte.nix +++ b/modules/plugins/languages/svelte.nix @@ -9,9 +9,9 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.lists) isList; inherit (lib.meta) getExe; + inherit (lib.generators) mkLuaInline; inherit (lib.types) enum either listOf package str; inherit (lib.nvim.lua) expToLua; - inherit (lib.nvim.languages) diagnosticsToLua; inherit (lib.nvim.types) mkGrammarOption diagnostics; cfg = config.vim.languages.svelte; @@ -39,52 +39,38 @@ formats = { prettier = { package = pkgs.nodePackages.prettier; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.prettier.with({ - command = "${cfg.format.package}/bin/prettier", - }) - ) - ''; }; biome = { package = pkgs.biome; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.biome.with({ - command = "${cfg.format.package}/bin/biome", - }) - ) - ''; }; }; # TODO: specify packages defaultDiagnosticsProvider = ["eslint_d"]; diagnosticsProviders = { - eslint_d = { - package = pkgs.eslint_d; - nullConfig = pkg: '' - table.insert( - ls_sources, - null_ls.builtins.diagnostics.eslint_d.with({ - command = "${getExe pkg}", - condition = function(utils) - return utils.root_has_file({ - "eslint.config.js", - "eslint.config.mjs", - ".eslintrc", - ".eslintrc.json", - ".eslintrc.js", - ".eslintrc.yml", - }) - end, - }) - ) - ''; + eslint_d = let + pkg = pkgs.eslint_d; + in { + package = pkg; + config = { + cmd = getExe pkg; + # HACK: change if nvim-lint gets a dynamic enable thing + parser = mkLuaInline '' + function(output, bufnr, cwd) + local markers = { "eslint.config.js", "eslint.config.mjs", + ".eslintrc", ".eslintrc.json", ".eslintrc.js", ".eslintrc.yml", } + for _, filename in ipairs(markers) do + local path = vim.fs.join(cwd, filename) + if vim.loop.fs_stat(path) then + return require("lint.linters.eslint_d").parser(output, bufnr, cwd) + end + end + + return {} + end + ''; + }; }; }; in { @@ -153,16 +139,22 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.svelte-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.svelte = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = { + command = getExe cfg.format.package; + }; + }; }) (mkIf cfg.extraDiagnostics.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources = diagnosticsToLua { - lang = "svelte"; - config = cfg.extraDiagnostics.types; - inherit diagnosticsProviders; + vim.diagnostics.nvim-lint = { + enable = true; + linters_by_ft.svelte = cfg.extraDiagnostics.types; + linters = + mkMerge (map (name: {${name} = diagnosticsProviders.${name}.config;}) + cfg.extraDiagnostics.types); }; }) ]); From 6f5738da0c59db306cfc1c19571105be055699d7 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Fri, 28 Mar 2025 12:12:22 +0100 Subject: [PATCH 21/33] language/ts: migrate to conform/nvim-lint --- modules/plugins/languages/ts.nix | 87 +++++++++++++------------------- 1 file changed, 36 insertions(+), 51 deletions(-) diff --git a/modules/plugins/languages/ts.nix b/modules/plugins/languages/ts.nix index 790c235a..8589d7ec 100644 --- a/modules/plugins/languages/ts.nix +++ b/modules/plugins/languages/ts.nix @@ -9,10 +9,10 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.lists) isList; inherit (lib.meta) getExe; + inherit (lib.generators) mkLuaInline; inherit (lib.types) enum either listOf package str bool; inherit (lib.nvim.lua) expToLua toLuaObject; inherit (lib.nvim.types) mkGrammarOption diagnostics mkPluginSetupOption; - inherit (lib.nvim.languages) diagnosticsToLua; inherit (lib.nvim.dag) entryAnywhere; cfg = config.vim.languages.ts; @@ -77,39 +77,14 @@ formats = { prettier = { package = pkgs.nodePackages.prettier; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.prettier.with({ - command = "${cfg.format.package}/bin/prettier", - filetypes = { "typescript", "javascript" }, - }) - ) - ''; }; prettierd = { package = pkgs.prettierd; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.prettier.with({ - command = "${cfg.format.package}/bin/prettierd", - }) - ) - ''; }; biome = { package = pkgs.biome; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.biome.with({ - command = "${cfg.format.package}/bin/biome", - }) - ) - ''; }; }; @@ -118,24 +93,26 @@ diagnosticsProviders = { eslint_d = { package = pkgs.eslint_d; - nullConfig = pkg: '' - table.insert( - ls_sources, - null_ls.builtins.diagnostics.eslint_d.with({ - command = "${getExe pkg}", - condition = function(utils) - return utils.root_has_file({ - "eslint.config.js", - "eslint.config.mjs", - ".eslintrc", - ".eslintrc.json", - ".eslintrc.js", - ".eslintrc.yml", - }) - end, - }) - ) - ''; + config = let + pkg = pkgs.eslint_d; + in { + cmd = getExe pkg; + # HACK: change if nvim-lint gets a dynamic enable thing + parser = mkLuaInline '' + function(output, bufnr, cwd) + local markers = { "eslint.config.js", "eslint.config.mjs", + ".eslintrc", ".eslintrc.json", ".eslintrc.js", ".eslintrc.yml", } + for _, filename in ipairs(markers) do + local path = vim.fs.join(cwd, filename) + if vim.loop.fs_stat(path) then + return require("lint.linters.eslint_d").parser(output, bufnr, cwd) + end + end + + return {} + end + ''; + }; }; }; in { @@ -225,16 +202,24 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.ts-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.typescript = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = { + command = getExe cfg.format.package; + }; + }; }) (mkIf cfg.extraDiagnostics.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources = diagnosticsToLua { - lang = "ts"; - config = cfg.extraDiagnostics.types; - inherit diagnosticsProviders; + vim.diagnostics.nvim-lint = { + enable = true; + linters_by_ft.typescript = cfg.extraDiagnostics.types; + + linters = mkMerge (map (name: { + ${name}.cmd = getExe diagnosticsProviders.${name}.package; + }) + cfg.extraDiagnostics.types); }; }) From d45763f7e26259b801b8adff4ba75ffd3fbfabe2 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Fri, 28 Mar 2025 12:16:07 +0100 Subject: [PATCH 22/33] language/typst: migrate to conform/nvim-lint --- modules/plugins/languages/typst.nix | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/modules/plugins/languages/typst.nix b/modules/plugins/languages/typst.nix index 24097e2c..8c65ae2c 100644 --- a/modules/plugins/languages/typst.nix +++ b/modules/plugins/languages/typst.nix @@ -9,7 +9,6 @@ inherit (lib.lists) isList; inherit (lib.types) nullOr enum either attrsOf listOf package str; inherit (lib.attrsets) attrNames; - inherit (lib.generators) mkLuaInline; inherit (lib.meta) getExe; inherit (lib.nvim.lua) expToLua toLuaObject; inherit (lib.nvim.types) mkGrammarOption mkPluginSetupOption; @@ -61,26 +60,10 @@ formats = { typstfmt = { package = pkgs.typstfmt; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.typstfmt.with({ - command = "${cfg.format.package}/bin/typstfmt", - }) - ) - ''; }; # https://github.com/Enter-tainer/typstyle typstyle = { package = pkgs.typstyle; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.typstfmt.with({ - command = "${cfg.format.package}/bin/typstyle", - }) - ) - ''; }; }; in { @@ -176,8 +159,13 @@ in { }) (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.typst-format = formats.${cfg.format.type}.nullConfig; + vim.formatter.conform-nvim = { + enable = true; + setupOpts.formatters_by_ft.typst = [cfg.format.type]; + setupOpts.formatters.${cfg.format.type} = { + command = getExe cfg.format.package; + }; + }; }) (mkIf cfg.lsp.enable { From e353ae9f71facdcb591c187c5a1bca8d2a33f928 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Sat, 29 Mar 2025 14:59:48 +0100 Subject: [PATCH 23/33] docs: update release notes --- docs/release-notes/rl-0.8.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 7f6c6ffe..d4dcdf60 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -88,8 +88,11 @@ [blink.cmp]: https://github.com/saghen/blink.cmp +- Add [aerial.nvim]. +- Add [nvim-ufo]. - Add [blink.cmp] support. - Add `LazyFile` user event. +- Migrate language modules from none-ls to conform/nvim-lint [diniamo](https://github.com/diniamo): @@ -98,14 +101,6 @@ - Disable the built-in format-on-save feature of zls. Use `vim.lsp.formatOnSave` instead. -[horriblename](https://github.com/horriblename): - -[aerial.nvim]: (https://github.com/stevearc/aerial.nvim) -[nvim-ufo]: (https://github.com/kevinhwang91/nvim-ufo) - -- Add [aerial.nvim]. -- Add [nvim-ufo]. - [LilleAila](https://github.com/LilleAila): - Remove `vim.notes.obsidian.setupOpts.dir`, which was set by default. Fixes From 91a167f334266b8c8a669f3acf38b9e695ef4504 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Sat, 29 Mar 2025 15:58:15 +0100 Subject: [PATCH 24/33] chore: update none-ls --- npins/sources.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/npins/sources.json b/npins/sources.json index d1c9fb7d..99220bf8 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -1551,9 +1551,9 @@ }, "branch": "main", "submodules": false, - "revision": "bb680d752cec37949faca7a1f509e2fe67ab418a", - "url": "https://github.com/nvimtools/none-ls.nvim/archive/bb680d752cec37949faca7a1f509e2fe67ab418a.tar.gz", - "hash": "11zgc86cjkv1vi183mplx3bsqa2x7ardk7ybyrp702xx5hmd882l" + "revision": "a117163db44c256d53c3be8717f3e1a2a28e6299", + "url": "https://github.com/nvimtools/none-ls.nvim/archive/a117163db44c256d53c3be8717f3e1a2a28e6299.tar.gz", + "hash": "1qxi1wq3snhns49sl6rli5hsgjn7zzc43brnwv0b6mfzl55ydzr8" }, "nord": { "type": "Git", From 18d745c08fcc376ecf5c7f80be589b8fb4608c68 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 29 Mar 2025 19:02:40 +0300 Subject: [PATCH 25/33] docs: mention none-ls update in changelog --- docs/release-notes/rl-0.8.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index d4dcdf60..fe3e3166 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -14,6 +14,11 @@ the new API they provide. Please manually set your keybinds according to [Lspsaga documentation] following the new API. +- none-ls has been updated to the latest version. If you have been using raw Lua + configuration to _manually_ configure it, some of the formats may become + unavailable as they have been refactored out of the main none-ls repository + upstream. + [NotAShelf](https://github.com/notashelf): [typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim From c7df81c3b8689c00fb7dff2c3ace9c99b86cc4c8 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 29 Mar 2025 19:03:08 +0300 Subject: [PATCH 26/33] pins: bump all plugins --- npins/sources.json | 416 ++++++++++++++++++++++----------------------- 1 file changed, 208 insertions(+), 208 deletions(-) diff --git a/npins/sources.json b/npins/sources.json index 99220bf8..f9091f20 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -9,9 +9,9 @@ }, "branch": "master", "submodules": false, - "revision": "2204cf08791449a6a2fd2ef187a29112eeefd989", - "url": "https://github.com/stevearc/aerial.nvim/archive/2204cf08791449a6a2fd2ef187a29112eeefd989.tar.gz", - "hash": "1482md9kzyrr7mjkca3nnyqgy64q8clhi6xbvgql8qjw7ifz51mx" + "revision": "9ebc13583cff447f5493a63e99dfca526b3c3088", + "url": "https://github.com/stevearc/aerial.nvim/archive/9ebc13583cff447f5493a63e99dfca526b3c3088.tar.gz", + "hash": "17mjs95jnnvsg1ihwbsa3z6hr88rvfh36pv1x4cad7hsaal3dcrg" }, "alpha-nvim": { "type": "Git", @@ -50,10 +50,10 @@ "version_upper_bound": null, "release_prefix": null, "submodules": false, - "version": "v0.14.1", - "revision": "7a91dc584f41f5aa2373a917faf8100b2e54d6c9", - "url": "https://api.github.com/repos/saghen/blink.cmp/tarball/v0.14.1", - "hash": "0zm6s3v9liimx28vs1g5yi7bcfrl691q81bvzmdpavcwrzcdb0c8" + "version": "v1.0.0", + "revision": "47be01b7424d386fc3294de7838fb9134f74b228", + "url": "https://api.github.com/repos/saghen/blink.cmp/tarball/v1.0.0", + "hash": "04mjgyfcin134g9w3ag3gy6vppmh8cqq0g9whyq407fx6rjmgvfi" }, "blink-cmp-spell": { "type": "Git", @@ -77,9 +77,9 @@ }, "branch": "main", "submodules": false, - "revision": "4104671562c663d059d91a99da3780bead5bc467", - "url": "https://github.com/saghen/blink.compat/archive/4104671562c663d059d91a99da3780bead5bc467.tar.gz", - "hash": "0bsf8kg5s3m1xk9d4n0yl0h5xyk484hip3z8va547f6ibim9ccv4" + "revision": "2ed6d9a28b07fa6f3bface818470605f8896408c", + "url": "https://github.com/saghen/blink.compat/archive/2ed6d9a28b07fa6f3bface818470605f8896408c.tar.gz", + "hash": "009475xy41l4dpayswhx65q6a7djzw7rz2ycbrbpyg041y0qynqs" }, "blink-emoji-nvim": { "type": "Git", @@ -103,9 +103,9 @@ }, "branch": "main", "submodules": false, - "revision": "91aee73557237b0cc1313e4ed2b32f10de6cc65e", - "url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/91aee73557237b0cc1313e4ed2b32f10de6cc65e.tar.gz", - "hash": "1jg4559946rzsvvny1r7jki1gmr70yjxr8qlnsjkjyxj8h0pjjwl" + "revision": "d4af981745ea67b2c29bcd25f9843dbeedc580ed", + "url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/d4af981745ea67b2c29bcd25f9843dbeedc580ed.tar.gz", + "hash": "1xjhpp9118bgpp2x3pxv0llngkm69fzxhdqp92civ19s5pxb5h5y" }, "bufdelete-nvim": { "type": "Git", @@ -272,9 +272,9 @@ }, "branch": "main", "submodules": false, - "revision": "4f56b047f03bf5edc0d71bf0ca694243a49b912f", - "url": "https://github.com/olimorris/codecompanion.nvim/archive/4f56b047f03bf5edc0d71bf0ca694243a49b912f.tar.gz", - "hash": "1mrb8qxd6mz5dlly9bh30pcd599gfy173f6pd4p8lszs3xhp598k" + "revision": "51fe5a782dbbd5cad8189420cb8d38fd7c245684", + "url": "https://github.com/olimorris/codecompanion.nvim/archive/51fe5a782dbbd5cad8189420cb8d38fd7c245684.tar.gz", + "hash": "09vjvbf5rxmj2fax0ddcinbvx6mhjdy58fw9d1nf8ll7x8dj5j2s" }, "codewindow-nvim": { "type": "Git", @@ -311,9 +311,9 @@ }, "branch": "master", "submodules": false, - "revision": "db8a4a9edb217067b1d7a2e0362c74bfe9cc944d", - "url": "https://github.com/stevearc/conform.nvim/archive/db8a4a9edb217067b1d7a2e0362c74bfe9cc944d.tar.gz", - "hash": "13vpizk8ani64d3a9yrm0g3bz8m6m6cxnpzr2xgslbhxnkmbxq7j" + "revision": "f9ef25a7ef00267b7d13bfc00b0dea22d78702d5", + "url": "https://github.com/stevearc/conform.nvim/archive/f9ef25a7ef00267b7d13bfc00b0dea22d78702d5.tar.gz", + "hash": "1942dsg83skxnm3jrqyxx9mvzgiq1v68i9z43hpar4bmqvggviif" }, "copilot-cmp": { "type": "Git", @@ -337,9 +337,9 @@ }, "branch": "master", "submodules": false, - "revision": "30321e33b03cb924fdcd6a806a0dc6fa0b0eafb9", - "url": "https://github.com/zbirenbaum/copilot.lua/archive/30321e33b03cb924fdcd6a806a0dc6fa0b0eafb9.tar.gz", - "hash": "0jlwd5x0pdfxa1hg41dfvz9zji0frvlfg86vzak0d3xmn4hr8zgb" + "revision": "6c65c53a849c8ac4278ad07a4bac150f449da3c4", + "url": "https://github.com/zbirenbaum/copilot.lua/archive/6c65c53a849c8ac4278ad07a4bac150f449da3c4.tar.gz", + "hash": "0psmi1pknc8cpckj9iqk4yx79xjkvmrjlwcnl0x1a5lbahdzifhv" }, "crates-nvim": { "type": "Git", @@ -350,9 +350,9 @@ }, "branch": "main", "submodules": false, - "revision": "403a0abef0e2aec12749a534dc468d6fd50c6741", - "url": "https://github.com/Saecki/crates.nvim/archive/403a0abef0e2aec12749a534dc468d6fd50c6741.tar.gz", - "hash": "19ix86nbww5vljinfwfpjkz806j7dzw4pgjyjya201jb0n22lrc6" + "revision": "fd2bbca7aa588f24ffc3517831934b4c4a9588e9", + "url": "https://github.com/Saecki/crates.nvim/archive/fd2bbca7aa588f24ffc3517831934b4c4a9588e9.tar.gz", + "hash": "1l2z447svf1ldpnsb9sn5b4q1a22g3wx126yw9hj7rcqrv50xw6i" }, "csharpls-extended-lsp-nvim": { "type": "Git", @@ -363,9 +363,9 @@ }, "branch": "master", "submodules": false, - "revision": "991d2c43afd7c7be77edd27a2ae686f9779382da", - "url": "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/archive/991d2c43afd7c7be77edd27a2ae686f9779382da.tar.gz", - "hash": "10jj6x78k34yrarp5ydc7n1ylp2xxgxl7jqh1y4d133mgcygabak" + "revision": "8420ee6a9fe0bfc9a37920fd572b0ae5a2348967", + "url": "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/archive/8420ee6a9fe0bfc9a37920fd572b0ae5a2348967.tar.gz", + "hash": "19k5iayhji76q031mzm1vw0n2irh2417mn0gdhf4cmadkrj4ygmg" }, "dashboard-nvim": { "type": "Git", @@ -480,9 +480,9 @@ }, "branch": "main", "submodules": false, - "revision": "70430c32d176f4a15c6e2c80586cd2791e3a664e", - "url": "https://github.com/akinsho/flutter-tools.nvim/archive/70430c32d176f4a15c6e2c80586cd2791e3a664e.tar.gz", - "hash": "01p721ca4as9b9nn4qibb6s775fn66j13zsx2d3flhkssii06v45" + "revision": "2d91a86a43a1ae1303e48aac55542f57b5731990", + "url": "https://github.com/akinsho/flutter-tools.nvim/archive/2d91a86a43a1ae1303e48aac55542f57b5731990.tar.gz", + "hash": "1ijwhwmf6f2rrixdpbr0aigjjy7jwl20bi4v5y7rz8cg0lhsmy5x" }, "friendly-snippets": { "type": "Git", @@ -506,9 +506,9 @@ }, "branch": "main", "submodules": false, - "revision": "03eed634a3b1f4a4dc53f928868566b0b697dabe", - "url": "https://github.com/ibhagwan/fzf-lua/archive/03eed634a3b1f4a4dc53f928868566b0b697dabe.tar.gz", - "hash": "007fz9rwhcfx8l6k6dfnm91dcc4gsazr3vqbv95z5l1h1j184v6c" + "revision": "89ff12300e9a768f4890a8e02bb6a3f5d97f9a65", + "url": "https://github.com/ibhagwan/fzf-lua/archive/89ff12300e9a768f4890a8e02bb6a3f5d97f9a65.tar.gz", + "hash": "13bpzf0nb5sqf80fhly3zpfh94kkbr934qbn588668kjpplp1rqn" }, "gesture-nvim": { "type": "Git", @@ -571,9 +571,9 @@ }, "branch": "main", "submodules": false, - "revision": "238070a686c1da3bccccf1079700eb4b5e19aea4", - "url": "https://github.com/ellisonleao/glow.nvim/archive/238070a686c1da3bccccf1079700eb4b5e19aea4.tar.gz", - "hash": "1j63y3hb03n5m4jig8576sxnb3jixxlr66m9xcs8vgfm5h0mrhqs" + "revision": "5d5954b2f22e109d4a6eba8b2618c5b96e4ee7a2", + "url": "https://github.com/ellisonleao/glow.nvim/archive/5d5954b2f22e109d4a6eba8b2618c5b96e4ee7a2.tar.gz", + "hash": "11rlis4riy1w4clnkiza8x6fs8xjwsrsgfzlz2k8z041ancmrw0a" }, "gruvbox": { "type": "Git", @@ -584,9 +584,9 @@ }, "branch": "main", "submodules": false, - "revision": "15958f5ee43e144856cd2084ce6c571bfdb44504", - "url": "https://github.com/ellisonleao/gruvbox.nvim/archive/15958f5ee43e144856cd2084ce6c571bfdb44504.tar.gz", - "hash": "16nrxcpds3zacqmfw5jsd5d8qqbwllkw9xacjkglcnaynp4qghqq" + "revision": "c6f42890551b4827253387e93b035568826a9cb7", + "url": "https://github.com/ellisonleao/gruvbox.nvim/archive/c6f42890551b4827253387e93b035568826a9cb7.tar.gz", + "hash": "1ac056i9hs5wbb9qzdijmhjcaz4h67v2c8q0361d17gdm8pdrvnj" }, "harpoon": { "type": "Git", @@ -610,9 +610,9 @@ }, "branch": "master", "submodules": false, - "revision": "52608d83b424de44e914711c0f505906816e7427", - "url": "https://github.com/mrcjkb/haskell-tools.nvim/archive/52608d83b424de44e914711c0f505906816e7427.tar.gz", - "hash": "1ngz8zzyni2wh0xhvrcl27am39kqaaabh5y9c4i8ym211ravzhv6" + "revision": "0a1d1119e69cdf9b89e509a8bea025e21d5a41c5", + "url": "https://github.com/mrcjkb/haskell-tools.nvim/archive/0a1d1119e69cdf9b89e509a8bea025e21d5a41c5.tar.gz", + "hash": "1i0m53ri2c5l4yzwjkbwwa73c8k5yh8yz6ddcljz1b9q5vs9dazk" }, "highlight-undo-nvim": { "type": "Git", @@ -678,9 +678,9 @@ }, "branch": "master", "submodules": false, - "revision": "6ffafab2e98b5bda46bf227055aa84b90add8cdc", - "url": "https://github.com/3rd/image.nvim/archive/6ffafab2e98b5bda46bf227055aa84b90add8cdc.tar.gz", - "hash": "105k4ccv18nynm70lphb4ac3ih1ad4hlh2syrhmyi1i1jwdirjgz" + "revision": "2e2d28b7734b5efdfc1219f4da8a46c761587bc2", + "url": "https://github.com/3rd/image.nvim/archive/2e2d28b7734b5efdfc1219f4da8a46c761587bc2.tar.gz", + "hash": "1k2bch2l9bvy4ian6l3jymddcy7p4mvblpmbq0qvn8rzxdi65fy1" }, "indent-blankline-nvim": { "type": "Git", @@ -691,9 +691,9 @@ }, "branch": "master", "submodules": false, - "revision": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78", - "url": "https://github.com/lukas-reineke/indent-blankline.nvim/archive/e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78.tar.gz", - "hash": "1whsjd715rr59warfy7nmw0hzkxfkxgzx9c8r6k2vka4flifirnk" + "revision": "005b56001b2cb30bfa61b7986bc50657816ba4ba", + "url": "https://github.com/lukas-reineke/indent-blankline.nvim/archive/005b56001b2cb30bfa61b7986bc50657816ba4ba.tar.gz", + "hash": "1rmpi866bg7hyw620hbgmmmksxgll9ilbpigd1kk9b0lpvwxbbyj" }, "lazydev-nvim": { "type": "Git", @@ -755,9 +755,9 @@ }, "branch": "master", "submodules": false, - "revision": "8b681c86b0bd7f932cd91987983d91497e43d83f", - "url": "https://github.com/ray-x/lsp_signature.nvim/archive/8b681c86b0bd7f932cd91987983d91497e43d83f.tar.gz", - "hash": "1ap077hgl334klfyi2hv81hf6r9mqpkarrz0b3ky99aavz7bmn2j" + "revision": "b58cca003d1d3311213d6db0352f58d8e57bfff0", + "url": "https://github.com/ray-x/lsp_signature.nvim/archive/b58cca003d1d3311213d6db0352f58d8e57bfff0.tar.gz", + "hash": "1jqpjb7xgdm5ikay8hdjz04bdkirhns6zpa68cblsyslpkvk4hk0" }, "lspkind-nvim": { "type": "Git", @@ -781,9 +781,9 @@ }, "branch": "main", "submodules": false, - "revision": "6063935cf68de9aa6dd79f8e1caf5df0a9385de3", - "url": "https://github.com/nvimdev/lspsaga.nvim/archive/6063935cf68de9aa6dd79f8e1caf5df0a9385de3.tar.gz", - "hash": "1pqasjg2f2yd3ci8hyxfqqs7xnkmwdc411dlm6qg1agiv1h8v205" + "revision": "778d56ff9b387dacd14ae648ed5604394b486f51", + "url": "https://github.com/nvimdev/lspsaga.nvim/archive/778d56ff9b387dacd14ae648ed5604394b486f51.tar.gz", + "hash": "1rm8ww8krxliwli9m2j6j37xgwgjsrgapvgrcdr6nd4mi6hgmczm" }, "lua-utils-nvim": { "type": "Git", @@ -807,9 +807,9 @@ }, "branch": "master", "submodules": false, - "revision": "b8b60c7f1d0d95ad74ee215b2291280b30482476", - "url": "https://github.com/hoob3rt/lualine.nvim/archive/b8b60c7f1d0d95ad74ee215b2291280b30482476.tar.gz", - "hash": "02xyjp446b2nypw3hh4k6b6g9f892kxmmdv23s7dypcws28v50m9" + "revision": "1517caa8fff05e4b4999857319d3b0609a7f57fa", + "url": "https://github.com/hoob3rt/lualine.nvim/archive/1517caa8fff05e4b4999857319d3b0609a7f57fa.tar.gz", + "hash": "0mzclk1rb03ln0my8pqq8p4sn84zkwn0amy2xyb2xds8q9zi21hc" }, "luasnip": { "type": "Git", @@ -833,9 +833,9 @@ }, "branch": "master", "submodules": false, - "revision": "d5856041d60f9500804c872709b8d5f59505d92b", - "url": "https://github.com/nvim-neorocks/lz.n/archive/d5856041d60f9500804c872709b8d5f59505d92b.tar.gz", - "hash": "1dxsy8baq7zdc047ixxxa1qkfw48jgbng4vngwlg6gc2rv16rf36" + "revision": "136e315e0c1e2ac116cc0953dd41adfebfb4a695", + "url": "https://github.com/nvim-neorocks/lz.n/archive/136e315e0c1e2ac116cc0953dd41adfebfb4a695.tar.gz", + "hash": "0fdgr21cj5nis4vicvws635w9c8bcls59yj64d3xwfj7nr40mzws" }, "lzn-auto-require": { "type": "Git", @@ -872,9 +872,9 @@ }, "branch": "main", "submodules": false, - "revision": "6e01c0e5a15554852546fac9853960780ac52ed4", - "url": "https://github.com/echasnovski/mini.ai/archive/6e01c0e5a15554852546fac9853960780ac52ed4.tar.gz", - "hash": "0138rsb0rh4fjiicm3gjah0b5n1c08lil29c5ssqk3xq1bdr69j9" + "revision": "978ffc65c6b513fde9ef075326d34d89197f1ea5", + "url": "https://github.com/echasnovski/mini.ai/archive/978ffc65c6b513fde9ef075326d34d89197f1ea5.tar.gz", + "hash": "1kgar55azqq9g6m9y98kr96cldhzipdfp2cjhszvnzw9ad28p3nb" }, "mini-align": { "type": "Git", @@ -885,9 +885,9 @@ }, "branch": "main", "submodules": false, - "revision": "3bdf6f0b91b31db5300a7b04f53f296a7fb150c1", - "url": "https://github.com/echasnovski/mini.align/archive/3bdf6f0b91b31db5300a7b04f53f296a7fb150c1.tar.gz", - "hash": "1255r5c9q0nnb7vnhs7xk45vqigmbhbim02ciczv8i80amfh9yw3" + "revision": "0ce67804b0343409c93eb14275b98d53a7b209cc", + "url": "https://github.com/echasnovski/mini.align/archive/0ce67804b0343409c93eb14275b98d53a7b209cc.tar.gz", + "hash": "1lq5pzi24ahwfp1jipwl7a1mynnz1ja7c70bs2kilafpa314ymnp" }, "mini-animate": { "type": "Git", @@ -898,9 +898,9 @@ }, "branch": "main", "submodules": false, - "revision": "13e170c13030b043aa8ad4311012ec0eaba0d5c7", - "url": "https://github.com/echasnovski/mini.animate/archive/13e170c13030b043aa8ad4311012ec0eaba0d5c7.tar.gz", - "hash": "153hrx7i0kn65lz4yjgkaxkvj0xvqamm3mi6ciq9b0q3c2ngh7rj" + "revision": "33235a02c7dbaf2a5abdb9c584f9bdb6a6fef247", + "url": "https://github.com/echasnovski/mini.animate/archive/33235a02c7dbaf2a5abdb9c584f9bdb6a6fef247.tar.gz", + "hash": "1v4xlphp9h1vc48dxwf9hmm2mfr1z1s708knsbyx6gkd282zmzkg" }, "mini-base16": { "type": "Git", @@ -911,9 +911,9 @@ }, "branch": "main", "submodules": false, - "revision": "44240f11871c15aba8fc49959ebd27c0b4768a40", - "url": "https://github.com/echasnovski/mini.base16/archive/44240f11871c15aba8fc49959ebd27c0b4768a40.tar.gz", - "hash": "0z4vvsm2hc1cab5qqd28x6jzyzh23cdijrrs1hkkkj0nj3si3zkn" + "revision": "492b34f496fd1a53126feb1e47ebf55ce9d61e25", + "url": "https://github.com/echasnovski/mini.base16/archive/492b34f496fd1a53126feb1e47ebf55ce9d61e25.tar.gz", + "hash": "0srxnxkpi03282zdcbrq13b2m259pchnfvp94awn286zwsc9x23l" }, "mini-basics": { "type": "Git", @@ -924,9 +924,9 @@ }, "branch": "main", "submodules": false, - "revision": "e8fbcf96e4e8262d452ddc851acea6c50449fa79", - "url": "https://github.com/echasnovski/mini.basics/archive/e8fbcf96e4e8262d452ddc851acea6c50449fa79.tar.gz", - "hash": "0v3j61qik4mv2r246b7q7h4ndg68x373dr5jag3a4hwszgpf7jcl" + "revision": "307ba95901099f44cff557da040ee8862093e410", + "url": "https://github.com/echasnovski/mini.basics/archive/307ba95901099f44cff557da040ee8862093e410.tar.gz", + "hash": "130y4b372n3gckg1in5mgdssxg55cswa0dwxrs4icq2nb7rxnbia" }, "mini-bracketed": { "type": "Git", @@ -950,9 +950,9 @@ }, "branch": "main", "submodules": false, - "revision": "bba1d8b413d37081756f59200b8cf756181e5b9a", - "url": "https://github.com/echasnovski/mini.bufremove/archive/bba1d8b413d37081756f59200b8cf756181e5b9a.tar.gz", - "hash": "0lbh2azsa9fmb8qp8gzhv36riiafybmjgg0prppchik8lsbhjzy4" + "revision": "c635c40d06a45450d34695d70c3fb3efe432728f", + "url": "https://github.com/echasnovski/mini.bufremove/archive/c635c40d06a45450d34695d70c3fb3efe432728f.tar.gz", + "hash": "0d5zmn1rldcl37i6v6m2b2ql3nvkdfqjzf3zhdkqfd7pxvvwp12j" }, "mini-clue": { "type": "Git", @@ -963,9 +963,9 @@ }, "branch": "main", "submodules": false, - "revision": "08901d2223797aa25611c33aaf9d8a1049a653bb", - "url": "https://github.com/echasnovski/mini.clue/archive/08901d2223797aa25611c33aaf9d8a1049a653bb.tar.gz", - "hash": "026d647acwxr0wrf43lffmzw4x84jm6v5lipbqqpicqgqs8b4rfv" + "revision": "9bfd8ce71ae31460837fcec82a03946008929777", + "url": "https://github.com/echasnovski/mini.clue/archive/9bfd8ce71ae31460837fcec82a03946008929777.tar.gz", + "hash": "1rx2952li3zby1v24asrp9avy6l9f7f6v954a6xf1rl8ijz2aa5j" }, "mini-colors": { "type": "Git", @@ -976,9 +976,9 @@ }, "branch": "main", "submodules": false, - "revision": "d49e0764821d40adbf3f9e92091dfba0b0590378", - "url": "https://github.com/echasnovski/mini.colors/archive/d49e0764821d40adbf3f9e92091dfba0b0590378.tar.gz", - "hash": "1kn5012q6x1hfpyjqhssydln3v6b25gvvjw1zhw93m8x9km2j524" + "revision": "0b13a3f8c7279d31833203b1c15d456047321f28", + "url": "https://github.com/echasnovski/mini.colors/archive/0b13a3f8c7279d31833203b1c15d456047321f28.tar.gz", + "hash": "00037f03cmx01y6hd7cdk4bibbzfqmygf851alhnvd2fs7flvxcw" }, "mini-comment": { "type": "Git", @@ -1002,9 +1002,9 @@ }, "branch": "main", "submodules": false, - "revision": "8f439dfb5432f9a78fb172ec7e03ee31f18551c4", - "url": "https://github.com/echasnovski/mini.completion/archive/8f439dfb5432f9a78fb172ec7e03ee31f18551c4.tar.gz", - "hash": "0y4zzp4najk2bydwzx72nbn18n32v6ar0dc2qgialszivy0nnhgh" + "revision": "9e6aa17fef2e86d3f33666a7843b942791cc1c1f", + "url": "https://github.com/echasnovski/mini.completion/archive/9e6aa17fef2e86d3f33666a7843b942791cc1c1f.tar.gz", + "hash": "05z0ghbwh7h2ij8k72sidrpypnzkf57kf058kwpc0wd1jm9ymznm" }, "mini-diff": { "type": "Git", @@ -1015,9 +1015,9 @@ }, "branch": "main", "submodules": false, - "revision": "bc3a7be30fd45ed4961ea90de1d9d04637cdeae6", - "url": "https://github.com/echasnovski/mini.diff/archive/bc3a7be30fd45ed4961ea90de1d9d04637cdeae6.tar.gz", - "hash": "0mjl819rd7hbsk3my9ypsl7q7kvxaiyms6a8z63d63nljsbs8ycf" + "revision": "e4a59a8a22d9afeeaac92e3cb3fbd8ff5dc8e310", + "url": "https://github.com/echasnovski/mini.diff/archive/e4a59a8a22d9afeeaac92e3cb3fbd8ff5dc8e310.tar.gz", + "hash": "0z38rpxdgg298a1i5ar49694xfjv26m8572qbhq2s6wkf24p08yk" }, "mini-doc": { "type": "Git", @@ -1028,9 +1028,9 @@ }, "branch": "main", "submodules": false, - "revision": "466c340917b76d16a79fcbb2545c397fc49b110e", - "url": "https://github.com/echasnovski/mini.doc/archive/466c340917b76d16a79fcbb2545c397fc49b110e.tar.gz", - "hash": "16aglk95hw9wbgz4vzpv3bf3hqzqa2qrrzsxqjva2smg9f59c7rl" + "revision": "00d626a03e5642c657c58c99d14cc0ea6ed51abd", + "url": "https://github.com/echasnovski/mini.doc/archive/00d626a03e5642c657c58c99d14cc0ea6ed51abd.tar.gz", + "hash": "0n920j25rnb66hk3klrni9ji673800dbxyb8j30vd4dymq5051ym" }, "mini-extra": { "type": "Git", @@ -1041,9 +1041,9 @@ }, "branch": "main", "submodules": false, - "revision": "7725a82b4d9c0acdc370385b9c04bb0791017230", - "url": "https://github.com/echasnovski/mini.extra/archive/7725a82b4d9c0acdc370385b9c04bb0791017230.tar.gz", - "hash": "0vndliykk98dn9qy8r3ip73y8zflyr40qml7jg522lq5ql546my6" + "revision": "54420de7ee36cf011c6351a1d6290b2555120c7b", + "url": "https://github.com/echasnovski/mini.extra/archive/54420de7ee36cf011c6351a1d6290b2555120c7b.tar.gz", + "hash": "16kyn5jh6pnpiiahf16r2yk3bck9yz8vy5fbvwlfa847rbl39ybd" }, "mini-files": { "type": "Git", @@ -1054,9 +1054,9 @@ }, "branch": "main", "submodules": false, - "revision": "0a396f5ca5516a07959ae2c00667e1a26c20f0ea", - "url": "https://github.com/echasnovski/mini.files/archive/0a396f5ca5516a07959ae2c00667e1a26c20f0ea.tar.gz", - "hash": "1axjd6a6c02jllhi1l8c9xfplipvz4g82hnxjbsgx4kzc9b60zdq" + "revision": "3007632477bb9df28b4e32329c63aea1ab2c2b0a", + "url": "https://github.com/echasnovski/mini.files/archive/3007632477bb9df28b4e32329c63aea1ab2c2b0a.tar.gz", + "hash": "1bb0sv766gjnwnqpn7qhcsm6m6c8zj96ippsh1sjlqd3ma09hzwm" }, "mini-fuzzy": { "type": "Git", @@ -1080,9 +1080,9 @@ }, "branch": "main", "submodules": false, - "revision": "05f9ec07534ce8e2bf797c05c0a8bd826d9d24a2", - "url": "https://github.com/echasnovski/mini-git/archive/05f9ec07534ce8e2bf797c05c0a8bd826d9d24a2.tar.gz", - "hash": "0irvwbxhi9y4wf04khgv1l8z4a2hff3r7f2j3r0p76slqjgd7x19" + "revision": "96034bd94220115e49dbf8c38ef4da5508ba29c2", + "url": "https://github.com/echasnovski/mini-git/archive/96034bd94220115e49dbf8c38ef4da5508ba29c2.tar.gz", + "hash": "0f15bsqrjbifjp0g0fscncyhzsvjd3i4fh0vyagpl08g4as1fqx3" }, "mini-hipatterns": { "type": "Git", @@ -1106,9 +1106,9 @@ }, "branch": "main", "submodules": false, - "revision": "7a88e67dfb953820718106d8fc83d0f97c4d9173", - "url": "https://github.com/echasnovski/mini.hues/archive/7a88e67dfb953820718106d8fc83d0f97c4d9173.tar.gz", - "hash": "1kgjkx9bqycmm077i4jk0fnyl47fkmmd2vv0qf6lqsnnliivqxqw" + "revision": "b65cb42ad651ee3543985e333c504bf820bc5a85", + "url": "https://github.com/echasnovski/mini.hues/archive/b65cb42ad651ee3543985e333c504bf820bc5a85.tar.gz", + "hash": "1yhkvszlw6pp1pxkz0w76fwmmysb2bl2kka0f0ws4jhfcdj6qv1c" }, "mini-icons": { "type": "Git", @@ -1119,9 +1119,9 @@ }, "branch": "main", "submodules": false, - "revision": "ec61af6e606fc89ee3b1d8f2f20166a3ca917a36", - "url": "https://github.com/echasnovski/mini.icons/archive/ec61af6e606fc89ee3b1d8f2f20166a3ca917a36.tar.gz", - "hash": "0y5b4bswykf8mf429y29lahmjzjsri0qspwyimnb1d73028qn8ck" + "revision": "86a633f0dffcfd80110bac86681dbf4b5c37ba5c", + "url": "https://github.com/echasnovski/mini.icons/archive/86a633f0dffcfd80110bac86681dbf4b5c37ba5c.tar.gz", + "hash": "1810mvav1k24kxx3kj364v09k26d1s1p2y6dnc2l8mwzw7q70byr" }, "mini-indentscope": { "type": "Git", @@ -1171,9 +1171,9 @@ }, "branch": "main", "submodules": false, - "revision": "7f4c785b95ff6d266588fe6e5b6ea696cf654e61", - "url": "https://github.com/echasnovski/mini.map/archive/7f4c785b95ff6d266588fe6e5b6ea696cf654e61.tar.gz", - "hash": "0f8mlszgi1fnmy0npqw27g28h9bgavy7mc97zivgsxgx2whgz6al" + "revision": "2fe08148f883d613c825c1c0c6ea8a19901061f0", + "url": "https://github.com/echasnovski/mini.map/archive/2fe08148f883d613c825c1c0c6ea8a19901061f0.tar.gz", + "hash": "1mqf5bkyp8r05h7ba4drfxx97js2fzmdbjz0xb88xhnpmrikfjnv" }, "mini-misc": { "type": "Git", @@ -1184,9 +1184,9 @@ }, "branch": "main", "submodules": false, - "revision": "a477a9d5790f6d899d3055c87f2e771118f91180", - "url": "https://github.com/echasnovski/mini.misc/archive/a477a9d5790f6d899d3055c87f2e771118f91180.tar.gz", - "hash": "1fp60lhv93jiygc0hvchzdzjgs8scczp7kv9cm3kzzimcfa84ky6" + "revision": "3f0cf62b7e9c545e7e92fe5614f4d6acbe5a8f29", + "url": "https://github.com/echasnovski/mini.misc/archive/3f0cf62b7e9c545e7e92fe5614f4d6acbe5a8f29.tar.gz", + "hash": "04sw3kxx7qa8i2xvagxls78ih7l6fq9mk42xrqjim225657hva5p" }, "mini-move": { "type": "Git", @@ -1210,9 +1210,9 @@ }, "branch": "main", "submodules": false, - "revision": "e71f08013db6812d9ce95c2624ae405a4267f4f3", - "url": "https://github.com/echasnovski/mini.notify/archive/e71f08013db6812d9ce95c2624ae405a4267f4f3.tar.gz", - "hash": "0fmy3d62283j2cwlxk97fyylad2zkd5j2r7pg7fb3cq8k1021d0s" + "revision": "be6661ee23f2325841fb087efb8e492b29eccc9a", + "url": "https://github.com/echasnovski/mini.notify/archive/be6661ee23f2325841fb087efb8e492b29eccc9a.tar.gz", + "hash": "16n36gvk3gz46cs30gh8zd4mcwszniynl2k87rzbfhhcwsj71svx" }, "mini-operators": { "type": "Git", @@ -1223,9 +1223,9 @@ }, "branch": "main", "submodules": false, - "revision": "02cfac95919b945c19221f0fcebe883c6dce04f6", - "url": "https://github.com/echasnovski/mini.operators/archive/02cfac95919b945c19221f0fcebe883c6dce04f6.tar.gz", - "hash": "1b51b3d1qkbzh68yadx3fcx9dgk405cb2ghln999fl5czvc3crmd" + "revision": "298218fb8280fd4a8234db80230dd84db6b07efd", + "url": "https://github.com/echasnovski/mini.operators/archive/298218fb8280fd4a8234db80230dd84db6b07efd.tar.gz", + "hash": "021big8pqbwkjrzkak0chffwhhvj8klanda5q9wxwgg1wky9qvi6" }, "mini-pairs": { "type": "Git", @@ -1236,9 +1236,9 @@ }, "branch": "main", "submodules": false, - "revision": "1a3e73649c0eaef2f6c48ce1e761c6f0a7c11918", - "url": "https://github.com/echasnovski/mini.pairs/archive/1a3e73649c0eaef2f6c48ce1e761c6f0a7c11918.tar.gz", - "hash": "0d0188v3gw2sdqnfly6i12v9036hdk1sg362lkngjmlpnq3m8574" + "revision": "b90e36aa5ca5e0d825e77ad67aac22214a4d9096", + "url": "https://github.com/echasnovski/mini.pairs/archive/b90e36aa5ca5e0d825e77ad67aac22214a4d9096.tar.gz", + "hash": "0h35xn8029d74sdv1fyrycpkl10vv0m01fvx2v955v0jfc9cii1n" }, "mini-pick": { "type": "Git", @@ -1249,9 +1249,9 @@ }, "branch": "main", "submodules": false, - "revision": "12ea14f8e285d1bcc909116685fdbb129a89d546", - "url": "https://github.com/echasnovski/mini.pick/archive/12ea14f8e285d1bcc909116685fdbb129a89d546.tar.gz", - "hash": "1ssa7ym6zxhazx551bjsnfdmvm1553kj6amvcczw9jrqbf4ynjqy" + "revision": "4dfc0a21f16d34e9b2429b96d62788ed8a65e6cd", + "url": "https://github.com/echasnovski/mini.pick/archive/4dfc0a21f16d34e9b2429b96d62788ed8a65e6cd.tar.gz", + "hash": "0ybfn2mn038mn2bdaf5hyiycimfi785silpcnayh4nj544zhzjc9" }, "mini-sessions": { "type": "Git", @@ -1301,9 +1301,9 @@ }, "branch": "main", "submodules": false, - "revision": "736c5177bd90cc852c05d903f662f0fc395a4b4b", - "url": "https://github.com/echasnovski/mini.starter/archive/736c5177bd90cc852c05d903f662f0fc395a4b4b.tar.gz", - "hash": "0w2awkcrabbsybvv2hlzjlqgcr53480pg5p3fhaaparrhd90c7na" + "revision": "cf770619b85968bc0f45cace82f5c80b69ca0e96", + "url": "https://github.com/echasnovski/mini.starter/archive/cf770619b85968bc0f45cace82f5c80b69ca0e96.tar.gz", + "hash": "11l7vxhd6sra55aj2xmm79nfhrkisv9r6fssknmcdxrmh47dr3kd" }, "mini-statusline": { "type": "Git", @@ -1314,9 +1314,9 @@ }, "branch": "main", "submodules": false, - "revision": "83209bfbca156f9e4a5ec47a2a8ce1e5ce26311d", - "url": "https://github.com/echasnovski/mini.statusline/archive/83209bfbca156f9e4a5ec47a2a8ce1e5ce26311d.tar.gz", - "hash": "1hma81mnylbnx812km7zc0xjxbs3bp2pb3bqzsny9w1llxwv7zrr" + "revision": "ec3adf7813b7604275dd4a28433e9c9610b70f1b", + "url": "https://github.com/echasnovski/mini.statusline/archive/ec3adf7813b7604275dd4a28433e9c9610b70f1b.tar.gz", + "hash": "1ny69yjvldl4jpyjpy8z4w4zz6ir976x63nds8z05zgkq8fa2ajd" }, "mini-surround": { "type": "Git", @@ -1327,9 +1327,9 @@ }, "branch": "main", "submodules": false, - "revision": "f90069c7441a5fb04c3de42eacf93e16b64dd3eb", - "url": "https://github.com/echasnovski/mini.surround/archive/f90069c7441a5fb04c3de42eacf93e16b64dd3eb.tar.gz", - "hash": "0bs7y0ai67jlwdz76x6945xvj9f4vqr4qx4vyfg7z7b6k1gzc092" + "revision": "97796f68a8698d9b63ac3927da0d0bf5c3a0876b", + "url": "https://github.com/echasnovski/mini.surround/archive/97796f68a8698d9b63ac3927da0d0bf5c3a0876b.tar.gz", + "hash": "1lris02am949lqg35ql3jgyfhzya68df3yhb5d2dbfmwhk6mjxgc" }, "mini-tabline": { "type": "Git", @@ -1353,9 +1353,9 @@ }, "branch": "main", "submodules": false, - "revision": "16a909c3ce39d9af9ec4dacca16205d36f85d823", - "url": "https://github.com/echasnovski/mini.test/archive/16a909c3ce39d9af9ec4dacca16205d36f85d823.tar.gz", - "hash": "1qf8ay763d011rvy9qwpv8q3mlxjlymvc4gx3bjfv0n56k5dzpg0" + "revision": "5db2659a3bcda7890d3416cfbe49eb9c36824675", + "url": "https://github.com/echasnovski/mini.test/archive/5db2659a3bcda7890d3416cfbe49eb9c36824675.tar.gz", + "hash": "173wj06k5g8k6ah2aw4azlgwmq7jmin5jkqkkpr9z1lviagrdss7" }, "mini-trailspace": { "type": "Git", @@ -1447,9 +1447,9 @@ }, "branch": "main", "submodules": false, - "revision": "d9544c74ec43cca0564fdc334c116fbe0be8a807", - "url": "https://github.com/nvim-neo-tree/neo-tree.nvim/archive/d9544c74ec43cca0564fdc334c116fbe0be8a807.tar.gz", - "hash": "0wiw4aipg3qmzw6k9vrljh4cg09kyqd28s6xpv2zhsg05mm38nhb" + "revision": "69f798bf9493b84df660ac3c6b2fc03e23956d25", + "url": "https://github.com/nvim-neo-tree/neo-tree.nvim/archive/69f798bf9493b84df660ac3c6b2fc03e23956d25.tar.gz", + "hash": "0yybrcljbfq6xygaqzspjz3bhxa6fb7w0qypky66cvhbpzrl6blz" }, "neocord": { "type": "Git", @@ -1473,9 +1473,9 @@ }, "branch": "main", "submodules": false, - "revision": "6f0b4eefa591fbc4c9344f110b0c0bac5b49078c", - "url": "https://github.com/nvim-neorg/neorg/archive/6f0b4eefa591fbc4c9344f110b0c0bac5b49078c.tar.gz", - "hash": "1x8h5hxzg06g1d849bna6rs4jzjf248g59v87zvlc4scmp9pzjga" + "revision": "79ffd346ca19af49197d9c1b45d0b902c32c3e14", + "url": "https://github.com/nvim-neorg/neorg/archive/79ffd346ca19af49197d9c1b45d0b902c32c3e14.tar.gz", + "hash": "0czkcdfh0l8j80kaz2zpdyb424xa28c35jybkdigwj1fgi0afnzd" }, "neorg-telescope": { "type": "Git", @@ -1590,9 +1590,9 @@ }, "branch": "master", "submodules": false, - "revision": "68f0e5c3dab23261a945272032ee6700af86227a", - "url": "https://github.com/windwp/nvim-autopairs/archive/68f0e5c3dab23261a945272032ee6700af86227a.tar.gz", - "hash": "1ai3s1083dx6bddhrkv7d3hyq3zsrblizbvpgl09r1w9cijxhj8m" + "revision": "6522027785b305269fa17088395dfc0f456cedd2", + "url": "https://github.com/windwp/nvim-autopairs/archive/6522027785b305269fa17088395dfc0f456cedd2.tar.gz", + "hash": "1i63wdgm54n3iiiix0y18mjvy2rsswc4iybqppsfpvi8cg2xjpa6" }, "nvim-bufferline-lua": { "type": "Git", @@ -1655,9 +1655,9 @@ }, "branch": "master", "submodules": false, - "revision": "a720d4966f758ab22e8ec28812b6df90a53e0f02", - "url": "https://github.com/mfussenegger/nvim-dap/archive/a720d4966f758ab22e8ec28812b6df90a53e0f02.tar.gz", - "hash": "0b979dhl5jr3kx9j5zih39jbrv22d554ws6y8g1cgsm2i3412s4h" + "revision": "7aade9e99bef5f0735cf966e715b3ce45515d786", + "url": "https://github.com/mfussenegger/nvim-dap/archive/7aade9e99bef5f0735cf966e715b3ce45515d786.tar.gz", + "hash": "0cr2y3lkr6ffxxd9b2pj8hr3fzb5dlj003fcknswqwsdhws75l22" }, "nvim-dap-go": { "type": "Git", @@ -1694,9 +1694,9 @@ }, "branch": "master", "submodules": false, - "revision": "1b97f8f954d74c46061bf289b6cea9232484c12c", - "url": "https://github.com/amrbashir/nvim-docs-view/archive/1b97f8f954d74c46061bf289b6cea9232484c12c.tar.gz", - "hash": "1xi0w20fq3yziwdjld1xhkm7dr0ihbbq2hik0qsckd7y73qqg5kg" + "revision": "f674ba57349849bce894efdd54096483c88e810b", + "url": "https://github.com/amrbashir/nvim-docs-view/archive/f674ba57349849bce894efdd54096483c88e810b.tar.gz", + "hash": "0ifbfhifly5sdsbxv1p71wvl644jz505ln9j1yr6qwvyk6a2krm1" }, "nvim-lightbulb": { "type": "Git", @@ -1707,9 +1707,9 @@ }, "branch": "master", "submodules": false, - "revision": "f7f61c47af5bf701b1f4af127bc565ab6491acbf", - "url": "https://github.com/kosayoda/nvim-lightbulb/archive/f7f61c47af5bf701b1f4af127bc565ab6491acbf.tar.gz", - "hash": "1wg7yib9qn8ybsk615kw1g8b3g5zbpdldp6bb7ax0jwxsn5nwwfb" + "revision": "aa3a8b0f4305b25cfe368f6c9be9923a7c9d0805", + "url": "https://github.com/kosayoda/nvim-lightbulb/archive/aa3a8b0f4305b25cfe368f6c9be9923a7c9d0805.tar.gz", + "hash": "0wp8f6yphb28iaxlhg326kvrh3h8xn5fkkcfn1whbacch6562wym" }, "nvim-lint": { "type": "Git", @@ -1720,9 +1720,9 @@ }, "branch": "master", "submodules": false, - "revision": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8", - "url": "https://github.com/mfussenegger/nvim-lint/archive/6e9dd545a1af204c4022a8fcd99727ea41ffdcc8.tar.gz", - "hash": "0b318dahzf9kd043mjsa41rj44zfbs7k8i4bz0rqhcqipr19rwhk" + "revision": "93b8040115c9114dac1047311763bef275e752dc", + "url": "https://github.com/mfussenegger/nvim-lint/archive/93b8040115c9114dac1047311763bef275e752dc.tar.gz", + "hash": "1115rn9npzj2xdj2zr1ayhfy76281zv0avbiyi5vgnvfg7064jmq" }, "nvim-lspconfig": { "type": "Git", @@ -1733,9 +1733,9 @@ }, "branch": "master", "submodules": false, - "revision": "8a1529e46eef5efc86c34c8d9bdd313abc2ecba0", - "url": "https://github.com/neovim/nvim-lspconfig/archive/8a1529e46eef5efc86c34c8d9bdd313abc2ecba0.tar.gz", - "hash": "0l9mns71hh0jssxblr1q286z8hmxwbgyq1nw6scki9ffn23jwnz0" + "revision": "a785eb7ad5adf9341f5e9fc8bc3b25af4fdc9385", + "url": "https://github.com/neovim/nvim-lspconfig/archive/a785eb7ad5adf9341f5e9fc8bc3b25af4fdc9385.tar.gz", + "hash": "02bc6g1dq54hmg481dd2vywx1pirklymsq36dlwzg77qr2hr6701" }, "nvim-metals": { "type": "Git", @@ -1746,9 +1746,9 @@ }, "branch": "main", "submodules": false, - "revision": "fe6125f633c1b2f68d468a2041e81e2e5e8933d4", - "url": "https://github.com/scalameta/nvim-metals/archive/fe6125f633c1b2f68d468a2041e81e2e5e8933d4.tar.gz", - "hash": "1xpav9ykwk7kz61c6y33kyjxf0nf47risdj0q9gf5rnl88cln4by" + "revision": "f763b65fd71cb17d544753194fd91090e611c6e0", + "url": "https://github.com/scalameta/nvim-metals/archive/f763b65fd71cb17d544753194fd91090e611c6e0.tar.gz", + "hash": "0ayn8npywhr9j1rlhvq5kij0s3751hh89fd5qqp1iqjqr9mg4ns8" }, "nvim-navbuddy": { "type": "Git", @@ -1837,9 +1837,9 @@ }, "branch": "main", "submodules": false, - "revision": "6c54643ef42016b744888b06d2381abd23f9b7ea", - "url": "https://github.com/kylechui/nvim-surround/archive/6c54643ef42016b744888b06d2381abd23f9b7ea.tar.gz", - "hash": "1c5agqfffmjxc73bv8d4hmrnzx62ikqpv7pii19v5alfdcnh5j48" + "revision": "caf6f633d4d77a29b6e265b560c5a035d171a913", + "url": "https://github.com/kylechui/nvim-surround/archive/caf6f633d4d77a29b6e265b560c5a035d171a913.tar.gz", + "hash": "130y0b2f69y5rzm64ss34a9zyqkpkybr2d1s4p0pcvvaq1ngq0r0" }, "nvim-tree-lua": { "type": "Git", @@ -1850,9 +1850,9 @@ }, "branch": "master", "submodules": false, - "revision": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4", - "url": "https://github.com/nvim-tree/nvim-tree.lua/archive/c09ff35de503a41fa62465c6b4ae72d96e7a7ce4.tar.gz", - "hash": "0bnc2fc9ipz9yp917l61vvcaqmbdg5fhqxrp7jfjxj5qmvadhai9" + "revision": "44d9b58f11d5a426c297aafd0be1c9d45617a849", + "url": "https://github.com/nvim-tree/nvim-tree.lua/archive/44d9b58f11d5a426c297aafd0be1c9d45617a849.tar.gz", + "hash": "0gya49yydrbq5jylsk4b9c2cpygy0mxhr6kwdsbg0di0i74pkav0" }, "nvim-treesitter-context": { "type": "Git", @@ -1863,9 +1863,9 @@ }, "branch": "master", "submodules": false, - "revision": "572e534c9f881bb9bf9f388e4c87f360446c72d4", - "url": "https://github.com/nvim-treesitter/nvim-treesitter-context/archive/572e534c9f881bb9bf9f388e4c87f360446c72d4.tar.gz", - "hash": "0bg3x75j8mwvpdhwd945lxbwmhw2j1qi135zn0yli78c9jn8g0ay" + "revision": "93b29a32d5f4be10e39226c6b796f28d68a8b483", + "url": "https://github.com/nvim-treesitter/nvim-treesitter-context/archive/93b29a32d5f4be10e39226c6b796f28d68a8b483.tar.gz", + "hash": "12ixiqb4bj7n3kkzqi81hyhn3bjsb93250gvfy12bxya2l5bi20g" }, "nvim-ts-autotag": { "type": "Git", @@ -1889,9 +1889,9 @@ }, "branch": "main", "submodules": false, - "revision": "a52c92c3bbaa10f0c9b547a50adaa8c7d8b29f94", - "url": "https://github.com/kevinhwang91/nvim-ufo/archive/a52c92c3bbaa10f0c9b547a50adaa8c7d8b29f94.tar.gz", - "hash": "1fv3rhny1d8wgxd3h3fy4vv05nb0fz506sk2in8rkmwlzwixl2wn" + "revision": "5b75cf5fdb74054fc8badb2e7ca9911dc0470d94", + "url": "https://github.com/kevinhwang91/nvim-ufo/archive/5b75cf5fdb74054fc8badb2e7ca9911dc0470d94.tar.gz", + "hash": "0arbnim2lchd4khrr06f5n0vsj29ahrs7v277j9vmnkmrfpjzvhb" }, "nvim-web-devicons": { "type": "Git", @@ -1902,9 +1902,9 @@ }, "branch": "master", "submodules": false, - "revision": "d0cafff5c4347a604a07edf7bb9a91fda7eb577e", - "url": "https://github.com/nvim-tree/nvim-web-devicons/archive/d0cafff5c4347a604a07edf7bb9a91fda7eb577e.tar.gz", - "hash": "1j5ccksn2lkd1f1fvhhjs2amhq17wxmgcqv6jk05jpdbngw2mv98" + "revision": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c", + "url": "https://github.com/nvim-tree/nvim-web-devicons/archive/4c3a5848ee0b09ecdea73adcd2a689190aeb728c.tar.gz", + "hash": "1a3pkkjdv99nzmh9rf3rn4x1wwhbrr7497ln7xlnkczmk9faz8r4" }, "obsidian-nvim": { "type": "Git", @@ -1954,9 +1954,9 @@ }, "branch": "master", "submodules": false, - "revision": "abf8890a9b0612c51d738268c759c4331bc2109c", - "url": "https://github.com/nvim-orgmode/orgmode/archive/abf8890a9b0612c51d738268c759c4331bc2109c.tar.gz", - "hash": "0j4f2y47s5ymii1w0r9gk39z4vks5fc9cy0rvj1vzml4vf4wijsi" + "revision": "145dce4d2f1bbaed5ff9e353822981b783627b32", + "url": "https://github.com/nvim-orgmode/orgmode/archive/145dce4d2f1bbaed5ff9e353822981b783627b32.tar.gz", + "hash": "0vy5wx8kwf0k7sx27cy6lcqvni5njq1nhcj2yxk8xkdn61wk7gyi" }, "otter-nvim": { "type": "Git", @@ -1967,9 +1967,9 @@ }, "branch": "main", "submodules": false, - "revision": "e37053d2c6a17463e705483122eee04d41e3d4af", - "url": "https://github.com/jmbuhr/otter.nvim/archive/e37053d2c6a17463e705483122eee04d41e3d4af.tar.gz", - "hash": "0sq7x2mcxl7z0j4s3a395fy0bzz13h4rxd03lp6674y6hsjxcm55" + "revision": "622816aac66933352e20e4d5d01993cd270d6fb0", + "url": "https://github.com/jmbuhr/otter.nvim/archive/622816aac66933352e20e4d5d01993cd270d6fb0.tar.gz", + "hash": "15ciqkx3hbbccy30dkga17jhra4mslvas0qnqiqrv5qlc09shyrp" }, "oxocarbon": { "type": "Git", @@ -2058,9 +2058,9 @@ }, "branch": "master", "submodules": false, - "revision": "f1e5490e87478cf0b528250ebb51552f3d08436a", - "url": "https://github.com/HiPhish/rainbow-delimiters.nvim/archive/f1e5490e87478cf0b528250ebb51552f3d08436a.tar.gz", - "hash": "02265awjpkd8v6s22wx8qrk2wxq8b7c7h5lr9n7pi6d4lwyrkrxf" + "revision": "de39919a57e1a40a4c7dc5bae0de276f9c616ef3", + "url": "https://github.com/HiPhish/rainbow-delimiters.nvim/archive/de39919a57e1a40a4c7dc5bae0de276f9c616ef3.tar.gz", + "hash": "04a3y7kyszgjgi1nmjb41vwwpz4svkxh61zkbxrn4ajvxz1ia05i" }, "registers-nvim": { "type": "Git", @@ -2084,9 +2084,9 @@ }, "branch": "main", "submodules": false, - "revision": "08e1fa4e281e48ee4aa892428de9fb91e66edca6", - "url": "https://github.com/MeanderingProgrammer/render-markdown.nvim/archive/08e1fa4e281e48ee4aa892428de9fb91e66edca6.tar.gz", - "hash": "1kiwa88l2262ycfj6z70hdriml0y2wnji3l9w27jbky9zxwhazrs" + "revision": "a1fc4e559252baa128c471adadf0be045abd542d", + "url": "https://github.com/MeanderingProgrammer/render-markdown.nvim/archive/a1fc4e559252baa128c471adadf0be045abd542d.tar.gz", + "hash": "0n9zis5jf7khjdmc622g40is5yjsqkxph64mldpd3q8ka64yaib1" }, "rose-pine": { "type": "Git", @@ -2136,9 +2136,9 @@ }, "branch": "master", "submodules": false, - "revision": "c7cc0e00ec53cafaa38e258cba4a6507c180289b", - "url": "https://github.com/mrcjkb/rustaceanvim/archive/c7cc0e00ec53cafaa38e258cba4a6507c180289b.tar.gz", - "hash": "1514w2x5vpn790rz8wkah0chr7yz9sm5whaprnm1qc26fz4jwc17" + "revision": "1486b5a2cc0de646d6d0837ec77127c9d6e2c50f", + "url": "https://github.com/mrcjkb/rustaceanvim/archive/1486b5a2cc0de646d6d0837ec77127c9d6e2c50f.tar.gz", + "hash": "1gl4i8pbmia78srxcsi131vxby5d8w9mn0ydzl3r0v7pawyvwr9q" }, "smartcolumn-nvim": { "type": "Git", @@ -2178,9 +2178,9 @@ }, "branch": "main", "submodules": false, - "revision": "a514379f5f89bf72955ed3bf5c1c31a40b8a1472", - "url": "https://github.com/nanotee/sqls.nvim/archive/a514379f5f89bf72955ed3bf5c1c31a40b8a1472.tar.gz", - "hash": "0rdhfjzfqhpjimi7b398d8ivfrg3ay084gz92fp0g4sgr3m876x3" + "revision": "d1bc5421ef3e8edc5101e37edbb7de6639207a09", + "url": "https://github.com/nanotee/sqls.nvim/archive/d1bc5421ef3e8edc5101e37edbb7de6639207a09.tar.gz", + "hash": "1j4n5c8h1iriqzsjxr0wvz70g9lf6d4lm3nyxlpwy9dqmbj8w0kd" }, "tabular": { "type": "Git", @@ -2204,9 +2204,9 @@ }, "branch": "master", "submodules": false, - "revision": "814f102cd1da3dc78c7d2f20f2ef3ed3cdf0e6e4", - "url": "https://github.com/nvim-telescope/telescope.nvim/archive/814f102cd1da3dc78c7d2f20f2ef3ed3cdf0e6e4.tar.gz", - "hash": "0lbsq6x5bf7l54x7rkdkh7pa63afsgf0jnm0zf9ig7fw2lh18b8f" + "revision": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5", + "url": "https://github.com/nvim-telescope/telescope.nvim/archive/a4ed82509cecc56df1c7138920a1aeaf246c0ac5.tar.gz", + "hash": "0vc2fr5nhbc39d55zn09fh8zpy4472ic4xmwvmk5dda8fqw76p8q" }, "tiny-devicons-auto-colors-nvim": { "type": "Git", @@ -2295,9 +2295,9 @@ }, "branch": "master", "submodules": false, - "revision": "ddcc71126f910ec83037622bc8d506f91a290ade", - "url": "https://github.com/chomosuke/typst-preview.nvim/archive/ddcc71126f910ec83037622bc8d506f91a290ade.tar.gz", - "hash": "1iqcbpgk87gcgnqd5dv8n4h4hbildp5hbjhnlwjx5zlzcg5qv2my" + "revision": "10e6ec6f00365639e383fa8e95a32058dad53b22", + "url": "https://github.com/chomosuke/typst-preview.nvim/archive/10e6ec6f00365639e383fa8e95a32058dad53b22.tar.gz", + "hash": "1va3yw7iq5170ilfzd0fvpvkbkxn2yqk413j64ymg31aql8amgjc" }, "vim-dirtytalk": { "type": "Git", @@ -2399,9 +2399,9 @@ }, "branch": "main", "submodules": false, - "revision": "80d9385dbebe7049fd1961d7909b835a58ce9dcc", - "url": "https://github.com/gbprod/yanky.nvim/archive/80d9385dbebe7049fd1961d7909b835a58ce9dcc.tar.gz", - "hash": "1lg9nxc01shkazqk5g3j0iskiqbwr9sxv07sqrwkwlh36jn59rcp" + "revision": "a21a0b4f593e1fb17b17882f1ab3a3c1b943b831", + "url": "https://github.com/gbprod/yanky.nvim/archive/a21a0b4f593e1fb17b17882f1ab3a3c1b943b831.tar.gz", + "hash": "1sk3acrwwmx9wfxnfymgvl88bnp0xh8a30pyx040czrj3zl5l920" } }, "version": 5 From e7d5e6c4acc3d5ee1f05e776df1a1f235e6b567f Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 29 Mar 2025 19:03:31 +0300 Subject: [PATCH 27/33] blink: 0.14.1 -> 1.0.0 --- flake/legacyPackages/blink-cmp.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/flake/legacyPackages/blink-cmp.nix b/flake/legacyPackages/blink-cmp.nix index 477616aa..8d734719 100644 --- a/flake/legacyPackages/blink-cmp.nix +++ b/flake/legacyPackages/blink-cmp.nix @@ -1,9 +1,8 @@ { stdenv, rustPlatform, - hostPlatform, vimUtils, - git, + gitMinimal, src, version, }: let @@ -17,7 +16,7 @@ useFetchCargoVendor = true; cargoHash = "sha256-F1wh/TjYoiIbDY3J/prVF367MKk3vwM7LqOpRobOs7I="; - nativeBuildInputs = [git]; + nativeBuildInputs = [gitMinimal]; }; in vimUtils.buildVimPlugin { @@ -34,5 +33,5 @@ in ''; # Module for reproducing issues - nvimSkipModule = ["repro"]; + nvimSkipModules = ["repro"]; } From f3f818656d95bffab3ce3ba5963242e55fbbeb09 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 29 Mar 2025 19:04:03 +0300 Subject: [PATCH 28/33] ci: update editorconfig check --- .github/workflows/check.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index eb2aef34..055f80dd 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -119,7 +119,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh api \ - repos/notashelf/nvf/pulls/${{github.event.number}}/files --paginate \ + repos/${{ github.repository }}/pulls/${{ github.event.number }}/files --paginate \ | jq '.[] | select(.status != "removed") | .filename' \ > "$HOME/changed_files" @@ -138,9 +138,7 @@ jobs: - name: Checking EditorConfig shell: bash run: | - cat "$HOME/changed_files" | nix-shell -p editorconfig-checker.out \ - --run 'xargs -r editorconfig-checker -disable-indentation -exclude flake.lock --verbose' - echo -n "Check status: $?" + < "$HOME/changed_files" nix-shell -p editorconfig-checker --run 'xargs -r editorconfig-checker -disable-indent-size' - if: ${{ failure() }} shell: bash From 6914a70e48f4f1003abc0e16967af38804b671b5 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 29 Mar 2025 19:11:50 +0300 Subject: [PATCH 29/33] ci: inline gh API call for Editorconfig check --- .github/workflows/check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 055f80dd..d154756f 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -117,9 +117,9 @@ jobs: - name: Get list of changed files from PR env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + shell: bash run: | - gh api \ - repos/${{ github.repository }}/pulls/${{ github.event.number }}/files --paginate \ + gh api repos/${{ github.repository }}/pulls/${{ github.event.number }}/files --paginate \ | jq '.[] | select(.status != "removed") | .filename' \ > "$HOME/changed_files" From b9050558a4b8e4211cc935e8fb9a4760e9d9fd3e Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 29 Mar 2025 19:59:50 +0300 Subject: [PATCH 30/33] flake: bump inputs --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 4c687864..8780caec 100644 --- a/flake.lock +++ b/flake.lock @@ -77,11 +77,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1742923925, - "narHash": "sha256-biPjLws6FiBVUUDHEMFq5pUQL84Wf7PntPYdo3oKkFw=", + "lastModified": 1743076231, + "narHash": "sha256-yQugdVfi316qUfqzN8JMaA2vixl+45GxNm4oUfXlbgw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "25d1b84f5c90632a623c48d83a2faf156451e6b1", + "rev": "6c5963357f3c1c840201eda129a99d455074db04", "type": "github" }, "original": { From e133d68ecc7dbd6388a2a84569fff073efb61c26 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 29 Mar 2025 20:03:37 +0300 Subject: [PATCH 31/33] ci: attempt to support non-PR changes --- .github/workflows/check.yml | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index d154756f..6987bb48 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -114,28 +114,31 @@ jobs: runs-on: ubuntu-latest if: "!contains(github.event.pull_request.title, '[skip ci]')" steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 2 # slows down checkout, but we need to compare against the previous commit on push events + - name: Get list of changed files from PR env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash run: | - gh api repos/${{ github.repository }}/pulls/${{ github.event.number }}/files --paginate \ - | jq '.[] | select(.status != "removed") | .filename' \ - > "$HOME/changed_files" + if [[ "${{ github.event_name }}" == "pull_request" ]]; then + gh api repos/${{ github.repository }}/pulls/${{ github.event.number }}/files --paginate \ + | jq -r '.[] | select(.status != "removed") | .filename' \ + > "$HOME/changed_files" + else + git diff --name-only HEAD^ > "$HOME/changed_files" - name: Print list of changed files run: | cat "$HOME/changed_files" - - name: Checkout - uses: actions/checkout@v4 - with: - ref: refs/pull/${{ github.event.pull_request.number }}/merge - - name: Install Nix uses: DeterminateSystems/nix-installer-action@main - - name: Checking EditorConfig + - name: Checking Editorconfig conformance shell: bash run: | < "$HOME/changed_files" nix-shell -p editorconfig-checker --run 'xargs -r editorconfig-checker -disable-indent-size' From 33b4d9da44491003cf5f1fc060aaca7034914fd6 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 29 Mar 2025 20:04:40 +0300 Subject: [PATCH 32/33] statusline/lualine: rewrite LSP client component --- .../plugins/statusline/lualine/lualine.nix | 35 +++++++------------ 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/modules/plugins/statusline/lualine/lualine.nix b/modules/plugins/statusline/lualine/lualine.nix index bf070db7..4e69c852 100644 --- a/modules/plugins/statusline/lualine/lualine.nix +++ b/modules/plugins/statusline/lualine/lualine.nix @@ -239,35 +239,26 @@ in { { -- Lsp server name function() - local buf_ft = vim.api.nvim_get_option_value('filetype', {}) + local buf_ft = vim.bo.filetype + local excluded_buf_ft = { toggleterm = true, NvimTree = true, ["neo-tree"] = true, TelescopePrompt = true } - -- List of buffer types to exclude - local excluded_buf_ft = {"toggleterm", "NvimTree", "neo-tree", "TelescopePrompt"} - - -- Check if the current buffer type is in the excluded list - for _, excluded_type in ipairs(excluded_buf_ft) do - if buf_ft == excluded_type then - return "" + if excluded_buf_ft[buf_ft] then + return "" end + + local bufnr = vim.api.nvim_get_current_buf() + local clients = vim.lsp.get_clients({ bufnr = bufnr }) + + if vim.tbl_isempty(clients) then + return "No Active LSP" end - -- Get the name of the LSP server active in the current buffer - local clients = vim.lsp.get_active_clients() - local msg = 'No Active Lsp' - - -- if no lsp client is attached then return the msg - if next(clients) == nil then - return msg - end - + local active_clients = {} for _, client in ipairs(clients) do - local filetypes = client.config.filetypes - if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then - return client.name - end + table.insert(active_clients, client.name) end - return msg + return table.concat(active_clients, ", ") end, icon = ' ', separator = {left = ''}, From 736c323c598d77a54585e2327e2e4ad6af864549 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 29 Mar 2025 20:11:47 +0300 Subject: [PATCH 33/33] ci: fix bash syntax --- .github/workflows/check.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 6987bb48..a349cb07 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -130,6 +130,7 @@ jobs: > "$HOME/changed_files" else git diff --name-only HEAD^ > "$HOME/changed_files" + fi - name: Print list of changed files run: |