From 6bdc52cd772e8708db8e32d3533ce4674943ccef Mon Sep 17 00:00:00 2001 From: Nikita <68944906+BANanaD3V@users.noreply.github.com> Date: Mon, 10 Mar 2025 12:51:19 +0300 Subject: [PATCH 01/94] languages/markdown: Add markview renderer --- docs/release-notes/rl-0.8.md | 1 + modules/plugins/languages/markdown.nix | 19 +++++++++++++++++++ npins/sources.json | 12 ++++++++++++ 3 files changed, 32 insertions(+) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 1a5b7e4c..78d9fc36 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -241,3 +241,4 @@ [BANanaD3V](https://github.com/BANanaD3V): - `alpha` is now configured with nix. +- Add `markview-nvim` markdown renderer. diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index ac098a1c..648513e7 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -133,6 +133,18 @@ in { }; }; }; + markview-nvim = { + enable = + mkEnableOption "" + // { + description = '' + [markview.nvim]: https://github.com/OXY2DEV/markview.nvim + + [markview.nvim] - a hackable markdown, Typst, latex, html(inline) & YAML previewer + ''; + }; + setupOpts = mkPluginSetupOption "markview-nvim" {}; + }; }; }; @@ -159,5 +171,12 @@ in { require("render-markdown").setup(${toLuaObject cfg.extensions.render-markdown-nvim.setupOpts}) ''; }) + + (mkIf cfg.extensions.markview-nvim.enable { + vim.startPlugins = ["markview-nvim"]; + vim.pluginRC.markview-nvim = entryAnywhere '' + require("markview").setup(${toLuaObject cfg.extensions.markview-nvim.setupOpts}) + ''; + }) ]); } diff --git a/npins/sources.json b/npins/sources.json index daad4177..093fa820 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -773,6 +773,18 @@ "url": "https://github.com/horriblename/lzn-auto-require/archive/ef746afb55467984ef3200d9709c8059ee0257d0.tar.gz", "hash": "1mgka1mmvpd2gfya898qdbbwrp5rpqds8manjs1s7g5x63xp6b98" }, + "markview-nvim": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "OXY2DEV", + "repo": "markview.nvim" + }, + "branch": "main", + "revision": "6c92a6455e97c954a4a419265a032fedd69846f6", + "url": "https://github.com/OXY2DEV/markview.nvim/archive/6c92a6455e97c954a4a419265a032fedd69846f6.tar.gz", + "hash": "01sw4iscnciyifpba4cwjb6fs95wrkk60xvqq67b8d5j8yb5449a" + }, "mind-nvim": { "type": "Git", "repository": { From 72c5c7f6344b9a714c95d73242b098f9141f9a59 Mon Sep 17 00:00:00 2001 From: Farouk Brown Date: Tue, 22 Apr 2025 12:17:33 +0100 Subject: [PATCH 02/94] assistant: add avante.nvim plugin --- docs/release-notes/rl-0.8.md | 7 + .../plugins/assistant/avante/avante-nvim.nix | 359 ++++++++++++++++++ modules/plugins/assistant/avante/config.nix | 44 +++ modules/plugins/assistant/avante/default.nix | 6 + modules/plugins/assistant/default.nix | 1 + npins/sources.json | 13 + 6 files changed, 430 insertions(+) create mode 100644 modules/plugins/assistant/avante/avante-nvim.nix create mode 100644 modules/plugins/assistant/avante/config.nix create mode 100644 modules/plugins/assistant/avante/default.nix diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 5dc3ca94..6fe4982f 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -344,3 +344,10 @@ [howird](https://github.com/howird): - Change python dap adapter name from `python` to commonly expected `debugpy`. + +[aionoid](https://github.com/aionoid): + +[avante-nvim]: https://github.com/yetone/avante.nvim + +- Add [avante.nvim] plugin under `vim.assistant.avante-nvim`. +- Fix [render-markdown.nvim] file_types option type to list, to accept merging. diff --git a/modules/plugins/assistant/avante/avante-nvim.nix b/modules/plugins/assistant/avante/avante-nvim.nix new file mode 100644 index 00000000..135664c2 --- /dev/null +++ b/modules/plugins/assistant/avante/avante-nvim.nix @@ -0,0 +1,359 @@ +{lib, ...}: let + inherit (lib.options) mkOption mkEnableOption literalMD; + inherit (lib.types) int str enum nullOr attrs either; + inherit (lib.nvim.types) mkPluginSetupOption luaInline; +in { + options.vim.assistant = { + avante-nvim = { + enable = mkEnableOption "complementary neovim plugin for avante.nvim"; + setupOpts = mkPluginSetupOption "avante-nvim" { + provider = mkOption { + type = nullOr str; + default = null; + description = "The provider used in Aider mode or in the planning phase of Cursor Planning Mode."; + }; + + vendors = mkOption { + type = nullOr attrs; + default = null; + description = "Define Your Custom providers."; + example = literalMD '' + ```nix + ollama = { + __inherited_from = "openai"; + api_key_name = ""; + endpoint = "http://127.0.0.1:11434/v1"; + model = "qwen2.5u-coder:7b"; + max_tokens = 4096; + disable_tools = true; + }; + ollama_ds = { + __inherited_from = "openai"; + api_key_name = ""; + endpoint = "http://127.0.0.1:11434/v1"; + model = "deepseek-r1u:7b"; + max_tokens = 4096; + disable_tools = true; + }; + ``` + ''; + }; + + auto_suggestions_provider = mkOption { + type = str; + default = "claude"; + description = '' + Since auto-suggestions are a high-frequency operation and therefore expensive, + currently designating it as `copilot` provider is dangerous because: https://github.com/yetone/avante.nvim/issues/1048 + Of course, you can reduce the request frequency by increasing `suggestion.debounce`. + ''; + }; + + cursor_applying_provider = mkOption { + type = nullOr str; + default = null; + description = '' + The provider used in the applying phase of Cursor Planning Mode, defaults to nil, + when nil uses Config.provider as the provider for the applying phase + ''; + }; + + dual_boost = { + enabled = + mkEnableOption "" + // { + default = false; + description = '' + enable/disable dual boost. + ''; + }; + + first_provider = mkOption { + type = str; + default = "openai"; + }; + + second_provider = mkOption { + type = str; + default = "claude"; + }; + + prompt = mkOption { + type = str; + default = "Based on the two reference outputs below, generate a response that incorporates elements from both but reflects your own judgment and unique perspective. Do not provide any explanation, just give the response directly. Reference Output 1: [{{provider1_output}}], Reference Output 2: [{{provider2_output}}]"; + }; + + timeout = mkOption { + type = int; + default = 60000; + description = "Timeout in milliseconds."; + }; + }; + + behaviour = { + auto_suggestions = + mkEnableOption "" + // { + default = false; + }; + + auto_set_highlight_group = + mkEnableOption "" + // { + default = true; + }; + + auto_set_keymaps = + mkEnableOption "" + // { + default = true; + }; + + auto_apply_diff_after_generation = + mkEnableOption "" + // { + default = false; + }; + + support_paste_from_clipboard = + mkEnableOption "" + // { + default = false; + }; + + minimize_diff = + mkEnableOption "" + // { + default = true; + description = "Whether to remove unchanged lines when applying a code block."; + }; + + enable_token_counting = + mkEnableOption "" + // { + default = true; + description = "Whether to enable token counting. Default to true."; + }; + + enable_cursor_planning_mode = + mkEnableOption "" + // { + default = false; + description = "Whether to enable Cursor Planning Mode. Default to false."; + }; + + enable_claude_text_editor_tool_mode = + mkEnableOption "" + // { + default = false; + description = "Whether to enable Claude Text Editor Tool Mode."; + }; + }; + + mappings = { + diff = mkOption { + type = nullOr attrs; + default = null; + description = "Define or override the default keymaps for diff."; + }; + + suggestion = mkOption { + type = nullOr attrs; + default = null; + description = "Define or override the default keymaps for suggestion actions."; + }; + + jump = mkOption { + type = nullOr attrs; + default = null; + description = "Define or override the default keymaps for jump actions."; + }; + + submit = mkOption { + type = nullOr attrs; + default = null; + description = "Define or override the default keymaps for submit actions."; + }; + + cancel = mkOption { + type = nullOr attrs; + default = null; + description = "Define or override the default keymaps for cancel actions."; + }; + + sidebar = mkOption { + type = nullOr attrs; + default = null; + description = "Define or override the default keymaps for sidebar actions."; + }; + }; + + hints.enabled = + mkEnableOption "" + // { + default = true; + description = '' + Whether to enable hints. + ''; + }; + + windows = { + position = mkOption { + type = enum ["right" "left" "top" "bottom"]; + default = "right"; + description = "The position of the sidebar."; + }; + + wrap = + mkEnableOption "" + // { + default = true; + description = '' + similar to vim.o.wrap. + ''; + }; + + width = mkOption { + type = int; + default = 30; + description = "Default % based on available width."; + }; + + sidebar_header = { + enabled = + mkEnableOption "" + // { + default = true; + description = '' + enable/disable the header. + ''; + }; + + align = mkOption { + type = enum ["right" "center" "left"]; + default = "center"; + description = "Position of the title."; + }; + + rounded = + mkEnableOption "" + // { + default = true; + }; + }; + + input = { + prefix = mkOption { + type = str; + default = "> "; + }; + + height = mkOption { + type = int; + default = 8; + description = '' + Height of the input window in vertical layout. + ''; + }; + }; + + edit = { + border = mkOption { + type = str; + default = "rounded"; + }; + + start_insert = + mkEnableOption "" + // { + default = true; + description = '' + Start insert mode when opening the edit window. + ''; + }; + }; + + ask = { + floating = + mkEnableOption "" + // { + default = false; + description = '' + Open the 'AvanteAsk' prompt in a floating window. + ''; + }; + + start_insert = + mkEnableOption "" + // { + default = true; + description = '' + Start insert mode when opening the ask window. + ''; + }; + + border = mkOption { + type = str; + default = "rounded"; + }; + + focus_on_apply = mkOption { + type = enum ["ours" "theirs"]; + default = "ours"; + description = "which diff to focus after applying."; + }; + }; + }; + + highlights = { + diff = { + current = mkOption { + type = str; + default = "DiffText"; + }; + + incoming = mkOption { + type = str; + default = "DiffAdd"; + }; + }; + }; + + diff = { + autojump = + mkEnableOption "" + // { + default = true; + }; + + list_opener = mkOption { + type = either str luaInline; + default = "copen"; + }; + + override_timeoutlen = mkOption { + type = int; + default = 500; + description = '' + Override the 'timeoutlen' setting while hovering over a diff (see :help timeoutlen). + Helps to avoid entering operator-pending mode with diff mappings starting with `c`. + Disable by setting to -1. + ''; + }; + }; + + suggestion = { + debounce = mkOption { + type = int; + default = 600; + }; + + throttle = mkOption { + type = int; + default = 600; + }; + }; + }; + }; + }; +} diff --git a/modules/plugins/assistant/avante/config.nix b/modules/plugins/assistant/avante/config.nix new file mode 100644 index 00000000..1c975558 --- /dev/null +++ b/modules/plugins/assistant/avante/config.nix @@ -0,0 +1,44 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib.modules) mkIf; + + cfg = config.vim.assistant.avante-nvim; +in { + config = mkIf cfg.enable { + vim = { + startPlugins = [ + "plenary-nvim" + "dressing-nvim" + "nui-nvim" + ]; + + lazy.plugins = { + "avante.nvim" = with pkgs.vimPlugins; { + package = avante-nvim; + setupModule = "avante"; + inherit (cfg) setupOpts; + after = + /* + lua + */ + '' + vim.opt.laststatus = 3 + ''; + }; + }; + + treesitter.enable = true; + + autocomplete.nvim-cmp = { + sources = {"avante.nvim" = "[avante]";}; + sourcePlugins = ["avante-nvim"]; + }; + + languages.markdown.extensions.render-markdown-nvim.setupOpts.file_types = lib.mkAfter ["Avante"]; + }; + }; +} diff --git a/modules/plugins/assistant/avante/default.nix b/modules/plugins/assistant/avante/default.nix new file mode 100644 index 00000000..c8ab1a1c --- /dev/null +++ b/modules/plugins/assistant/avante/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./config.nix + ./avante-nvim.nix + ]; +} diff --git a/modules/plugins/assistant/default.nix b/modules/plugins/assistant/default.nix index 697d54f6..ab50ea4f 100644 --- a/modules/plugins/assistant/default.nix +++ b/modules/plugins/assistant/default.nix @@ -3,5 +3,6 @@ ./chatgpt ./copilot ./codecompanion + ./avante ]; } diff --git a/npins/sources.json b/npins/sources.json index 05a8c173..cc4cf05d 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -26,6 +26,19 @@ "url": "https://github.com/goolord/alpha-nvim/archive/de72250e054e5e691b9736ee30db72c65d560771.tar.gz", "hash": "0c1jkhxamfn2md7m1r5b2wpxa26y90b98yzjwf68m3fymalvkn5h" }, + "avante-nvim": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "yetone", + "repo": "avante.nvim" + }, + "branch": "main", + "submodules": false, + "revision": "eb1cd44731783024621beafe4e46204cbc9a4320", + "url": "https://github.com/yetone/avante.nvim/archive/eb1cd44731783024621beafe4e46204cbc9a4320.tar.gz", + "hash": "1hdb1b74mxq6j10fv0zh6fniwpijwbxjxc59k7xzkqj6q20lad07" + }, "base16": { "type": "Git", "repository": { From 8cde1f7b93226ec404acc40227d5a752d2956238 Mon Sep 17 00:00:00 2001 From: Farouk Brown Date: Tue, 22 Apr 2025 12:20:10 +0100 Subject: [PATCH 03/94] fix:set render-markdown.nvim file_types to list --- modules/plugins/languages/markdown.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index 62081549..0dfad07c 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.options) mkEnableOption mkOption; inherit (lib.lists) isList; - inherit (lib.types) bool enum either package listOf str; + inherit (lib.types) bool enum either package listOf str nullOr; inherit (lib.nvim.lua) expToLua toLuaObject; inherit (lib.nvim.types) diagnostics mkGrammarOption mkPluginSetupOption; inherit (lib.nvim.dag) entryAnywhere; @@ -117,7 +117,12 @@ in { ''; }; - setupOpts = mkPluginSetupOption "render-markdown" {}; + setupOpts = mkPluginSetupOption "render-markdown" { + file_types = lib.mkOption { + type = listOf (nullOr str); + default = []; + }; + }; }; }; From 7092ff5b7b7b6e8fb2c2d8c2b47f6997a9e69d3f Mon Sep 17 00:00:00 2001 From: Farouk Brown Date: Tue, 22 Apr 2025 14:09:46 +0100 Subject: [PATCH 04/94] docs: add missing descriptions --- .../plugins/assistant/avante/avante-nvim.nix | 44 ++++++++----------- modules/plugins/languages/markdown.nix | 1 + 2 files changed, 20 insertions(+), 25 deletions(-) diff --git a/modules/plugins/assistant/avante/avante-nvim.nix b/modules/plugins/assistant/avante/avante-nvim.nix index 135664c2..e616d421 100644 --- a/modules/plugins/assistant/avante/avante-nvim.nix +++ b/modules/plugins/assistant/avante/avante-nvim.nix @@ -1,7 +1,7 @@ {lib, ...}: let inherit (lib.options) mkOption mkEnableOption literalMD; - inherit (lib.types) int str enum nullOr attrs either; - inherit (lib.nvim.types) mkPluginSetupOption luaInline; + inherit (lib.types) int str enum nullOr attrs; + inherit (lib.nvim.types) mkPluginSetupOption; in { options.vim.assistant = { avante-nvim = { @@ -63,24 +63,25 @@ in { mkEnableOption "" // { default = false; - description = '' - enable/disable dual boost. - ''; + description = "Whether to enable dual_boost mode."; }; first_provider = mkOption { type = str; default = "openai"; + description = "The first provider to generate response."; }; second_provider = mkOption { type = str; default = "claude"; + description = "The second provider to generate response."; }; prompt = mkOption { type = str; default = "Based on the two reference outputs below, generate a response that incorporates elements from both but reflects your own judgment and unique perspective. Do not provide any explanation, just give the response directly. Reference Output 1: [{{provider1_output}}], Reference Output 2: [{{provider2_output}}]"; + description = "The prompt to generate response based on the two reference outputs."; }; timeout = mkOption { @@ -95,30 +96,35 @@ in { mkEnableOption "" // { default = false; + description = "Whether to enable auto suggestions."; }; auto_set_highlight_group = mkEnableOption "" // { default = true; + description = "Whether to automatically set the highlight group for the current line."; }; auto_set_keymaps = mkEnableOption "" // { default = true; + description = "Whether to automatically set the keymap for the current line."; }; auto_apply_diff_after_generation = mkEnableOption "" // { default = false; + description = "Whether to automatically apply diff after LLM response."; }; support_paste_from_clipboard = mkEnableOption "" // { default = false; + description = "Whether to support pasting image from clipboard. This will be determined automatically based whether img-clip is available or not."; }; minimize_diff = @@ -239,6 +245,7 @@ in { mkEnableOption "" // { default = true; + description = "Enable rounded sidebar header"; }; }; @@ -246,6 +253,7 @@ in { prefix = mkOption { type = str; default = "> "; + description = "The prefix used on the user input."; }; height = mkOption { @@ -261,6 +269,7 @@ in { border = mkOption { type = str; default = "rounded"; + description = "The border type on the edit window."; }; start_insert = @@ -295,26 +304,13 @@ in { border = mkOption { type = str; default = "rounded"; + description = "The border type on the ask window."; }; focus_on_apply = mkOption { type = enum ["ours" "theirs"]; default = "ours"; - description = "which diff to focus after applying."; - }; - }; - }; - - highlights = { - diff = { - current = mkOption { - type = str; - default = "DiffText"; - }; - - incoming = mkOption { - type = str; - default = "DiffAdd"; + description = "Which diff to focus after applying."; }; }; }; @@ -324,13 +320,9 @@ in { mkEnableOption "" // { default = true; + description = "Automatically jumps to the next change."; }; - list_opener = mkOption { - type = either str luaInline; - default = "copen"; - }; - override_timeoutlen = mkOption { type = int; default = 500; @@ -346,11 +338,13 @@ in { debounce = mkOption { type = int; default = 600; + description = "Suggestion debounce in milliseconds."; }; throttle = mkOption { type = int; default = 600; + description = "Suggestion throttle in milliseconds."; }; }; }; diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index 0dfad07c..008192e3 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -121,6 +121,7 @@ in { file_types = lib.mkOption { type = listOf (nullOr str); default = []; + description = "List of buffer filetypes to enable this plugin in. This will cause the plugin to attach to new buffers who have any of these filetypes."; }; }; }; From e21904d50d53f0da8242b2d0699e1c5938649c07 Mon Sep 17 00:00:00 2001 From: Farouk Brown Date: Tue, 22 Apr 2025 15:33:07 +0100 Subject: [PATCH 05/94] pr: revert markdown changes --- docs/release-notes/rl-0.8.md | 1 - modules/plugins/languages/markdown.nix | 10 ++-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 6fe4982f..0e5103c1 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -350,4 +350,3 @@ [avante-nvim]: https://github.com/yetone/avante.nvim - Add [avante.nvim] plugin under `vim.assistant.avante-nvim`. -- Fix [render-markdown.nvim] file_types option type to list, to accept merging. diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index 008192e3..62081549 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -9,7 +9,7 @@ inherit (lib.modules) mkIf mkMerge; inherit (lib.options) mkEnableOption mkOption; inherit (lib.lists) isList; - inherit (lib.types) bool enum either package listOf str nullOr; + inherit (lib.types) bool enum either package listOf str; inherit (lib.nvim.lua) expToLua toLuaObject; inherit (lib.nvim.types) diagnostics mkGrammarOption mkPluginSetupOption; inherit (lib.nvim.dag) entryAnywhere; @@ -117,13 +117,7 @@ in { ''; }; - setupOpts = mkPluginSetupOption "render-markdown" { - file_types = lib.mkOption { - type = listOf (nullOr str); - default = []; - description = "List of buffer filetypes to enable this plugin in. This will cause the plugin to attach to new buffers who have any of these filetypes."; - }; - }; + setupOpts = mkPluginSetupOption "render-markdown" {}; }; }; From c7b7a5d6d4f64ab65da97a1536dcf5d47fc57717 Mon Sep 17 00:00:00 2001 From: Valyn Tyler <115489989+ValynTyler@users.noreply.github.com> Date: Thu, 24 Apr 2025 19:57:19 +0300 Subject: [PATCH 06/94] fix: bad option in custom-config example --- docs/manual/installation/custom-configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual/installation/custom-configuration.md b/docs/manual/installation/custom-configuration.md index 940f35a3..52f81573 100644 --- a/docs/manual/installation/custom-configuration.md +++ b/docs/manual/installation/custom-configuration.md @@ -39,7 +39,7 @@ An example flake that exposes your custom Neovim configuration might look like theme.enable = true; # Enable Treesitter - tree-sitter.enable = true; + treesitter.enable = true; # Other options will go here. Refer to the config # reference in Appendix B of the nvf manual. From f0fe0b0f62e44a77c75a7c316d7a9e8d545b1b51 Mon Sep 17 00:00:00 2001 From: Farouk Brown Date: Thu, 24 Apr 2025 22:14:02 +0100 Subject: [PATCH 07/94] doc: format descriptions --- modules/plugins/assistant/avante/avante-nvim.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/plugins/assistant/avante/avante-nvim.nix b/modules/plugins/assistant/avante/avante-nvim.nix index e616d421..3e101865 100644 --- a/modules/plugins/assistant/avante/avante-nvim.nix +++ b/modules/plugins/assistant/avante/avante-nvim.nix @@ -44,7 +44,8 @@ in { default = "claude"; description = '' Since auto-suggestions are a high-frequency operation and therefore expensive, - currently designating it as `copilot` provider is dangerous because: https://github.com/yetone/avante.nvim/issues/1048 + currently designating it as `copilot` provider is dangerous because: + https://github.com/yetone/avante.nvim/issues/1048 Of course, you can reduce the request frequency by increasing `suggestion.debounce`. ''; }; @@ -124,7 +125,10 @@ in { mkEnableOption "" // { default = false; - description = "Whether to support pasting image from clipboard. This will be determined automatically based whether img-clip is available or not."; + description = '' + Whether to support pasting image from clipboard. + This will be determined automatically based whether img-clip is available or not. + ''; }; minimize_diff = From 75fa8e22b645c68c611e7512578fe551bf773547 Mon Sep 17 00:00:00 2001 From: Farouk Brown Date: Thu, 24 Apr 2025 22:31:14 +0100 Subject: [PATCH 08/94] fix: lazy load avante.nvim plugin --- modules/plugins/assistant/avante/config.nix | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/modules/plugins/assistant/avante/config.nix b/modules/plugins/assistant/avante/config.nix index 1c975558..369ff24e 100644 --- a/modules/plugins/assistant/avante/config.nix +++ b/modules/plugins/assistant/avante/config.nix @@ -21,23 +21,12 @@ in { package = avante-nvim; setupModule = "avante"; inherit (cfg) setupOpts; - after = - /* - lua - */ - '' - vim.opt.laststatus = 3 - ''; + event = ["DeferredUIEnter"]; }; }; treesitter.enable = true; - autocomplete.nvim-cmp = { - sources = {"avante.nvim" = "[avante]";}; - sourcePlugins = ["avante-nvim"]; - }; - languages.markdown.extensions.render-markdown-nvim.setupOpts.file_types = lib.mkAfter ["Avante"]; }; }; From f8779d1968b74292146c7b15e3b8f066b492163f Mon Sep 17 00:00:00 2001 From: Farouk Brown Date: Thu, 24 Apr 2025 22:31:45 +0100 Subject: [PATCH 09/94] chore:set npins to follow nixpkgs avante version --- npins/sources.json | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/npins/sources.json b/npins/sources.json index 0fe81d49..d7e15028 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -27,17 +27,20 @@ "hash": "0c1jkhxamfn2md7m1r5b2wpxa26y90b98yzjwf68m3fymalvkn5h" }, "avante-nvim": { - "type": "Git", + "type": "GitRelease", "repository": { "type": "GitHub", "owner": "yetone", "repo": "avante.nvim" }, - "branch": "main", + "pre_releases": false, + "version_upper_bound": null, + "release_prefix": null, "submodules": false, - "revision": "eb1cd44731783024621beafe4e46204cbc9a4320", - "url": "https://github.com/yetone/avante.nvim/archive/eb1cd44731783024621beafe4e46204cbc9a4320.tar.gz", - "hash": "1hdb1b74mxq6j10fv0zh6fniwpijwbxjxc59k7xzkqj6q20lad07" + "version": "v0.0.23", + "revision": "868c13657442b799a5c161940602f99623a08197", + "url": "https://api.github.com/repos/yetone/avante.nvim/tarball/v0.0.23", + "hash": "11h0fch0whr2mh23940h3k7l6grnp5bqv2nyxywkg1zvj680vpji" }, "base16": { "type": "Git", From 64bee7e7292785c514e2889edb72d7c4c8da395b Mon Sep 17 00:00:00 2001 From: Farouk Brown Date: Sat, 26 Apr 2025 19:45:58 +0100 Subject: [PATCH 10/94] fix: set avante-nvim to build from source --- flake/legacyPackages.nix | 11 +++ flake/legacyPackages/avante-nvim.nix | 81 +++++++++++++++++++++ modules/plugins/assistant/avante/config.nix | 5 +- modules/wrapper/build/config.nix | 2 +- npins/sources.json | 13 ++-- 5 files changed, 100 insertions(+), 12 deletions(-) create mode 100644 flake/legacyPackages/avante-nvim.nix diff --git a/flake/legacyPackages.nix b/flake/legacyPackages.nix index 33aee0e3..0fbc269c 100644 --- a/flake/legacyPackages.nix +++ b/flake/legacyPackages.nix @@ -28,6 +28,17 @@ sha256 = pin.hash; }; }; + avante-nvim = let + pin = self.pins.avante-nvim; + in + final.callPackage ./legacyPackages/avante-nvim.nix { + version = pin.branch; + src = prev.fetchFromGitHub { + inherit (pin.repository) owner repo; + rev = pin.revision; + sha256 = pin.hash; + }; + }; }) ]; }; diff --git a/flake/legacyPackages/avante-nvim.nix b/flake/legacyPackages/avante-nvim.nix new file mode 100644 index 00000000..d54325d4 --- /dev/null +++ b/flake/legacyPackages/avante-nvim.nix @@ -0,0 +1,81 @@ +{ + nix-update-script, + openssl, + pkg-config, + rustPlatform, + stdenv, + vimPlugins, + vimUtils, + makeWrapper, + pkgs, + version, + src, +}: let + inherit version src; + avante-nvim-lib = rustPlatform.buildRustPackage { + pname = "avante-nvim-lib"; + inherit version src; + + useFetchCargoVendor = true; + cargoHash = "sha256-pmnMoNdaIR0i+4kwW3cf01vDQo39QakTCEG9AXA86ck="; + + nativeBuildInputs = [ + pkg-config + makeWrapper + pkgs.perl + ]; + + buildInputs = [ + openssl + ]; + + buildFeatures = ["luajit"]; + + checkFlags = [ + # Disabled because they access the network. + "--skip=test_hf" + "--skip=test_public_url" + "--skip=test_roundtrip" + "--skip=test_fetch_md" + ]; + }; +in + vimUtils.buildVimPlugin { + pname = "avante-nvim"; + inherit version src; + + dependencies = with vimPlugins; [ + dressing-nvim + img-clip-nvim + nui-nvim + nvim-treesitter + plenary-nvim + ]; + + postInstall = let + ext = stdenv.hostPlatform.extensions.sharedLibrary; + in '' + mkdir -p $out/build + ln -s ${avante-nvim-lib}/lib/libavante_repo_map${ext} $out/build/avante_repo_map${ext} + ln -s ${avante-nvim-lib}/lib/libavante_templates${ext} $out/build/avante_templates${ext} + ln -s ${avante-nvim-lib}/lib/libavante_tokenizers${ext} $out/build/avante_tokenizers${ext} + ln -s ${avante-nvim-lib}/lib/libavante_html2md${ext} $out/build/avante_html2md${ext} + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = "vimPlugins.avante-nvim.avante-nvim-lib"; + }; + + # needed for the update script + inherit avante-nvim-lib; + }; + + nvimSkipModules = [ + # Requires setup with corresponding provider + "avante.providers.azure" + "avante.providers.copilot" + "avante.providers.vertex_claude" + "avante.providers.ollama" + ]; + } diff --git a/modules/plugins/assistant/avante/config.nix b/modules/plugins/assistant/avante/config.nix index 369ff24e..bb97780f 100644 --- a/modules/plugins/assistant/avante/config.nix +++ b/modules/plugins/assistant/avante/config.nix @@ -1,5 +1,4 @@ { - pkgs, config, lib, ... @@ -17,8 +16,8 @@ in { ]; lazy.plugins = { - "avante.nvim" = with pkgs.vimPlugins; { - package = avante-nvim; + avante-nvim = { + package = "avante-nvim"; setupModule = "avante"; inherit (cfg) setupOpts; event = ["DeferredUIEnter"]; diff --git a/modules/wrapper/build/config.nix b/modules/wrapper/build/config.nix index 3b147571..4d331a67 100644 --- a/modules/wrapper/build/config.nix +++ b/modules/wrapper/build/config.nix @@ -51,7 +51,7 @@ doCheck = false; }; - inherit (inputs.self.legacyPackages.${pkgs.stdenv.system}) blink-cmp; + inherit (inputs.self.legacyPackages.${pkgs.stdenv.system}) blink-cmp avante-nvim; }; buildConfigPlugins = plugins: diff --git a/npins/sources.json b/npins/sources.json index d7e15028..a55ed2d1 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -27,20 +27,17 @@ "hash": "0c1jkhxamfn2md7m1r5b2wpxa26y90b98yzjwf68m3fymalvkn5h" }, "avante-nvim": { - "type": "GitRelease", + "type": "Git", "repository": { "type": "GitHub", "owner": "yetone", "repo": "avante.nvim" }, - "pre_releases": false, - "version_upper_bound": null, - "release_prefix": null, + "branch": "main", "submodules": false, - "version": "v0.0.23", - "revision": "868c13657442b799a5c161940602f99623a08197", - "url": "https://api.github.com/repos/yetone/avante.nvim/tarball/v0.0.23", - "hash": "11h0fch0whr2mh23940h3k7l6grnp5bqv2nyxywkg1zvj680vpji" + "revision": "f9aa75459d403d9e963ef2647c9791e0dfc9e5f9", + "url": "https://github.com/yetone/avante.nvim/archive/f9aa75459d403d9e963ef2647c9791e0dfc9e5f9.tar.gz", + "hash": "1qgdxapmw24zkx3d4cwv6f459p2a6dw7pvx7sa3650px2n75bb31" }, "base16": { "type": "Git", From 1768791402ae4112c08f71c077f65d035d672126 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sun, 16 Feb 2025 12:48:40 +0300 Subject: [PATCH 11/94] lib/languages: add `lspOptions` submodule type for freeform LSP config --- lib/languages.nix | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/lib/languages.nix b/lib/languages.nix index a202ff14..19171cc8 100644 --- a/lib/languages.nix +++ b/lib/languages.nix @@ -1,9 +1,10 @@ -# From home-manager: https://github.com/nix-community/home-manager/blob/master/modules/lib/booleans.nix {lib}: let inherit (builtins) isString getAttr; inherit (lib.options) mkOption; - inherit (lib.types) bool; + inherit (lib.types) listOf bool str submodule attrsOf anything; + inherit (lib.generators) mkLuaInline; inherit (lib.nvim.attrsets) mapListToAttrs; + inherit (lib.nvim.types) luaInline; in { diagnosticsToLua = { lang, @@ -32,4 +33,31 @@ in { type = bool; description = "Turn on ${desc} for enabled languages by default"; }; + + lspOptions = submodule { + freeformType = attrsOf anything; + options = { + capabilities = mkOption { + type = luaInline; + default = mkLuaInline "capabilities"; + description = "LSP capabilitiess to pass to lspconfig"; + }; + + on_attach = mkOption { + type = luaInline; + default = mkLuaInline "default_on_attach"; + description = "Function to execute when an LSP server attaches to a buffer"; + }; + + filetypes = mkOption { + type = listOf str; + description = "Filetypes to auto-attach LSP in"; + }; + + cmd = mkOption { + type = listOf str; + description = "Command used to start the LSP server"; + }; + }; + }; } From 159a0339024a3b3e34fa97f46eacb3d41cdbaf34 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 5 Apr 2025 22:47:10 +0300 Subject: [PATCH 12/94] lib/languages: add `root_marker` to `lspOptions` type --- lib/languages.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/languages.nix b/lib/languages.nix index 19171cc8..d7e30394 100644 --- a/lib/languages.nix +++ b/lib/languages.nix @@ -58,6 +58,14 @@ in { type = listOf str; description = "Command used to start the LSP server"; }; + + root_markers = mkOption { + type = listOf str; + description = '' + "root markers" used to determine the root directory of the workspace, and + the filetypes associated with this LSP server. + ''; + }; }; }; } From 35c432db3b76e898fec0f6e25f9e410e0807d9c4 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 5 Apr 2025 22:47:25 +0300 Subject: [PATCH 13/94] neovim/lsp: init --- modules/neovim/init/default.nix | 1 + modules/neovim/init/lsp.nix | 44 +++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 modules/neovim/init/lsp.nix diff --git a/modules/neovim/init/default.nix b/modules/neovim/init/default.nix index 0e7a4c6b..7db6f2ef 100644 --- a/modules/neovim/init/default.nix +++ b/modules/neovim/init/default.nix @@ -5,6 +5,7 @@ ./debug.nix ./diagnostics.nix ./highlight.nix + ./lsp.nix ./spellcheck.nix ]; } diff --git a/modules/neovim/init/lsp.nix b/modules/neovim/init/lsp.nix new file mode 100644 index 00000000..5dfd7a74 --- /dev/null +++ b/modules/neovim/init/lsp.nix @@ -0,0 +1,44 @@ +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.options) mkOption; + inherit (lib.types) attrsOf; + inherit (lib.strings) concatLines; + inherit (lib.attrsets) mapAttrsToList attrNames filterAttrs; + inherit (lib.nvim.languages) lspOptions; + inherit (lib.nvim.dag) entryAnywhere; + inherit (lib.nvim.lua) toLuaObject; + + cfg = config.vim.lsp; + + lspConfigurations = + mapAttrsToList ( + name: value: '' + vim.lsp.config["${name}"] = ${toLuaObject value} + '' + ) + cfg.servers; + + enabledServers = filterAttrs (_: u: u.enable) cfg.servers; +in { + options = { + vim.lsp.servers = mkOption { + type = attrsOf lspOptions; + default = {}; + description = ""; + }; + }; + + config = mkIf (cfg.servers != {}) { + vim.luaConfigRC.lsp-servers = entryAnywhere '' + -- Individual LSP configurations managed by nvf. + ${(concatLines lspConfigurations)} + + -- Enable configured LSPs explicitly + vim.lsp.enable(${toLuaObject (attrNames enabledServers)}) + ''; + }; +} From 52fb95ea6b93f37f40dc710d4b6a9df8685051ba Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 5 Apr 2025 23:17:18 +0300 Subject: [PATCH 14/94] lib/languages: add explicit enable to LSP submodule --- lib/languages.nix | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/lib/languages.nix b/lib/languages.nix index d7e30394..c4074144 100644 --- a/lib/languages.nix +++ b/lib/languages.nix @@ -1,11 +1,11 @@ {lib}: let inherit (builtins) isString getAttr; inherit (lib.options) mkOption; - inherit (lib.types) listOf bool str submodule attrsOf anything; - inherit (lib.generators) mkLuaInline; + inherit (lib.types) listOf bool str submodule attrsOf anything either nullOr; inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.types) luaInline; in { + # TODO: remove diagnosticsToLua = { lang, config, @@ -37,30 +37,39 @@ in { lspOptions = submodule { freeformType = attrsOf anything; options = { + enable = mkOption { + type = bool; + default = true; + description = "Whether to enable this LSP server."; + }; + capabilities = mkOption { - type = luaInline; - default = mkLuaInline "capabilities"; + type = nullOr (either luaInline (attrsOf anything)); + default = null; description = "LSP capabilitiess to pass to lspconfig"; }; on_attach = mkOption { - type = luaInline; - default = mkLuaInline "default_on_attach"; + type = nullOr luaInline; + default = null; description = "Function to execute when an LSP server attaches to a buffer"; }; filetypes = mkOption { - type = listOf str; + type = nullOr (listOf str); + default = null; description = "Filetypes to auto-attach LSP in"; }; cmd = mkOption { - type = listOf str; + type = nullOr (listOf str); + default = null; description = "Command used to start the LSP server"; }; root_markers = mkOption { - type = listOf str; + type = nullOr (listOf str); + default = null; description = '' "root markers" used to determine the root directory of the workspace, and the filetypes associated with this LSP server. From ea9075a07f285f31bd22e56c2182a0b9d52c961a Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Sun, 6 Apr 2025 01:18:39 +0200 Subject: [PATCH 15/94] lsp: add default fallback config --- modules/neovim/init/lsp.nix | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/modules/neovim/init/lsp.nix b/modules/neovim/init/lsp.nix index 5dfd7a74..6d3478c9 100644 --- a/modules/neovim/init/lsp.nix +++ b/modules/neovim/init/lsp.nix @@ -3,11 +3,13 @@ lib, ... }: let - inherit (lib.modules) mkIf; + inherit (builtins) filter; + inherit (lib.modules) mkIf mkMerge mkDefault; inherit (lib.options) mkOption; inherit (lib.types) attrsOf; inherit (lib.strings) concatLines; inherit (lib.attrsets) mapAttrsToList attrNames filterAttrs; + inherit (lib.generators) mkLuaInline; inherit (lib.nvim.languages) lspOptions; inherit (lib.nvim.dag) entryAnywhere; inherit (lib.nvim.lua) toLuaObject; @@ -32,13 +34,22 @@ in { }; }; - config = mkIf (cfg.servers != {}) { - vim.luaConfigRC.lsp-servers = entryAnywhere '' - -- Individual LSP configurations managed by nvf. - ${(concatLines lspConfigurations)} + config = mkMerge [ + { + vim.lsp.servers."*" = { + capabilities = mkDefault (mkLuaInline "capabilities"); + on_attach = mkDefault (mkLuaInline "default_on_attach"); + }; + } - -- Enable configured LSPs explicitly - vim.lsp.enable(${toLuaObject (attrNames enabledServers)}) - ''; - }; + (mkIf (cfg.servers != {}) { + vim.luaConfigRC.lsp-servers = entryAnywhere '' + -- Individual LSP configurations managed by nvf. + ${(concatLines lspConfigurations)} + + -- Enable configured LSPs explicitly + vim.lsp.enable(${toLuaObject (filter (name: name != "*") (attrNames enabledServers))}) + ''; + }) + ]; } From 9bd2a6dcb4d8f6f7231aa86f075447255aea812a Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sun, 27 Apr 2025 06:21:13 +0300 Subject: [PATCH 16/94] neovim/lsp: add LSP example; add description to servers option --- modules/neovim/init/lsp.nix | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/modules/neovim/init/lsp.nix b/modules/neovim/init/lsp.nix index 6d3478c9..faef0f93 100644 --- a/modules/neovim/init/lsp.nix +++ b/modules/neovim/init/lsp.nix @@ -30,7 +30,34 @@ in { vim.lsp.servers = mkOption { type = attrsOf lspOptions; default = {}; - description = ""; + example = '' + { + "*" = { + root_markers = [".git"]; + capabilities = { + textDocument = { + semanticTokens = { + multilineTokenSupport = true; + }; + }; + }; + }; + + "clangd" = { + filetypes = ["c"]; + }; + } + ''; + description = '' + LSP configurations that will be managed using `vim.lsp.config()` and + related utilities added in Neovim 0.11. LSPs defined here will be + added to the resulting {file}`init.lua` using `vim.lsp.config` and + enabled through `vim.lsp.enable` below the configuration table. + + You may review the generated configuration by running {command}`nvf-print-config` + in a shell. Please see {command}`:help lsp-config` for more details + on the underlying API. + ''; }; }; @@ -45,7 +72,7 @@ in { (mkIf (cfg.servers != {}) { vim.luaConfigRC.lsp-servers = entryAnywhere '' -- Individual LSP configurations managed by nvf. - ${(concatLines lspConfigurations)} + ${concatLines lspConfigurations} -- Enable configured LSPs explicitly vim.lsp.enable(${toLuaObject (filter (name: name != "*") (attrNames enabledServers))}) From c30f07fcd67a636e685259769bbb1ba18bbb8483 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sun, 27 Apr 2025 06:25:19 +0300 Subject: [PATCH 17/94] languages: set `enableLSP` to true while `vim.lsp` is enabled --- modules/plugins/languages/default.nix | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index c3312135..b889e60a 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -1,4 +1,8 @@ -{lib, ...}: let +{ + config, + lib, + ... +}: let inherit (lib.nvim.languages) mkEnable; in { imports = [ @@ -47,7 +51,11 @@ in { ]; options.vim.languages = { - enableLSP = mkEnable "LSP"; + # LSPs are now built into Neovim, and we should enable them by default + # if `vim.lsp.enable` is true. + enableLSP = mkEnable "LSP" // {default = config.vim.lsp.enable;}; + + # Those are still managed by plugins, and should be enabled here. enableDAP = mkEnable "Debug Adapter"; enableTreesitter = mkEnable "Treesitter"; enableFormat = mkEnable "Formatting"; From ea90d2baf381b30f8ea4116438f2c04f61b5cc3b Mon Sep 17 00:00:00 2001 From: haskex Date: Mon, 28 Apr 2025 12:16:53 -0300 Subject: [PATCH 18/94] Added HardTime.nvim plugin and added vim.binds.hardtime.enable and .setupOpts options --- configuration.nix | 3 +++ modules/plugins/utility/binds/default.nix | 1 + .../plugins/utility/binds/hardtime/config.nix | 21 +++++++++++++++++++ .../utility/binds/hardtime/default.nix | 6 ++++++ .../utility/binds/hardtime/hardtime.nix | 10 +++++++++ npins/sources.json | 13 ++++++++++++ 6 files changed, 54 insertions(+) create mode 100644 modules/plugins/utility/binds/hardtime/config.nix create mode 100644 modules/plugins/utility/binds/hardtime/default.nix create mode 100644 modules/plugins/utility/binds/hardtime/hardtime.nix diff --git a/configuration.nix b/configuration.nix index 011d6fae..f48af0b4 100644 --- a/configuration.nix +++ b/configuration.nix @@ -142,6 +142,9 @@ isMaximal: { binds = { whichKey.enable = true; cheatsheet.enable = true; + + # Remove this after test + hardtime.enable = true; }; telescope.enable = true; diff --git a/modules/plugins/utility/binds/default.nix b/modules/plugins/utility/binds/default.nix index 229423b8..43666cc9 100644 --- a/modules/plugins/utility/binds/default.nix +++ b/modules/plugins/utility/binds/default.nix @@ -2,5 +2,6 @@ _: { imports = [ ./which-key ./cheatsheet + ./hardtime ]; } diff --git a/modules/plugins/utility/binds/hardtime/config.nix b/modules/plugins/utility/binds/hardtime/config.nix new file mode 100644 index 00000000..7f2cde73 --- /dev/null +++ b/modules/plugins/utility/binds/hardtime/config.nix @@ -0,0 +1,21 @@ +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.nvim.lua) toLuaObject; + inherit (lib.nvim.dag) entryAnywhere; + + cfg = config.vim.binds.hardtime; +in { + config = mkIf cfg.enable { + vim = { + startPlugins = ["hardtime-nvim"]; + + pluginRC.hardtime = entryAnywhere '' + require("hardtime").setup (${toLuaObject cfg.setupOpts}) + ''; + }; + }; +} diff --git a/modules/plugins/utility/binds/hardtime/default.nix b/modules/plugins/utility/binds/hardtime/default.nix new file mode 100644 index 00000000..89aa11d3 --- /dev/null +++ b/modules/plugins/utility/binds/hardtime/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./hardtime.nix + ./config.nix + ]; +} diff --git a/modules/plugins/utility/binds/hardtime/hardtime.nix b/modules/plugins/utility/binds/hardtime/hardtime.nix new file mode 100644 index 00000000..c27c1c0d --- /dev/null +++ b/modules/plugins/utility/binds/hardtime/hardtime.nix @@ -0,0 +1,10 @@ +{lib, ...}: let + inherit (lib.options) mkEnableOption; + inherit (lib.nvim.types) mkPluginSetupOption; +in { + options.vim.binds.hardtime = { + enable = mkEnableOption "enable hardtime"; + + setupOpts = mkPluginSetupOption "hardtime-nvim" {}; + }; +} diff --git a/npins/sources.json b/npins/sources.json index 90a54057..5fe087f5 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -614,6 +614,19 @@ "url": "https://github.com/ellisonleao/gruvbox.nvim/archive/a933d8666dad9363dc6908ae72cfc832299c2f59.tar.gz", "hash": "02r2h0ip2vzmgmv9b36ff2r6br3ql0b9ggzl8ijsyjy7pgiij04y" }, + "hardtime-nvim": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "m4xshen", + "repo": "hardtime.nvim" + }, + "branch": "main", + "submodules": false, + "revision": "9aaec65de041bddfc4c0af66919030d2950bcea8", + "url": "https://github.com/m4xshen/hardtime.nvim/archive/9aaec65de041bddfc4c0af66919030d2950bcea8.tar.gz", + "hash": "1rmcl200a4m3ip3xjzhh7ghhh2961xj2mw7yf0w44jpvs98gqb18" + }, "harpoon": { "type": "Git", "repository": { From 878cf96f717cf71f8be2732ebd21698aeff499fa Mon Sep 17 00:00:00 2001 From: haskex Date: Mon, 28 Apr 2025 18:27:43 -0300 Subject: [PATCH 19/94] Changing from 'hardtime.enable = true' to 'hardtime.enable = isMaximal' in configuration.nix --- configuration.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/configuration.nix b/configuration.nix index f48af0b4..dce9534a 100644 --- a/configuration.nix +++ b/configuration.nix @@ -142,9 +142,7 @@ isMaximal: { binds = { whichKey.enable = true; cheatsheet.enable = true; - - # Remove this after test - hardtime.enable = true; + hardtime.enable = isMaximal; }; telescope.enable = true; From 5dff9537d1ccba729728c9633bddfee9dc82e4ca Mon Sep 17 00:00:00 2001 From: poz Date: Thu, 1 May 2025 00:09:53 +0200 Subject: [PATCH 20/94] plugins/gitsigns: fix null-ls issue --- docs/release-notes/rl-0.8.md | 4 ++++ modules/plugins/git/gitsigns/config.nix | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index edf90e62..294fd17b 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -352,3 +352,7 @@ [aionoid](https://github.com/aionoid): - Fix [render-markdown.nvim] file_types option type to list, to accept merging. + +[poz](https://poz.pet): + +- Fix gitsigns null-ls issue. diff --git a/modules/plugins/git/gitsigns/config.nix b/modules/plugins/git/gitsigns/config.nix index 99927546..f5d9f910 100644 --- a/modules/plugins/git/gitsigns/config.nix +++ b/modules/plugins/git/gitsigns/config.nix @@ -81,9 +81,11 @@ in { (mkIf cfg.codeActions.enable { vim.lsp.null-ls = { enable = true; - setupOpts.sources.gitsigns-ca = mkLuaInline '' - require("null-ls").builtins.code_actions.gitsigns - ''; + setupOpts.sources = [ + (mkLuaInline '' + require("null-ls").builtins.code_actions.gitsigns + '') + ]; }; }) ]); From eb4b990b4955fb0c51021e2513efc81fcb66a2a1 Mon Sep 17 00:00:00 2001 From: poz Date: Thu, 1 May 2025 00:26:04 +0200 Subject: [PATCH 21/94] release-notes: update jacekpoz to poz --- docs/release-notes/rl-0.5.md | 2 +- docs/release-notes/rl-0.6.md | 2 +- docs/release-notes/rl-0.7.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/release-notes/rl-0.5.md b/docs/release-notes/rl-0.5.md index 0ca02164..910c93d5 100644 --- a/docs/release-notes/rl-0.5.md +++ b/docs/release-notes/rl-0.5.md @@ -91,7 +91,7 @@ Release notes for release 0.5 - Updated indent-blankine.nvim to v3 - this comes with a few option changes, which will be migrated with `renamedOptionModule` -[jacekpoz](https://jacekpoz.pl): +[poz](https://poz.pet): - Fixed scrollOffset not being used diff --git a/docs/release-notes/rl-0.6.md b/docs/release-notes/rl-0.6.md index 1807a3e9..309d6b16 100644 --- a/docs/release-notes/rl-0.6.md +++ b/docs/release-notes/rl-0.6.md @@ -69,7 +69,7 @@ vim.api.nvim_set_keymap('n', 'a', ':lua camelToSnake()', { noremap = - Added rose-pine theme. -[jacekpoz](https://jacekpoz.pl): +[poz](https://poz.pet): - Added `vim.autocomplete.alwaysComplete`. Allows users to have the autocomplete window popup only when manually activated. diff --git a/docs/release-notes/rl-0.7.md b/docs/release-notes/rl-0.7.md index d62e3619..ed9d2d81 100644 --- a/docs/release-notes/rl-0.7.md +++ b/docs/release-notes/rl-0.7.md @@ -162,7 +162,7 @@ The changes are, in no particular order: - Add [lz.n] support and lazy-load some builtin plugins. - Add simpler helper functions for making keymaps -[jacekpoz](https://jacekpoz.pl): +[poz](https://poz.pet): [ocaml-lsp]: https://github.com/ocaml/ocaml-lsp [new-file-template.nvim]: https://github.com/otavioschwanck/new-file-template.nvim From 1f7405aaf7f9a70177a0f052df034f55f0591182 Mon Sep 17 00:00:00 2001 From: haskex Date: Wed, 30 Apr 2025 22:02:00 -0300 Subject: [PATCH 22/94] Changing options for hardtime plugin to hardtime-nvim, and adding the changelog --- configuration.nix | 2 +- docs/release-notes/rl-0.8.md | 5 +++++ modules/plugins/utility/binds/hardtime/config.nix | 2 +- modules/plugins/utility/binds/hardtime/hardtime.nix | 4 ++-- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/configuration.nix b/configuration.nix index dce9534a..caefcc34 100644 --- a/configuration.nix +++ b/configuration.nix @@ -142,7 +142,7 @@ isMaximal: { binds = { whichKey.enable = true; cheatsheet.enable = true; - hardtime.enable = isMaximal; + hardtime-nvim.enable = isMaximal; }; telescope.enable = true; diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 294fd17b..3610aea8 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -356,3 +356,8 @@ [poz](https://poz.pet): - Fix gitsigns null-ls issue. + +[Haskex](https://github.com/haskex): + +- Add Plugin [Hardtime.nvim](https://github.com/m4xshen/hardtime.nvim). +- Add option `vim.binds.hardtime-nvim` with `enable` and `setupOpts` options. diff --git a/modules/plugins/utility/binds/hardtime/config.nix b/modules/plugins/utility/binds/hardtime/config.nix index 7f2cde73..e8c315ef 100644 --- a/modules/plugins/utility/binds/hardtime/config.nix +++ b/modules/plugins/utility/binds/hardtime/config.nix @@ -7,7 +7,7 @@ inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.dag) entryAnywhere; - cfg = config.vim.binds.hardtime; + cfg = config.vim.binds.hardtime-nvim; in { config = mkIf cfg.enable { vim = { diff --git a/modules/plugins/utility/binds/hardtime/hardtime.nix b/modules/plugins/utility/binds/hardtime/hardtime.nix index c27c1c0d..56833b48 100644 --- a/modules/plugins/utility/binds/hardtime/hardtime.nix +++ b/modules/plugins/utility/binds/hardtime/hardtime.nix @@ -2,8 +2,8 @@ inherit (lib.options) mkEnableOption; inherit (lib.nvim.types) mkPluginSetupOption; in { - options.vim.binds.hardtime = { - enable = mkEnableOption "enable hardtime"; + options.vim.binds.hardtime-nvim = { + enable = mkEnableOption "Hardtime - A Plugin for Blocks key repeats in Neovim."; setupOpts = mkPluginSetupOption "hardtime-nvim" {}; }; From cc2c412b884cbf2731296abecc3c97321b98db23 Mon Sep 17 00:00:00 2001 From: haskex Date: Thu, 1 May 2025 12:17:31 -0300 Subject: [PATCH 23/94] Changing plugin description and testing --- modules/plugins/utility/binds/hardtime/hardtime.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/plugins/utility/binds/hardtime/hardtime.nix b/modules/plugins/utility/binds/hardtime/hardtime.nix index 56833b48..b671ddcd 100644 --- a/modules/plugins/utility/binds/hardtime/hardtime.nix +++ b/modules/plugins/utility/binds/hardtime/hardtime.nix @@ -3,7 +3,7 @@ inherit (lib.nvim.types) mkPluginSetupOption; in { options.vim.binds.hardtime-nvim = { - enable = mkEnableOption "Hardtime - A Plugin for Blocks key repeats in Neovim."; + enable = mkEnableOption "hardtime helper for no repeat keybinds"; setupOpts = mkPluginSetupOption "hardtime-nvim" {}; }; From 028bd7b4cb2c6ce2070e5b3aba0680f107b86616 Mon Sep 17 00:00:00 2001 From: Jhuan Nycolas <168754963+haskex@users.noreply.github.com> Date: Thu, 1 May 2025 15:10:00 -0300 Subject: [PATCH 24/94] Update rl-0.8.md --- docs/release-notes/rl-0.8.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 3610aea8..80a0300c 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -359,5 +359,6 @@ [Haskex](https://github.com/haskex): -- Add Plugin [Hardtime.nvim](https://github.com/m4xshen/hardtime.nvim). -- Add option `vim.binds.hardtime-nvim` with `enable` and `setupOpts` options. +[Hardtime.nvim]: https://github.com/m4xshen/hardtime.nvim + +- Add Plugin [Hardtime.nvim] under `vim.binds.hardtime-nvim` with `enable` and `setupOpts` options From dda89a2d9cf4c112f50f1c31853245ef1391eda3 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 3 May 2025 04:01:04 +0300 Subject: [PATCH 25/94] wrapper/options: fix description for `enableLuaLoader` --- modules/wrapper/rc/options.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/wrapper/rc/options.nix b/modules/wrapper/rc/options.nix index 10abd77d..02729401 100644 --- a/modules/wrapper/rc/options.nix +++ b/modules/wrapper/rc/options.nix @@ -11,13 +11,14 @@ in { description = '' [official documentation]: https://neovim.io/doc/user/lua.html#vim.loader.enable() - the experimental Lua module loader to speed up the start up process + Whethere to enable the experimental Lua module loader to speed up the start + up process. If `true`, this will enable the experimental Lua module loader + which: - If `true`, this will enable the experimental Lua module loader which: - - overrides loadfile - - adds the lua loader using the byte-compilation cache - - adds the libs loader - - removes the default Neovim loader + * overrides loadfile + * adds the lua loader using the byte-compilation cache + * adds the libs loader + * removes the default Neovim loader ::: {.note} The Lua module loader is *disabled* by default. Before setting this option, please From c7e49f370392a332cedb1855e3abb9406cae7c31 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 3 May 2025 08:40:51 +0300 Subject: [PATCH 26/94] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 65243865..307d3d7a 100644 --- a/flake.lock +++ b/flake.lock @@ -38,11 +38,11 @@ }, "mnw": { "locked": { - "lastModified": 1745705214, - "narHash": "sha256-XGfaHbFI4vvDuaoVO3IFYZKezXIO8rhUaMCGcjY71Ac=", + "lastModified": 1746230955, + "narHash": "sha256-X32sM3RQ3X2y6PzfNnX3rhUAlhuITdDOdfSrwZXjlsQ=", "owner": "Gerg-L", "repo": "mnw", - "rev": "c1f4587db4c53dcefa432c46c7a899a116d8e924", + "rev": "2a1678ba8e4807bd855dd0da94ea2bef5bca733d", "type": "github" }, "original": { @@ -77,11 +77,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1745377448, - "narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=", + "lastModified": 1746152631, + "narHash": "sha256-zBuvmL6+CUsk2J8GINpyy8Hs1Zp4PP6iBWSmZ4SCQ/s=", "owner": "nixos", "repo": "nixpkgs", - "rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c", + "rev": "032bc6539bd5f14e9d0c51bd79cfe9a055b094c3", "type": "github" }, "original": { From eae1f306b88b6da72e7d2d79b9ffcb1527cf9c41 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 3 May 2025 08:40:58 +0300 Subject: [PATCH 27/94] pins: bump all plugins --- npins/sources.json | 164 ++++++++++++++++++++++----------------------- 1 file changed, 82 insertions(+), 82 deletions(-) diff --git a/npins/sources.json b/npins/sources.json index 04c35ede..be2b74bb 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -50,10 +50,10 @@ "version_upper_bound": null, "release_prefix": null, "submodules": false, - "version": "v1.1.1", - "revision": "fe2e1d3e4498d60c5ce7440ff60f79f0920e34bf", - "url": "https://api.github.com/repos/saghen/blink.cmp/tarball/v1.1.1", - "hash": "0l2m4162vk6xqrx5v0zh1b5p6wrr1jailq1995f101isyjygikan" + "version": "v1.2.0", + "revision": "d72a826e1961e14f91d8867d10a27a89c5cfe748", + "url": "https://api.github.com/repos/saghen/blink.cmp/tarball/v1.2.0", + "hash": "01phyx7y26p2123xpdp0zfp45rc8f014a8myxn2ga71m514vr9vc" }, "blink-cmp-spell": { "type": "Git", @@ -103,9 +103,9 @@ }, "branch": "main", "submodules": false, - "revision": "89c4d158bc6d6ca03b4059452f2f9ffaa850db8a", - "url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/89c4d158bc6d6ca03b4059452f2f9ffaa850db8a.tar.gz", - "hash": "04xh5hzbzvm0nvipsy0cw7k1vb1kcrb09xiw0j66cqddjvvpv6zk" + "revision": "0a2c3c1ce8c3c56e7490cae835a981d5dbeb472c", + "url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/0a2c3c1ce8c3c56e7490cae835a981d5dbeb472c.tar.gz", + "hash": "11wc0qdalz7fb6zpdvrdib1bx3qyvcbn3hr0h57plspln55rjhl5" }, "bufdelete-nvim": { "type": "Git", @@ -129,9 +129,9 @@ }, "branch": "main", "submodules": false, - "revision": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429", - "url": "https://github.com/catppuccin/nvim/archive/5b5e3aef9ad7af84f463d17b5479f06b87d5c429.tar.gz", - "hash": "0jmrwag2dx4b1g9x32xwxcr8y0l159hqks09z5miy99wav6dy7z2" + "revision": "b7bbdf93b42866f166af98d39a2563eedb7cabac", + "url": "https://github.com/catppuccin/nvim/archive/b7bbdf93b42866f166af98d39a2563eedb7cabac.tar.gz", + "hash": "0f8wcpig84kihbz31w0hap4qs5gsdvch4sk2krn29v3k5bh3kcv0" }, "ccc-nvim": { "type": "Git", @@ -272,9 +272,9 @@ }, "branch": "main", "submodules": false, - "revision": "c861811f8b825d30c0343951336d2bb8c8f6d990", - "url": "https://github.com/olimorris/codecompanion.nvim/archive/c861811f8b825d30c0343951336d2bb8c8f6d990.tar.gz", - "hash": "0a1mzwh07lhrx893w7xdlhgiivbrwqp7a0b9wkdrna99x8kd9d77" + "revision": "e55bbf5f6969ab41414d3fd68011366d3b80d024", + "url": "https://github.com/olimorris/codecompanion.nvim/archive/e55bbf5f6969ab41414d3fd68011366d3b80d024.tar.gz", + "hash": "12jas52gh1dl33ir0bkxpqnfxjdkwh7h03qvfk1b3qk2fmr0abqn" }, "codewindow-nvim": { "type": "Git", @@ -350,9 +350,9 @@ }, "branch": "main", "submodules": false, - "revision": "73d2c590c74a0c582144987a4decb4a642755859", - "url": "https://github.com/Saecki/crates.nvim/archive/73d2c590c74a0c582144987a4decb4a642755859.tar.gz", - "hash": "08dyl4blgi0lb3s0jbl4jcpr4j1ncyrdvxjkrqmhqcg6bmwl7iqy" + "revision": "2c8f4fab02e3e9ea42c6ad9b547e4207a914a397", + "url": "https://github.com/Saecki/crates.nvim/archive/2c8f4fab02e3e9ea42c6ad9b547e4207a914a397.tar.gz", + "hash": "0ddlm94v3gh1znacghvfpfmkgv6js9i62gf7mlqcrpz8snpf879s" }, "csharpls-extended-lsp-nvim": { "type": "Git", @@ -363,9 +363,9 @@ }, "branch": "master", "submodules": false, - "revision": "53c6dfc9790d262edd3d6a4483294bedf53d70f5", - "url": "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/archive/53c6dfc9790d262edd3d6a4483294bedf53d70f5.tar.gz", - "hash": "0hy3jaq5lq72yfvy77hijp8wzpbad7a1xfwrdljzbpm4w5j59dm2" + "revision": "c1edd1eaad2e649d3de8121337e3c515ac6db46e", + "url": "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/archive/c1edd1eaad2e649d3de8121337e3c515ac6db46e.tar.gz", + "hash": "03sjrkay6c6ivd9zpm7isa9izxsvspkvbvy7f61nl020splhbl9m" }, "dashboard-nvim": { "type": "Git", @@ -376,9 +376,9 @@ }, "branch": "master", "submodules": false, - "revision": "b0551fae871fc39454a67cca1adcf76fbe2f61f9", - "url": "https://github.com/glepnir/dashboard-nvim/archive/b0551fae871fc39454a67cca1adcf76fbe2f61f9.tar.gz", - "hash": "0m67ij62dwnzyspyckhqvcsk81nvc16gx8zphghw4w2w4vl9lsrj" + "revision": "591b5b29e2f17b97496ec3179f6ecd08bb8502cc", + "url": "https://github.com/glepnir/dashboard-nvim/archive/591b5b29e2f17b97496ec3179f6ecd08bb8502cc.tar.gz", + "hash": "1f9ii3scd3zh4fch6h0mfmnfjx2fk6y4v3qc0cijk1vnyp2fm9qc" }, "diffview-nvim": { "type": "Git", @@ -454,9 +454,9 @@ }, "branch": "main", "submodules": false, - "revision": "2f2e8d7010a0e5e725957828476b4e1625eaf82c", - "url": "https://github.com/Chaitanyabsprip/fastaction.nvim/archive/2f2e8d7010a0e5e725957828476b4e1625eaf82c.tar.gz", - "hash": "0m2qplldlcgzb6n5lwnwiac5n56zpyf3df015abfwrwba95zflfv" + "revision": "41545d9d02a53d03b5f4da5881e8f30a7dc16031", + "url": "https://github.com/Chaitanyabsprip/fastaction.nvim/archive/41545d9d02a53d03b5f4da5881e8f30a7dc16031.tar.gz", + "hash": "1is587xa1b2fim4s3qc13ggwgpm02y4dmh64l4xjh6gyilh3fmkb" }, "fidget-nvim": { "type": "Git", @@ -506,9 +506,9 @@ }, "branch": "main", "submodules": false, - "revision": "fc8f183479a472df60aa86f00e295462f2308178", - "url": "https://github.com/rafamadriz/friendly-snippets/archive/fc8f183479a472df60aa86f00e295462f2308178.tar.gz", - "hash": "1clmyxkw0gk9p9j72d75byws75vi3r7d04wica2dq5i0zkk49b27" + "revision": "572f5660cf05f8cd8834e096d7b4c921ba18e175", + "url": "https://github.com/rafamadriz/friendly-snippets/archive/572f5660cf05f8cd8834e096d7b4c921ba18e175.tar.gz", + "hash": "08q7vs7p4grav819b6hl5y9zla8bbb461b6m1w0mjz6n6rqjjc0p" }, "fzf-lua": { "type": "Git", @@ -519,9 +519,9 @@ }, "branch": "main", "submodules": false, - "revision": "b11467c3fbfe48e4a815e4909f5c4e5b413ce6d0", - "url": "https://github.com/ibhagwan/fzf-lua/archive/b11467c3fbfe48e4a815e4909f5c4e5b413ce6d0.tar.gz", - "hash": "1yjfyz0fchibyb6wnnyxarn2v4fxxfvf9vy1pyvfc7mz5b4mzwc2" + "revision": "1cc70fb29e63ff26acba1e0cbca04705f8a485f1", + "url": "https://github.com/ibhagwan/fzf-lua/archive/1cc70fb29e63ff26acba1e0cbca04705f8a485f1.tar.gz", + "hash": "032y3djil7bsb2h0sv5a0a1qg805j5p2jxxp01jcpmn870b6mcjd" }, "gesture-nvim": { "type": "Git", @@ -584,9 +584,9 @@ }, "branch": "main", "submodules": false, - "revision": "9cd665f46ab7af2e49d140d328b8e72ea1cf511b", - "url": "https://github.com/lewis6991/gitsigns.nvim/archive/9cd665f46ab7af2e49d140d328b8e72ea1cf511b.tar.gz", - "hash": "110ykgvd3hbjq8ilz1yvfcic1jpqzyz4r13dswmpv7nvsi7a2lb5" + "revision": "1796c7cedfe7e5dd20096c5d7b8b753d8f8d22eb", + "url": "https://github.com/lewis6991/gitsigns.nvim/archive/1796c7cedfe7e5dd20096c5d7b8b753d8f8d22eb.tar.gz", + "hash": "0xzmj3z3rd1zxv5hc87ncmnrzm6653ffaif9xkpvnc3n8l81ybsn" }, "glow-nvim": { "type": "Git", @@ -610,9 +610,9 @@ }, "branch": "main", "submodules": false, - "revision": "c54db7f7e67832fbdd0ac14633f62c8a6997ddcf", - "url": "https://github.com/ellisonleao/gruvbox.nvim/archive/c54db7f7e67832fbdd0ac14633f62c8a6997ddcf.tar.gz", - "hash": "0i7dh2d3l1w6bga6gpfssam7w1qkd84q3cxyscdfsf4j9z4b62l2" + "revision": "91a0f8e460197a521d42a2e84a7a2a4010be4bbb", + "url": "https://github.com/ellisonleao/gruvbox.nvim/archive/91a0f8e460197a521d42a2e84a7a2a4010be4bbb.tar.gz", + "hash": "1bmxps0wawyvwyzcwzdxbf1wcqx6v7h6afj3yzgb38gz649wr8q7" }, "harpoon": { "type": "Git", @@ -636,9 +636,9 @@ }, "branch": "master", "submodules": false, - "revision": "fda0e5082ecc1c9e892f38b715d6f61e8829081d", - "url": "https://github.com/mrcjkb/haskell-tools.nvim/archive/fda0e5082ecc1c9e892f38b715d6f61e8829081d.tar.gz", - "hash": "0hi0ww7q0j042ssjk7x3d4s4vaninawpw3s0yrv1c4l1q5v6gnz1" + "revision": "3bec28d8b0006be596497a5e1a03bda6ef6131cf", + "url": "https://github.com/mrcjkb/haskell-tools.nvim/archive/3bec28d8b0006be596497a5e1a03bda6ef6131cf.tar.gz", + "hash": "1kf3w7x8awa4iiw7ab8xfjh6fq47yvv6h2rmfw0jf8s99fvgarj2" }, "highlight-undo-nvim": { "type": "Git", @@ -834,9 +834,9 @@ }, "branch": "master", "submodules": false, - "revision": "c9b9a22904c97d0eb69ccb9bab76037838326817", - "url": "https://github.com/L3MON4D3/LuaSnip/archive/c9b9a22904c97d0eb69ccb9bab76037838326817.tar.gz", - "hash": "03anxdspqz7ylq4239jyr9y51mw5qw1lkccyvfhj6wfk43jjdryx" + "revision": "7351d673f430e89f11962dc45b7360d6a0a26d2d", + "url": "https://github.com/L3MON4D3/LuaSnip/archive/7351d673f430e89f11962dc45b7360d6a0a26d2d.tar.gz", + "hash": "0dd42ss93cppq3cp27336gail955lckqqc6bafkmawplxh93qn1q" }, "lz-n": { "type": "Git", @@ -1477,9 +1477,9 @@ }, "branch": "main", "submodules": false, - "revision": "299e174c3b8373c9c1f9be0bc3967c852712d0f3", - "url": "https://github.com/nvim-neo-tree/neo-tree.nvim/archive/299e174c3b8373c9c1f9be0bc3967c852712d0f3.tar.gz", - "hash": "0vm7hbcqj548pvl9vfmzsgpx73lmrnmhp399bprizg87zn73m005" + "revision": "71bfdeddc90225e281ce34c378dc1b5914f5018d", + "url": "https://github.com/nvim-neo-tree/neo-tree.nvim/archive/71bfdeddc90225e281ce34c378dc1b5914f5018d.tar.gz", + "hash": "0cm4y2idpmf7i6daa4wl5b6n5ldzqr3pqmh29rc645c1xk2y0b80" }, "neocord": { "type": "Git", @@ -1503,9 +1503,9 @@ }, "branch": "main", "submodules": false, - "revision": "35da593c55d78086a3203ee3e6d749fafe2e4e73", - "url": "https://github.com/nvim-neorg/neorg/archive/35da593c55d78086a3203ee3e6d749fafe2e4e73.tar.gz", - "hash": "0kxygwpfffa0blcy54g7cvm5laj77q0f72p69s43j9dpsps1h63y" + "revision": "8fdd9b2986acfb4ce310bebfc338111793862f00", + "url": "https://github.com/nvim-neorg/neorg/archive/8fdd9b2986acfb4ce310bebfc338111793862f00.tar.gz", + "hash": "0xv3aasbhambywp6idhz44nlsh3hlarw3j7wwx7wn1whm6xbwvf6" }, "neorg-telescope": { "type": "Git", @@ -1581,9 +1581,9 @@ }, "branch": "main", "submodules": false, - "revision": "751349f21bdf1acf7af091fead456866bf9a7e7d", - "url": "https://github.com/nvimtools/none-ls.nvim/archive/751349f21bdf1acf7af091fead456866bf9a7e7d.tar.gz", - "hash": "1zhqyjs914ib1yq42xq3aphw8pl4168h2k3ybm92z00ahi51kbqn" + "revision": "a49f5a79cdb76e0dc1a98899c8598f4db014c5e7", + "url": "https://github.com/nvimtools/none-ls.nvim/archive/a49f5a79cdb76e0dc1a98899c8598f4db014c5e7.tar.gz", + "hash": "0x16saxsr3w3ivqpdjg05bkyfxzsiyfpsiwhyzsvqxg1qnkda3b2" }, "nord": { "type": "Git", @@ -1763,9 +1763,9 @@ }, "branch": "master", "submodules": false, - "revision": "641e567f975feab3815b47c7d29e6148e07afa77", - "url": "https://github.com/neovim/nvim-lspconfig/archive/641e567f975feab3815b47c7d29e6148e07afa77.tar.gz", - "hash": "1238hk6v3mm6hzjbipz60rva7crv95h2vzg6ph9wzplq52kzryav" + "revision": "46434074f188e6bfccf9d9153dd8be6b1381498b", + "url": "https://github.com/neovim/nvim-lspconfig/archive/46434074f188e6bfccf9d9153dd8be6b1381498b.tar.gz", + "hash": "0h13n1vjw6v8gp41yfc6qffbwwrxw81vcilkmxx9sim6671w5pzp" }, "nvim-metals": { "type": "Git", @@ -1789,9 +1789,9 @@ }, "branch": "master", "submodules": false, - "revision": "f22bac988f2dd073601d75ba39ea5636ab6e38cb", - "url": "https://github.com/SmiteshP/nvim-navbuddy/archive/f22bac988f2dd073601d75ba39ea5636ab6e38cb.tar.gz", - "hash": "034pmg403y0y1fxnb1jv291mr016bx1vn68y543v6v4dpbdlr7di" + "revision": "a34786c77a528519f6b8a142db7609f6e387842d", + "url": "https://github.com/SmiteshP/nvim-navbuddy/archive/a34786c77a528519f6b8a142db7609f6e387842d.tar.gz", + "hash": "0b6bazh531bixskpmmpkidqii4n3m7n2cp9bmzml5wb0wibazcac" }, "nvim-navic": { "type": "Git", @@ -1802,9 +1802,9 @@ }, "branch": "master", "submodules": false, - "revision": "39231352aec0d1e09cebbffdd9dc20a5dc691ffe", - "url": "https://github.com/SmiteshP/nvim-navic/archive/39231352aec0d1e09cebbffdd9dc20a5dc691ffe.tar.gz", - "hash": "1xj2bzax8hynm2x9zbvsaxv1j22chklyygzm1kbqxxs077qn45ws" + "revision": "d0a8c17c4dc721b00bc2ac305c6ffbb036beeb74", + "url": "https://github.com/SmiteshP/nvim-navic/archive/d0a8c17c4dc721b00bc2ac305c6ffbb036beeb74.tar.gz", + "hash": "0mxsnwvrjirpy2ichsilx6207z55xi42syg5d3fdgs2r1p1npggc" }, "nvim-neoclip-lua": { "type": "Git", @@ -1919,9 +1919,9 @@ }, "branch": "main", "submodules": false, - "revision": "d4c8bdb06b7a589f004a53bf710196967752c63d", - "url": "https://github.com/kevinhwang91/nvim-ufo/archive/d4c8bdb06b7a589f004a53bf710196967752c63d.tar.gz", - "hash": "11zcr6vvj6gm5di63w55ccvwf2x7his8v9v8bingsz6l6n79dk6v" + "revision": "cac999ec9f6302d2fd4ad8a846bf8f731af6e7cf", + "url": "https://github.com/kevinhwang91/nvim-ufo/archive/cac999ec9f6302d2fd4ad8a846bf8f731af6e7cf.tar.gz", + "hash": "14lvlv1wmbpw0dpyfz3gq7k760ip1903w5ibajqiaflw06afv4pn" }, "nvim-web-devicons": { "type": "Git", @@ -1932,9 +1932,9 @@ }, "branch": "master", "submodules": false, - "revision": "50b5b06bff13a9b4eab946de7c7033649a6618a1", - "url": "https://github.com/nvim-tree/nvim-web-devicons/archive/50b5b06bff13a9b4eab946de7c7033649a6618a1.tar.gz", - "hash": "1jsrwcsyjwlzk2l3x417pr6s6cq4zk6b6k417hhmrprrw66ajdb6" + "revision": "2c2b4eafce6cdd0cb165036faa17396eff18f847", + "url": "https://github.com/nvim-tree/nvim-web-devicons/archive/2c2b4eafce6cdd0cb165036faa17396eff18f847.tar.gz", + "hash": "11yp02zg60gdmqa6rdk3rjn704k2kvjcs41w85y01b68k36w7pw2" }, "obsidian-nvim": { "type": "Git", @@ -1997,9 +1997,9 @@ }, "branch": "master", "submodules": false, - "revision": "27ab1cf9e7ae142f9e9ffb218be50dd920f04cb3", - "url": "https://github.com/nvim-orgmode/orgmode/archive/27ab1cf9e7ae142f9e9ffb218be50dd920f04cb3.tar.gz", - "hash": "176v9y36258jm8h3aaph57wgr6s7rgmgdnq9hgwialwn4bygfym0" + "revision": "15d66ead1285d99f8a21c4ef4874ac62e9320fe6", + "url": "https://github.com/nvim-orgmode/orgmode/archive/15d66ead1285d99f8a21c4ef4874ac62e9320fe6.tar.gz", + "hash": "05h766qj1vid5rs1mv8aiv6rsfrp0md9605sfr9vycip1rd8csgy" }, "otter-nvim": { "type": "Git", @@ -2127,9 +2127,9 @@ }, "branch": "main", "submodules": false, - "revision": "78ffe3b0500bbc7e37fabde723d96661538e8b32", - "url": "https://github.com/MeanderingProgrammer/render-markdown.nvim/archive/78ffe3b0500bbc7e37fabde723d96661538e8b32.tar.gz", - "hash": "00dn9cpdvm7dy4xyhaij2rs0g0l926cqvjn03v06sray3adbyij5" + "revision": "57c7f33f276876c994898683680da9e3a3590d0d", + "url": "https://github.com/MeanderingProgrammer/render-markdown.nvim/archive/57c7f33f276876c994898683680da9e3a3590d0d.tar.gz", + "hash": "1lfypdqyka5idrkr3w62vx7j6p75r3ld7sz5i40y41svglnxyrsj" }, "rose-pine": { "type": "Git", @@ -2140,9 +2140,9 @@ }, "branch": "main", "submodules": false, - "revision": "96ff3993a67356ee85d1cdab9be652cdc1c5d1ac", - "url": "https://github.com/rose-pine/neovim/archive/96ff3993a67356ee85d1cdab9be652cdc1c5d1ac.tar.gz", - "hash": "0p712rivi5i3zlrigm86p8vrn1nvg4qils86snlw717cq3scj9gj" + "revision": "614892e32e94378d976a238f287532cfe790c1fe", + "url": "https://github.com/rose-pine/neovim/archive/614892e32e94378d976a238f287532cfe790c1fe.tar.gz", + "hash": "1pi5z81xkgkx8yyfjfjj0hg66v2zcj04gxxbf5q2lqz70xcs3cgk" }, "rtp-nvim": { "type": "Git", @@ -2179,9 +2179,9 @@ }, "branch": "master", "submodules": false, - "revision": "3f2b7a94b7fa3c0f301dfa9644c94b543000efc2", - "url": "https://github.com/mrcjkb/rustaceanvim/archive/3f2b7a94b7fa3c0f301dfa9644c94b543000efc2.tar.gz", - "hash": "1y3x6m3yglkyv37xgli9k3dlw59yy3jbsp1phx75xqma1480dzy5" + "revision": "4b8c2edb55f548ed9c683f88dde2ffb235413b03", + "url": "https://github.com/mrcjkb/rustaceanvim/archive/4b8c2edb55f548ed9c683f88dde2ffb235413b03.tar.gz", + "hash": "0d3kwvwj5cppwypvg8iasn5f8rviqyskkgh1wafs7chjm32dm4gb" }, "smartcolumn-nvim": { "type": "Git", @@ -2377,9 +2377,9 @@ }, "branch": "master", "submodules": false, - "revision": "f985f5a4fbc410c9e5367f6b5863a8fa502e516d", - "url": "https://github.com/RRethy/vim-illuminate/archive/f985f5a4fbc410c9e5367f6b5863a8fa502e516d.tar.gz", - "hash": "0igx2i4k59vadhw7kgqvxjw9594n8p2n9yqszif9by8xq5gsd7g6" + "revision": "fbc16dee336d8cc0d3d2382ea4a53f4a29725abf", + "url": "https://github.com/RRethy/vim-illuminate/archive/fbc16dee336d8cc0d3d2382ea4a53f4a29725abf.tar.gz", + "hash": "072kgd7h7cjq4hskczxl60nsx3jpww9l7ypafcwk833ypahz899i" }, "vim-markdown": { "type": "Git", From 5278dab32b343762246dd8bfeaa34f4a21887bd8 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 3 May 2025 08:41:27 +0300 Subject: [PATCH 28/94] blink: 1.0.0 -> 1.2.0 --- flake/legacyPackages/blink-cmp.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake/legacyPackages/blink-cmp.nix b/flake/legacyPackages/blink-cmp.nix index 435cb290..60dce9de 100644 --- a/flake/legacyPackages/blink-cmp.nix +++ b/flake/legacyPackages/blink-cmp.nix @@ -14,7 +14,7 @@ env.RUSTC_BOOTSTRAP = true; useFetchCargoVendor = true; - cargoHash = "sha256-MWElqh7ENJ6CbLOnvz0DsP5YYu+e+y12GSUOfW1IKGU="; + cargoHash = "sha256-IDoDugtNWQovfSstbVMkKHLBXKa06lxRWmywu4zyS3M="; nativeBuildInputs = [gitMinimal]; }; From f7c35ab3422b35f3af422f4f896bd79a9ba30ee4 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 3 May 2025 08:51:48 +0300 Subject: [PATCH 29/94] packages: switch to blink-cmp in maximal configuration --- configuration.nix | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/configuration.nix b/configuration.nix index 011d6fae..10d6bbc7 100644 --- a/configuration.nix +++ b/configuration.nix @@ -23,7 +23,7 @@ isMaximal: { lightbulb.enable = true; lspsaga.enable = false; trouble.enable = true; - lspSignature.enable = true; + lspSignature.enable = !isMaximal; # conflicts with blink in maximal otter-nvim.enable = isMaximal; nvim-docs-view.enable = isMaximal; }; @@ -124,7 +124,15 @@ isMaximal: { autopairs.nvim-autopairs.enable = true; - autocomplete.nvim-cmp.enable = true; + # nvf provides various autocomplete options. The tried and tested nvim-cmp + # is enabled in default package, because it does not trigger a build. We + # enable blink-cmp in maximal because it needs to build its rust fuzzy + # matcher library. + autocomplete = { + nvim-cmp.enable = !isMaximal; + blink-cmp.enable = isMaximal; + }; + snippets.luasnip.enable = true; filetree = { From c5b72f124fdba697603f39e5c8168eac5780fc93 Mon Sep 17 00:00:00 2001 From: Gerg-L Date: Sat, 3 May 2025 18:32:58 -0400 Subject: [PATCH 30/94] chore: update mnw MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'mnw': 'github:Gerg-L/mnw/2a1678ba8e4807bd855dd0da94ea2bef5bca733d?narHash=sha256-X32sM3RQ3X2y6PzfNnX3rhUAlhuITdDOdfSrwZXjlsQ%3D' (2025-05-03) → 'github:Gerg-L/mnw/7b85a1922b0c5d78c03c4e53c82330715d1bf22b?narHash=sha256-g1XBeVvnM6P0QVxbjCEXyNl0aGd3YSf/hsVagUHB3qw%3D' (2025-05-03) --- flake.lock | 6 +++--- modules/wrapper/build/config.nix | 13 +++++-------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/flake.lock b/flake.lock index 307d3d7a..65cee2ae 100644 --- a/flake.lock +++ b/flake.lock @@ -38,11 +38,11 @@ }, "mnw": { "locked": { - "lastModified": 1746230955, - "narHash": "sha256-X32sM3RQ3X2y6PzfNnX3rhUAlhuITdDOdfSrwZXjlsQ=", + "lastModified": 1746338991, + "narHash": "sha256-GbyoHjf14LOxZQc+0NFblI4xf/uwGrYo3W8lwE4HcwI=", "owner": "Gerg-L", "repo": "mnw", - "rev": "2a1678ba8e4807bd855dd0da94ea2bef5bca733d", + "rev": "c65407ee9387ef75985dad3e30f58c822c766ec1", "type": "github" }, "original": { diff --git a/modules/wrapper/build/config.nix b/modules/wrapper/build/config.nix index 3b147571..61ba1513 100644 --- a/modules/wrapper/build/config.nix +++ b/modules/wrapper/build/config.nix @@ -62,17 +62,14 @@ filter (f: f != null) plugins ); - # built (or "normalized") plugins that are modified - builtStartPlugins = buildConfigPlugins config.vim.startPlugins; - builtOptPlugins = map (package: package // {optional = true;}) ( - buildConfigPlugins config.vim.optPlugins - ); - # Wrap the user's desired (unwrapped) Neovim package with arguments that'll be used to # generate a wrapped Neovim package. - neovim-wrapped = inputs.mnw.lib.wrap pkgs { + neovim-wrapped = inputs.mnw.lib.wrap {inherit pkgs;} { neovim = config.vim.package; - plugins = builtStartPlugins ++ builtOptPlugins; + plugins = { + start = buildConfigPlugins config.vim.startPlugins; + opt = buildConfigPlugins config.vim.optPlugins; + }; appName = "nvf"; extraBinPath = config.vim.extraPackages; initLua = config.vim.builtLuaConfigRC; From 140cfea20505136b6306ddde31802842501da0d6 Mon Sep 17 00:00:00 2001 From: Noah765 Date: Sun, 4 May 2025 15:00:21 +0200 Subject: [PATCH 31/94] ui/breadcrumbs: add missing navbuddy mappings --- modules/plugins/ui/breadcrumbs/breadcrumbs.nix | 18 ++++++++++++++++++ modules/plugins/ui/breadcrumbs/config.nix | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/modules/plugins/ui/breadcrumbs/breadcrumbs.nix b/modules/plugins/ui/breadcrumbs/breadcrumbs.nix index 2faee6c8..716883aa 100644 --- a/modules/plugins/ui/breadcrumbs/breadcrumbs.nix +++ b/modules/plugins/ui/breadcrumbs/breadcrumbs.nix @@ -215,6 +215,24 @@ in { description = "move focused node up"; }; + togglePreview = mkOption { + type = str; + default = "s"; + description = "show preview of current node"; + }; + + vsplit = mkOption { + type = str; + default = ""; + description = "open selected node in a vertical split"; + }; + + hsplit = mkOption { + type = str; + default = ""; + description = "open selected node in a horizontal split"; + }; + telescope = mkOption { type = str; default = "t"; diff --git a/modules/plugins/ui/breadcrumbs/config.nix b/modules/plugins/ui/breadcrumbs/config.nix index 747a7773..324501a5 100644 --- a/modules/plugins/ui/breadcrumbs/config.nix +++ b/modules/plugins/ui/breadcrumbs/config.nix @@ -64,6 +64,11 @@ in { ${cfg.navbuddy.mappings.moveDown} = mkLuaInline "actions.move_down()"; ${cfg.navbuddy.mappings.moveUp} = mkLuaInline "actions.move_up()"; + ${cfg.navbuddy.mappings.togglePreview} = mkLuaInline "actions.toggle_preview()"; + + ${cfg.navbuddy.mappings.vsplit} = mkLuaInline "actions.vsplit()"; + ${cfg.navbuddy.mappings.hsplit} = mkLuaInline "actions.hsplit()"; + ${cfg.navbuddy.mappings.telescope} = mkLuaInline '' actions.telescope({ layout_strategy = "horizontal", From d783fa0b27886e833dbcdf9eb734bb76b97ec70b Mon Sep 17 00:00:00 2001 From: Noah765 Date: Sun, 4 May 2025 15:29:27 +0200 Subject: [PATCH 32/94] ui/breadcrumbs: remove unused attribute --- modules/plugins/ui/breadcrumbs/breadcrumbs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/plugins/ui/breadcrumbs/breadcrumbs.nix b/modules/plugins/ui/breadcrumbs/breadcrumbs.nix index 716883aa..0d5a3162 100644 --- a/modules/plugins/ui/breadcrumbs/breadcrumbs.nix +++ b/modules/plugins/ui/breadcrumbs/breadcrumbs.nix @@ -4,7 +4,7 @@ ... }: let inherit (lib.options) mkOption mkEnableOption; - inherit (lib.types) nullOr listOf enum bool str int either; + inherit (lib.types) nullOr listOf enum bool str int; inherit (lib.modules) mkRenamedOptionModule; inherit (lib.nvim.types) mkPluginSetupOption borderType; mkSimpleIconOption = default: From c2380761d1e230278c5f7bb34586e52dc22f263d Mon Sep 17 00:00:00 2001 From: Noah765 Date: Sun, 4 May 2025 15:30:17 +0200 Subject: [PATCH 33/94] ui/breadcrumbs: clean up the option descriptions --- .../plugins/ui/breadcrumbs/breadcrumbs.nix | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/modules/plugins/ui/breadcrumbs/breadcrumbs.nix b/modules/plugins/ui/breadcrumbs/breadcrumbs.nix index 0d5a3162..72351ecc 100644 --- a/modules/plugins/ui/breadcrumbs/breadcrumbs.nix +++ b/modules/plugins/ui/breadcrumbs/breadcrumbs.nix @@ -74,7 +74,7 @@ in { ::: {.note} This will pass `draw_empty` to the `nvim_navic` winbar component, which causes the component to be drawn even - if it's empty + if it's empty. ::: ''; }; @@ -86,163 +86,163 @@ in { close = mkOption { type = str; default = ""; - description = "keybinding to close Navbuddy UI"; + description = "Close and return the cursor to its original location."; }; nextSibling = mkOption { type = str; default = "j"; - description = "keybinding to navigate to the next sibling node"; + description = "Navigate to the next sibling node."; }; previousSibling = mkOption { type = str; default = "k"; - description = "keybinding to navigate to the previous sibling node"; + description = "Navigate to the previous sibling node."; }; parent = mkOption { type = str; default = "h"; - description = "keybinding to navigate to the parent node"; + description = "Navigate to the parent node."; }; children = mkOption { type = str; default = "l"; - description = "keybinding to navigate to the child node"; + description = "Navigate to the child node."; }; root = mkOption { type = str; default = "0"; - description = "keybinding to navigate to the root node"; + description = "Navigate to the root node."; }; visualName = mkOption { type = str; default = "v"; - description = "visual selection of name"; + description = "Select the name visually."; }; visualScope = mkOption { type = str; default = "V"; - description = "visual selection of scope"; + description = "Select the scope visually."; }; yankName = mkOption { type = str; default = "y"; - description = "yank the name to system clipboard"; + description = "Yank the name to system clipboard."; }; yankScope = mkOption { type = str; default = "Y"; - description = "yank the scope to system clipboard"; + description = "Yank the scope to system clipboard."; }; insertName = mkOption { type = str; default = "i"; - description = "insert at start of name"; + description = "Insert at the start of name."; }; insertScope = mkOption { type = str; default = "I"; - description = "insert at start of scope"; + description = "Insert at the start of scope."; }; appendName = mkOption { type = str; default = "a"; - description = "insert at end of name"; + description = "Insert at the end of name."; }; appendScope = mkOption { type = str; default = "A"; - description = "insert at end of scope"; + description = "Insert at the end of scope."; }; rename = mkOption { type = str; default = "r"; - description = "rename the node"; + description = "Rename the node."; }; delete = mkOption { type = str; default = "d"; - description = "delete the node"; + description = "Delete the node."; }; foldCreate = mkOption { type = str; default = "f"; - description = "create a new fold"; + description = "Create a new fold of the node."; }; foldDelete = mkOption { type = str; default = "F"; - description = "delete the current fold"; + description = "Delete the current fold of the node."; }; comment = mkOption { type = str; default = "c"; - description = "comment the node"; + description = "Comment the node."; }; select = mkOption { type = str; default = ""; - description = "goto selected symbol"; + description = "Goto the node."; }; moveDown = mkOption { type = str; default = "J"; - description = "move focused node down"; + description = "Move the node down."; }; moveUp = mkOption { type = str; default = "K"; - description = "move focused node up"; + description = "Move the node up."; }; togglePreview = mkOption { type = str; default = "s"; - description = "show preview of current node"; + description = "Toggle the preview."; }; vsplit = mkOption { type = str; default = ""; - description = "open selected node in a vertical split"; + description = "Open the node in a vertical split."; }; hsplit = mkOption { type = str; default = ""; - description = "open selected node in a horizontal split"; + description = "Open the node in a horizontal split."; }; telescope = mkOption { type = str; default = "t"; - description = "fuzzy finder at current level"; + description = "Start fuzzy finder at the current level."; }; help = mkOption { type = str; default = "g?"; - description = "open mapping help window"; + description = "Open the mappings help window."; }; }; @@ -250,7 +250,7 @@ in { useDefaultMappings = mkOption { type = bool; default = true; - description = "use default Navbuddy keybindings (disables user-specified keybinds)"; + description = "Add the default Navbuddy keybindings in addition to the keybinding added by this module."; }; window = { @@ -260,13 +260,13 @@ in { border = mkOption { type = borderType; default = config.vim.ui.borders.globalStyle; - description = "border style to use"; + description = "The border style to use."; }; scrolloff = mkOption { type = nullOr int; default = null; - description = "Scrolloff value within navbuddy window"; + description = "The scrolloff value within a navbuddy window."; }; sections = { @@ -283,7 +283,7 @@ in { border = mkOption { type = borderType; default = config.vim.ui.borders.globalStyle; - description = "border style to use for the left section of Navbuddy UI"; + description = "The border style to use for the left section of the Navbuddy UI."; }; }; @@ -300,7 +300,7 @@ in { border = mkOption { type = borderType; default = config.vim.ui.borders.globalStyle; - description = "border style to use for the middle section of Navbuddy UI"; + description = "The border style to use for the middle section of the Navbuddy UI."; }; }; @@ -310,13 +310,13 @@ in { border = mkOption { type = borderType; default = config.vim.ui.borders.globalStyle; - description = "border style to use for the right section of Navbuddy UI"; + description = "The border style to use for the right section of the Navbuddy UI."; }; preview = mkOption { type = enum ["leaf" "always" "never"]; default = "leaf"; - description = "display mode of the preview on the right section"; + description = "The display mode of the preview on the right section."; }; }; }; @@ -335,13 +335,13 @@ in { auto_attach = mkOption { type = bool; default = true; - description = "Whether to attach to LSP server manually"; + description = "Whether to attach to LSP server manually."; }; preference = mkOption { type = nullOr (listOf str); default = null; - description = "list of lsp server names in order of preference"; + description = "The preference list ranking LSP servers."; }; }; @@ -349,25 +349,25 @@ in { followNode = mkOption { type = bool; default = true; - description = "keep the current node in focus on the source buffer"; + description = "Whether to keep the current node in focus in the source buffer."; }; highlight = mkOption { type = bool; default = true; - description = "highlight the currently focused node"; + description = "Whether to highlight the currently focused node in the source buffer."; }; reorient = mkOption { type = enum ["smart" "top" "mid" "none"]; default = "smart"; - description = "reorient buffer after changing nodes"; + description = "The mode for reorienting the source buffer after moving nodes."; }; scrolloff = mkOption { type = nullOr int; default = null; - description = "scrolloff value when navbuddy is open"; + description = "The scrolloff value in the source buffer when Navbuddy is open."; }; }; From 1ed6fd9f58f4df669edc55284becd1a90e1b3a47 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sun, 4 May 2025 17:58:22 +0300 Subject: [PATCH 34/94] languages: deprecate `vim.languages.enableLSP` This change is done in favor of our intentions to use the new API Neovim has exposed, and the one we are exposing to match theirs. --- configuration.nix | 7 ++- flake/templates/standalone/flake.nix | 12 ++++- modules/neovim/init/lsp.nix | 65 +++++++++++++++---------- modules/plugins/languages/asm.nix | 2 +- modules/plugins/languages/astro.nix | 2 +- modules/plugins/languages/bash.nix | 2 +- modules/plugins/languages/clang.nix | 2 +- modules/plugins/languages/csharp.nix | 2 +- modules/plugins/languages/css.nix | 2 +- modules/plugins/languages/cue.nix | 2 +- modules/plugins/languages/dart.nix | 2 +- modules/plugins/languages/default.nix | 14 ++---- modules/plugins/languages/elixir.nix | 2 +- modules/plugins/languages/fsharp.nix | 2 +- modules/plugins/languages/gleam.nix | 2 +- modules/plugins/languages/go.nix | 2 +- modules/plugins/languages/haskell.nix | 2 +- modules/plugins/languages/hcl.nix | 2 +- modules/plugins/languages/helm.nix | 2 +- modules/plugins/languages/java.nix | 2 +- modules/plugins/languages/julia.nix | 2 +- modules/plugins/languages/kotlin.nix | 2 +- modules/plugins/languages/lua.nix | 2 +- modules/plugins/languages/markdown.nix | 2 +- modules/plugins/languages/nim.nix | 2 +- modules/plugins/languages/nix.nix | 2 +- modules/plugins/languages/nu.nix | 2 +- modules/plugins/languages/ocaml.nix | 2 +- modules/plugins/languages/odin.nix | 2 +- modules/plugins/languages/php.nix | 2 +- modules/plugins/languages/python.nix | 2 +- modules/plugins/languages/r.nix | 2 +- modules/plugins/languages/ruby.nix | 2 +- modules/plugins/languages/rust.nix | 2 +- modules/plugins/languages/scala.nix | 2 +- modules/plugins/languages/sql.nix | 2 +- modules/plugins/languages/svelte.nix | 2 +- modules/plugins/languages/tailwind.nix | 2 +- modules/plugins/languages/terraform.nix | 2 +- modules/plugins/languages/ts.nix | 2 +- modules/plugins/languages/typst.nix | 2 +- modules/plugins/languages/vala.nix | 2 +- modules/plugins/languages/wgsl.nix | 2 +- modules/plugins/languages/yaml.nix | 2 +- modules/plugins/languages/zig.nix | 2 +- modules/plugins/lsp/module.nix | 3 +- 46 files changed, 102 insertions(+), 81 deletions(-) diff --git a/configuration.nix b/configuration.nix index 6629810d..6e3175ef 100644 --- a/configuration.nix +++ b/configuration.nix @@ -18,6 +18,10 @@ isMaximal: { }; lsp = { + # This must be enabled for the language modules to hook into + # the LSP API. + enable = true; + formatOnSave = true; lspkind.enable = false; lightbulb.enable = true; @@ -38,8 +42,7 @@ isMaximal: { # This section does not include a comprehensive list of available language modules. # To list all available language module options, please visit the nvf manual. languages = { - enableLSP = true; - enableFormat = true; + enableFormat = true; # enableTreesitter = true; enableExtraDiagnostics = true; diff --git a/flake/templates/standalone/flake.nix b/flake/templates/standalone/flake.nix index 79617260..1057a6d5 100644 --- a/flake/templates/standalone/flake.nix +++ b/flake/templates/standalone/flake.nix @@ -26,12 +26,22 @@ config.vim = { theme.enable = true; + lsp = { + # Enable LSP functionality globally. This is required for modules found + # in `vim.languages` to enable relevant LSPs. + enable = true; + + # You may define your own LSP configurations using `vim.lsp.servers` in + # nvf without ever needing lspconfig to do it. This will use the native + # API provided by Neovim > 0.11 + servers = {}; + }; + # Language support and automatic configuration of companion plugins. # Note that enabling, e.g., languages..diagnostics will automatically # enable top-level options such as enableLSP or enableExtraDiagnostics as # they are needed. languages = { - enableLSP = true; enableFormat = true; enableTreesitter = true; enableExtraDiagnostics = true; diff --git a/modules/neovim/init/lsp.nix b/modules/neovim/init/lsp.nix index faef0f93..b89c3fde 100644 --- a/modules/neovim/init/lsp.nix +++ b/modules/neovim/init/lsp.nix @@ -5,7 +5,7 @@ }: let inherit (builtins) filter; inherit (lib.modules) mkIf mkMerge mkDefault; - inherit (lib.options) mkOption; + inherit (lib.options) mkOption mkEnableOption; inherit (lib.types) attrsOf; inherit (lib.strings) concatLines; inherit (lib.attrsets) mapAttrsToList attrNames filterAttrs; @@ -27,37 +27,48 @@ enabledServers = filterAttrs (_: u: u.enable) cfg.servers; in { options = { - vim.lsp.servers = mkOption { - type = attrsOf lspOptions; - default = {}; - example = '' - { - "*" = { - root_markers = [".git"]; - capabilities = { - textDocument = { - semanticTokens = { - multilineTokenSupport = true; + vim.lsp = { + enable = mkEnableOption '' + global LSP functionality for Neovim. + + This option controls whether to enable LSP functionality within modules under + {option}`vim.languages`. You do not need to set this to `true` for language + servers defined in {option}`vim.lsp.servers` to take effect, since they are + enabled automatically. + ''; + + servers = mkOption { + type = attrsOf lspOptions; + default = {}; + example = '' + { + "*" = { + root_markers = [".git"]; + capabilities = { + textDocument = { + semanticTokens = { + multilineTokenSupport = true; + }; }; }; }; - }; - "clangd" = { - filetypes = ["c"]; - }; - } - ''; - description = '' - LSP configurations that will be managed using `vim.lsp.config()` and - related utilities added in Neovim 0.11. LSPs defined here will be - added to the resulting {file}`init.lua` using `vim.lsp.config` and - enabled through `vim.lsp.enable` below the configuration table. + "clangd" = { + filetypes = ["c"]; + }; + } + ''; + description = '' + LSP configurations that will be managed using `vim.lsp.config()` and related + utilities added in Neovim 0.11. LSPs defined here will be added to the + resulting {file}`init.lua` using `vim.lsp.config` and enabled through + `vim.lsp.enable()` API from Neovim below the configuration table. - You may review the generated configuration by running {command}`nvf-print-config` - in a shell. Please see {command}`:help lsp-config` for more details - on the underlying API. - ''; + You may review the generated configuration by running {command}`nvf-print-config` + in a shell. Please see {command}`:help lsp-config` for more details + on the underlying API. + ''; + }; }; }; diff --git a/modules/plugins/languages/asm.nix b/modules/plugins/languages/asm.nix index a0e96cef..9fe58a76 100644 --- a/modules/plugins/languages/asm.nix +++ b/modules/plugins/languages/asm.nix @@ -20,7 +20,7 @@ in { }; lsp = { - enable = mkEnableOption "Assembly LSP support (asm-lsp)" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Assembly LSP support (asm-lsp)" // {default = config.vim.lsp.enable;}; package = mkOption { type = package; diff --git a/modules/plugins/languages/astro.nix b/modules/plugins/languages/astro.nix index 2ecbbe47..b7a69bda 100644 --- a/modules/plugins/languages/astro.nix +++ b/modules/plugins/languages/astro.nix @@ -81,7 +81,7 @@ in { }; lsp = { - enable = mkEnableOption "Astro LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Astro LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/bash.nix b/modules/plugins/languages/bash.nix index bfe01032..e02596cf 100644 --- a/modules/plugins/languages/bash.nix +++ b/modules/plugins/languages/bash.nix @@ -56,7 +56,7 @@ in { }; lsp = { - enable = mkEnableOption "Enable Bash LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Enable Bash LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "Bash LSP server to use"; diff --git a/modules/plugins/languages/clang.nix b/modules/plugins/languages/clang.nix index bb30cc95..2db178e9 100644 --- a/modules/plugins/languages/clang.nix +++ b/modules/plugins/languages/clang.nix @@ -98,7 +98,7 @@ in { }; lsp = { - enable = mkEnableOption "clang LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "clang LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "The clang LSP server to use"; diff --git a/modules/plugins/languages/csharp.nix b/modules/plugins/languages/csharp.nix index af7f36e0..49ae4985 100644 --- a/modules/plugins/languages/csharp.nix +++ b/modules/plugins/languages/csharp.nix @@ -91,7 +91,7 @@ in { }; lsp = { - enable = mkEnableOption "C# LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "C# LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "C# LSP server to use"; type = enum (attrNames servers); diff --git a/modules/plugins/languages/css.nix b/modules/plugins/languages/css.nix index d103f241..0147fba3 100644 --- a/modules/plugins/languages/css.nix +++ b/modules/plugins/languages/css.nix @@ -80,7 +80,7 @@ in { }; lsp = { - enable = mkEnableOption "CSS LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "CSS LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "CSS LSP server to use"; diff --git a/modules/plugins/languages/cue.nix b/modules/plugins/languages/cue.nix index 313e3233..bd446cbf 100644 --- a/modules/plugins/languages/cue.nix +++ b/modules/plugins/languages/cue.nix @@ -21,7 +21,7 @@ in { }; lsp = { - enable = mkEnableOption "CUE LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "CUE LSP support" // {default = config.vim.lsp.enable;}; package = mkOption { type = package; diff --git a/modules/plugins/languages/dart.nix b/modules/plugins/languages/dart.nix index 7b9584b9..9cbd0783 100644 --- a/modules/plugins/languages/dart.nix +++ b/modules/plugins/languages/dart.nix @@ -77,7 +77,7 @@ in { flutter-tools = { enable = mkOption { type = bool; - default = config.vim.languages.enableLSP; + default = config.vim.lsp.enable; description = "Enable flutter-tools for flutter support"; }; diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index b889e60a..25b99080 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -1,8 +1,5 @@ -{ - config, - lib, - ... -}: let +{lib, ...}: let + inherit (lib.modules) mkRenamedOptionModule; inherit (lib.nvim.languages) mkEnable; in { imports = [ @@ -48,13 +45,12 @@ in { ./wgsl.nix ./yaml.nix ./ruby.nix + + # This is now a hard deprecation. + (mkRenamedOptionModule ["vim" "languages" "enableLSP"] ["vim" "lsp" "enable"]) ]; options.vim.languages = { - # LSPs are now built into Neovim, and we should enable them by default - # if `vim.lsp.enable` is true. - enableLSP = mkEnable "LSP" // {default = config.vim.lsp.enable;}; - # Those are still managed by plugins, and should be enabled here. enableDAP = mkEnable "Debug Adapter"; enableTreesitter = mkEnable "Treesitter"; diff --git a/modules/plugins/languages/elixir.nix b/modules/plugins/languages/elixir.nix index 7b3a0256..241efd8e 100644 --- a/modules/plugins/languages/elixir.nix +++ b/modules/plugins/languages/elixir.nix @@ -53,7 +53,7 @@ in { }; lsp = { - enable = mkEnableOption "Elixir LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Elixir LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "Elixir LSP server to use"; diff --git a/modules/plugins/languages/fsharp.nix b/modules/plugins/languages/fsharp.nix index 966b0349..6ed0ccab 100644 --- a/modules/plugins/languages/fsharp.nix +++ b/modules/plugins/languages/fsharp.nix @@ -51,7 +51,7 @@ in { }; lsp = { - enable = mkEnableOption "F# LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "F# LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { type = enum (attrNames servers); default = defaultServer; diff --git a/modules/plugins/languages/gleam.nix b/modules/plugins/languages/gleam.nix index 284d3443..272ef51e 100644 --- a/modules/plugins/languages/gleam.nix +++ b/modules/plugins/languages/gleam.nix @@ -41,7 +41,7 @@ in { }; lsp = { - enable = mkEnableOption "Gleam LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Gleam LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/go.nix b/modules/plugins/languages/go.nix index 3f232669..bab0ff4a 100644 --- a/modules/plugins/languages/go.nix +++ b/modules/plugins/languages/go.nix @@ -67,7 +67,7 @@ in { }; lsp = { - enable = mkEnableOption "Go LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Go LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "Go LSP server to use"; diff --git a/modules/plugins/languages/haskell.nix b/modules/plugins/languages/haskell.nix index ff6c7d78..f50c9f09 100644 --- a/modules/plugins/languages/haskell.nix +++ b/modules/plugins/languages/haskell.nix @@ -25,7 +25,7 @@ in { }; lsp = { - enable = mkEnableOption "LSP support for Haskell" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "LSP support for Haskell" // {default = config.vim.lsp.enable;}; package = mkOption { description = "Haskell LSP package or command to run the Haskell LSP"; example = ''[ (lib.getExe pkgs.haskellPackages.haskell-language-server) "--debug" ]''; diff --git a/modules/plugins/languages/hcl.nix b/modules/plugins/languages/hcl.nix index 3a3db782..e702170c 100644 --- a/modules/plugins/languages/hcl.nix +++ b/modules/plugins/languages/hcl.nix @@ -43,7 +43,7 @@ in { }; lsp = { - enable = mkEnableOption "HCL LSP support (terraform-ls)" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "HCL LSP support (terraform-ls)" // {default = config.vim.lsp.enable;}; # TODO: (maybe, is it better?) it would be cooler to use vscode-extensions.hashicorp.hcl probably, shouldn't be too hard package = mkOption { type = package; diff --git a/modules/plugins/languages/helm.nix b/modules/plugins/languages/helm.nix index d3fd636e..ffe115c9 100644 --- a/modules/plugins/languages/helm.nix +++ b/modules/plugins/languages/helm.nix @@ -54,7 +54,7 @@ in { }; lsp = { - enable = mkEnableOption "Helm LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Helm LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "Helm LSP server to use"; diff --git a/modules/plugins/languages/java.nix b/modules/plugins/languages/java.nix index dc46fcfe..2e26feea 100644 --- a/modules/plugins/languages/java.nix +++ b/modules/plugins/languages/java.nix @@ -23,7 +23,7 @@ in { }; lsp = { - enable = mkEnableOption "Java LSP support (java-language-server)" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Java LSP support (java-language-server)" // {default = config.vim.lsp.enable;}; package = mkOption { description = "java language server package, or the command to run as a list of strings"; example = ''[lib.getExe pkgs.jdt-language-server "-data" "~/.cache/jdtls/workspace"]''; diff --git a/modules/plugins/languages/julia.nix b/modules/plugins/languages/julia.nix index aa537df9..8c48b070 100644 --- a/modules/plugins/languages/julia.nix +++ b/modules/plugins/languages/julia.nix @@ -78,7 +78,7 @@ in { lsp = { enable = mkOption { type = bool; - default = config.vim.languages.enableLSP; + default = config.vim.lsp.enable; description = '' Whether to enable Julia LSP support. diff --git a/modules/plugins/languages/kotlin.nix b/modules/plugins/languages/kotlin.nix index 2ddc63e9..1118afdf 100644 --- a/modules/plugins/languages/kotlin.nix +++ b/modules/plugins/languages/kotlin.nix @@ -30,7 +30,7 @@ in { }; lsp = { - enable = mkEnableOption "Kotlin LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Kotlin LSP support" // {default = config.vim.lsp.enable;}; package = mkOption { description = "kotlin_language_server package with Kotlin runtime"; diff --git a/modules/plugins/languages/lua.nix b/modules/plugins/languages/lua.nix index d5be4905..9f56cbea 100644 --- a/modules/plugins/languages/lua.nix +++ b/modules/plugins/languages/lua.nix @@ -43,7 +43,7 @@ in { }; lsp = { - enable = mkEnableOption "Lua LSP support via LuaLS" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Lua LSP support via LuaLS" // {default = config.vim.lsp.enable;}; package = mkOption { description = "LuaLS package, or the command to run as a list of strings"; diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index 4563bc44..eeb80e8d 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -67,7 +67,7 @@ in { }; lsp = { - enable = mkEnableOption "Enable Markdown LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Enable Markdown LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/nim.nix b/modules/plugins/languages/nim.nix index 69288223..d9a29e37 100644 --- a/modules/plugins/languages/nim.nix +++ b/modules/plugins/languages/nim.nix @@ -54,7 +54,7 @@ in { }; lsp = { - enable = mkEnableOption "Nim LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Nim LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "Nim LSP server to use"; type = str; diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix index ad16a34e..83022adf 100644 --- a/modules/plugins/languages/nix.nix +++ b/modules/plugins/languages/nix.nix @@ -143,7 +143,7 @@ in { }; lsp = { - enable = mkEnableOption "Nix LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Nix LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "Nix LSP server to use"; type = enum (attrNames servers); diff --git a/modules/plugins/languages/nu.nix b/modules/plugins/languages/nu.nix index eab0385c..bd007fc8 100644 --- a/modules/plugins/languages/nu.nix +++ b/modules/plugins/languages/nu.nix @@ -40,7 +40,7 @@ in { }; lsp = { - enable = mkEnableOption "Nu LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Nu LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { type = str; default = defaultServer; diff --git a/modules/plugins/languages/ocaml.nix b/modules/plugins/languages/ocaml.nix index 568b846e..995ca04d 100644 --- a/modules/plugins/languages/ocaml.nix +++ b/modules/plugins/languages/ocaml.nix @@ -49,7 +49,7 @@ in { }; lsp = { - enable = mkEnableOption "OCaml LSP support (ocaml-lsp)" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "OCaml LSP support (ocaml-lsp)" // {default = config.vim.lsp.enable;}; server = mkOption { description = "OCaml LSP server to user"; type = enum (attrNames servers); diff --git a/modules/plugins/languages/odin.nix b/modules/plugins/languages/odin.nix index 7a32db93..6d20351c 100644 --- a/modules/plugins/languages/odin.nix +++ b/modules/plugins/languages/odin.nix @@ -41,7 +41,7 @@ in { }; lsp = { - enable = mkEnableOption "Odin LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Odin LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/php.nix b/modules/plugins/languages/php.nix index 4dccc8cd..61ff0425 100644 --- a/modules/plugins/languages/php.nix +++ b/modules/plugins/languages/php.nix @@ -95,7 +95,7 @@ in { }; lsp = { - enable = mkEnableOption "PHP LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "PHP LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "PHP LSP server to use"; diff --git a/modules/plugins/languages/python.nix b/modules/plugins/languages/python.nix index 9905716e..bec7ec8b 100644 --- a/modules/plugins/languages/python.nix +++ b/modules/plugins/languages/python.nix @@ -169,7 +169,7 @@ in { }; lsp = { - enable = mkEnableOption "Python LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Python LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "Python LSP server to use"; diff --git a/modules/plugins/languages/r.nix b/modules/plugins/languages/r.nix index fcadcc37..894c63f6 100644 --- a/modules/plugins/languages/r.nix +++ b/modules/plugins/languages/r.nix @@ -79,7 +79,7 @@ in { }; lsp = { - enable = mkEnableOption "R LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "R LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "R LSP server to use"; diff --git a/modules/plugins/languages/ruby.nix b/modules/plugins/languages/ruby.nix index 2f42aa4f..ab0e0905 100644 --- a/modules/plugins/languages/ruby.nix +++ b/modules/plugins/languages/ruby.nix @@ -57,7 +57,7 @@ in { }; lsp = { - enable = mkEnableOption "Ruby LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Ruby LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/rust.nix b/modules/plugins/languages/rust.nix index 2181623a..677f7d3b 100644 --- a/modules/plugins/languages/rust.nix +++ b/modules/plugins/languages/rust.nix @@ -43,7 +43,7 @@ in { }; lsp = { - enable = mkEnableOption "Rust LSP support (rust-analyzer with extra tools)" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Rust LSP support (rust-analyzer with extra tools)" // {default = config.vim.lsp.enable;}; package = mkOption { description = "rust-analyzer package, or the command to run as a list of strings"; example = ''[lib.getExe pkgs.jdt-language-server "-data" "~/.cache/jdtls/workspace"]''; diff --git a/modules/plugins/languages/scala.nix b/modules/plugins/languages/scala.nix index f769d092..b5382415 100644 --- a/modules/plugins/languages/scala.nix +++ b/modules/plugins/languages/scala.nix @@ -33,7 +33,7 @@ in { }; lsp = { - enable = mkEnableOption "Scala LSP support (metals)" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Scala LSP support (metals)" // {default = config.vim.lsp.enable;}; package = mkPackageOption pkgs "metals" { default = ["metals"]; }; diff --git a/modules/plugins/languages/sql.nix b/modules/plugins/languages/sql.nix index 277dbeef..add46c15 100644 --- a/modules/plugins/languages/sql.nix +++ b/modules/plugins/languages/sql.nix @@ -79,7 +79,7 @@ in { }; lsp = { - enable = mkEnableOption "SQL LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "SQL LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "SQL LSP server to use"; diff --git a/modules/plugins/languages/svelte.nix b/modules/plugins/languages/svelte.nix index 536ff2c1..08a807c7 100644 --- a/modules/plugins/languages/svelte.nix +++ b/modules/plugins/languages/svelte.nix @@ -77,7 +77,7 @@ in { }; lsp = { - enable = mkEnableOption "Svelte LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Svelte LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "Svelte LSP server to use"; diff --git a/modules/plugins/languages/tailwind.nix b/modules/plugins/languages/tailwind.nix index 594f6d9d..fbe707ba 100644 --- a/modules/plugins/languages/tailwind.nix +++ b/modules/plugins/languages/tailwind.nix @@ -35,7 +35,7 @@ in { enable = mkEnableOption "Tailwindcss language support"; lsp = { - enable = mkEnableOption "Tailwindcss LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Tailwindcss LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "Tailwindcss LSP server to use"; diff --git a/modules/plugins/languages/terraform.nix b/modules/plugins/languages/terraform.nix index 33bb9357..095da072 100644 --- a/modules/plugins/languages/terraform.nix +++ b/modules/plugins/languages/terraform.nix @@ -20,7 +20,7 @@ in { }; lsp = { - enable = mkEnableOption "Terraform LSP support (terraform-ls)" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Terraform LSP support (terraform-ls)" // {default = config.vim.lsp.enable;}; package = mkOption { description = "terraform-ls package"; diff --git a/modules/plugins/languages/ts.nix b/modules/plugins/languages/ts.nix index df1353ab..5a1e5889 100644 --- a/modules/plugins/languages/ts.nix +++ b/modules/plugins/languages/ts.nix @@ -120,7 +120,7 @@ in { }; lsp = { - enable = mkEnableOption "Typescript/Javascript LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Typescript/Javascript LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "Typescript/Javascript LSP server to use"; diff --git a/modules/plugins/languages/typst.nix b/modules/plugins/languages/typst.nix index 8c65ae2c..08a2252b 100644 --- a/modules/plugins/languages/typst.nix +++ b/modules/plugins/languages/typst.nix @@ -76,7 +76,7 @@ in { }; lsp = { - enable = mkEnableOption "Typst LSP support (typst-lsp)" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Typst LSP support (typst-lsp)" // {default = config.vim.lsp.enable;}; server = mkOption { description = "Typst LSP server to use"; diff --git a/modules/plugins/languages/vala.nix b/modules/plugins/languages/vala.nix index da65a372..220926d0 100644 --- a/modules/plugins/languages/vala.nix +++ b/modules/plugins/languages/vala.nix @@ -50,7 +50,7 @@ in { }; lsp = { - enable = mkEnableOption "Vala LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Vala LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { description = "Vala LSP server to use"; type = enum (attrNames servers); diff --git a/modules/plugins/languages/wgsl.nix b/modules/plugins/languages/wgsl.nix index 7c8a1016..f374543e 100644 --- a/modules/plugins/languages/wgsl.nix +++ b/modules/plugins/languages/wgsl.nix @@ -42,7 +42,7 @@ in { }; lsp = { - enable = mkEnableOption "WGSL LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "WGSL LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/yaml.nix b/modules/plugins/languages/yaml.nix index c84b17cd..7a1a4552 100644 --- a/modules/plugins/languages/yaml.nix +++ b/modules/plugins/languages/yaml.nix @@ -55,7 +55,7 @@ in { }; lsp = { - enable = mkEnableOption "YAML LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "YAML LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/languages/zig.nix b/modules/plugins/languages/zig.nix index 2aa0e2b6..89307eab 100644 --- a/modules/plugins/languages/zig.nix +++ b/modules/plugins/languages/zig.nix @@ -72,7 +72,7 @@ in { }; lsp = { - enable = mkEnableOption "Zig LSP support" // {default = config.vim.languages.enableLSP;}; + enable = mkEnableOption "Zig LSP support" // {default = config.vim.lsp.enable;}; server = mkOption { type = enum (attrNames servers); diff --git a/modules/plugins/lsp/module.nix b/modules/plugins/lsp/module.nix index f408d873..6b63d725 100644 --- a/modules/plugins/lsp/module.nix +++ b/modules/plugins/lsp/module.nix @@ -3,11 +3,12 @@ inherit (lib.nvim.binds) mkMappingOption; in { options.vim.lsp = { - enable = mkEnableOption "LSP, also enabled automatically through null-ls and lspconfig options"; formatOnSave = mkEnableOption "format on save"; + inlayHints = { enable = mkEnableOption "inlay hints"; }; + mappings = { goToDefinition = mkMappingOption "Go to definition" From 4678f734111f341dc29b5f16adb8e084b97ded7e Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Mon, 28 Apr 2025 22:51:04 +0300 Subject: [PATCH 35/94] neovim/clipboard: init module --- docs/release-notes/rl-0.8.md | 6 ++- modules/neovim/init/clipboard.nix | 80 +++++++++++++++++++++++++++++++ modules/neovim/init/default.nix | 1 + 3 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 modules/neovim/init/clipboard.nix diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 80a0300c..f0f58e7c 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -91,6 +91,9 @@ options for `vim.diagnostic.config()` can now be customized through the [](#opt-vim.diagnostics.config) in nvf. +- Add `vim.clipboard` module for easily managing Neovim clipboard providers and + relevant packages in a simple UI. + [amadaluzia](https://github.com/amadaluzia): [haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim @@ -361,4 +364,5 @@ [Hardtime.nvim]: https://github.com/m4xshen/hardtime.nvim -- Add Plugin [Hardtime.nvim] under `vim.binds.hardtime-nvim` with `enable` and `setupOpts` options +- Add Plugin [Hardtime.nvim] under `vim.binds.hardtime-nvim` with `enable` and + `setupOpts` options diff --git a/modules/neovim/init/clipboard.nix b/modules/neovim/init/clipboard.nix new file mode 100644 index 00000000..011effaf --- /dev/null +++ b/modules/neovim/init/clipboard.nix @@ -0,0 +1,80 @@ +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.options) mkOption mkEnableOption mkPackageOption; + inherit (lib.types) nullOr either str listOf submodule; + inherit (lib.attrsets) mapAttrs mapAttrsToList filterAttrs; + cfg = config.vim.clipboard; +in { + options = { + vim = { + clipboard = { + enable = mkEnableOption '' + clipboard management for Neovim. Users may still choose to manage their + clipboard through [](#opt-vim.options) should they wish to avoid using + this module. + ''; + + registers = mkOption { + type = either str (listOf str); + default = ""; + example = "unnamedplus"; + description = '' + The register to be used by the Neovim clipboard. Recognized types are: + + * unnamed: Vim will use the clipboard register `"*"` for all yank, delete, + change and put operations which would normally go to the unnamed register. + + * unnamedplus: A variant of the "unnamed" flag which uses the clipboard register + `"+"` ({command}`:h quoteplus`) instead of register `"*"` for all yank, delete, + change and put operations which would normally go to the unnamed register. + + When `unnamed` and `unnamedplus` is included simultaneously yank and delete + operations (but not put) will additionally copy the text into register `"*"`. + + Please see {command}`:h clipboard` for more details. + + ''; + }; + + providers = mkOption { + type = submodule { + options = let + clipboards = { + # name = "package name"; + wl-copy = "wl-clipboard"; + xclip = "xclip"; + xsel = "xsel"; + }; + in + mapAttrs (name: pname: { + enable = mkEnableOption name; + package = mkPackageOption pkgs pname {nullable = true;}; + }) + clipboards; + }; + default = {}; + description = '' + Clipboard providers for which packages will be added to nvf's + {option}`extraPackages`. The `package` field may be set to `null` + if related packages are already found in system packages to + potentially reduce closure sizes. + ''; + }; + }; + }; + }; + + config = mkIf cfg.enable { + vim = { + options.clipboard = cfg.registers; + extraPackages = mapAttrsToList (_: v: v.package) ( + filterAttrs (_: v: v.enable && v.package != null) cfg.providers + ); + }; + }; +} diff --git a/modules/neovim/init/default.nix b/modules/neovim/init/default.nix index 7db6f2ef..30a481a1 100644 --- a/modules/neovim/init/default.nix +++ b/modules/neovim/init/default.nix @@ -2,6 +2,7 @@ imports = [ ./autocmds.nix ./basic.nix + ./clipboard.nix ./debug.nix ./diagnostics.nix ./highlight.nix From 69e75a00ed25a1708fca234a15bbd361e02ead73 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sun, 4 May 2025 18:22:47 +0300 Subject: [PATCH 36/94] neovim/basic: deprecate `vim.useSystemClipboard` --- docs/release-notes/rl-0.8.md | 7 +++++++ modules/extra/deprecations.nix | 9 +++++++++ modules/neovim/init/basic.nix | 10 ---------- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index f0f58e7c..014a4a23 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -19,6 +19,11 @@ unavailable as they have been refactored out of the main none-ls repository upstream. +- `vim.useSystemClipboard` has been deprecated as a part of removing most + top-level convenience options, and should instead be configured in the new + module interface. You may set [](#opt-vim.clipboard.registers) appropriately + to configure Neovim to use the system clipboard. + [NotAShelf](https://github.com/notashelf): [typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim @@ -93,6 +98,8 @@ - Add `vim.clipboard` module for easily managing Neovim clipboard providers and relevant packages in a simple UI. + - This deprecates `vim.useSystemClipboard` as well, see breaking changes + section above for migration options. [amadaluzia](https://github.com/amadaluzia): diff --git a/modules/extra/deprecations.nix b/modules/extra/deprecations.nix index 86497130..91d8ef28 100644 --- a/modules/extra/deprecations.nix +++ b/modules/extra/deprecations.nix @@ -111,6 +111,15 @@ in { under the diagnostics module. Please consider using one of 'vim.diagnostics.config' or 'vim.luaConfigRC' to configure LSP lines for Neovim through its own diagnostics API. '') + + # 2025-05-04 + (mkRemovedOptionModule ["vim" "useSystemClipboard"] '' + Clipboard behaviour should now be controlled through the new, more fine-grained module + interface found in 'vim.clipboard'. To replicate previous behaviour, you may either + add 'vim.opt.clipboard:append("unnamedplus")' in luaConfigRC, or preferably set it + in 'vim.clipboard.registers'. Please see the documentation for the new module for more + details, or open an issue if you are confused. + '') ] # Migrated via batchRenameOptions. Further batch renames must be below this line. diff --git a/modules/neovim/init/basic.nix b/modules/neovim/init/basic.nix index 47bfe500..195ef5e7 100644 --- a/modules/neovim/init/basic.nix +++ b/modules/neovim/init/basic.nix @@ -34,12 +34,6 @@ in { description = "Enable syntax highlighting"; }; - useSystemClipboard = mkOption { - type = bool; - default = false; - description = "Make use of the clipboard for default yank and paste operations. Don't use * and +"; - }; - lineNumberMode = mkOption { type = enum ["relative" "number" "relNumber" "none"]; default = "relNumber"; @@ -144,10 +138,6 @@ in { # to pre-set Neovim options. Fear not, though as the Lua DAG is still as powerful as it # could be. luaConfigRC.basic = entryAfter ["globalsScript"] '' - ${optionalString cfg.useSystemClipboard '' - vim.opt.clipboard:append("unnamedplus") - ''} - ${optionalString cfg.syntaxHighlighting '' vim.cmd("syntax on") ''} From b61893971636ac268aa72d30a309b1fabfc7d709 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sun, 4 May 2025 17:58:22 +0300 Subject: [PATCH 37/94] languages: deprecate `vim.languages.enableLSP` This change is done in favor of our intentions to use the new API Neovim has exposed, and the one we are exposing to match theirs. --- modules/plugins/lsp/lspconfig/config.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/plugins/lsp/lspconfig/config.nix b/modules/plugins/lsp/lspconfig/config.nix index 1c1f0a0a..16cba488 100644 --- a/modules/plugins/lsp/lspconfig/config.nix +++ b/modules/plugins/lsp/lspconfig/config.nix @@ -14,8 +14,6 @@ in { config = mkIf cfg.lspconfig.enable (mkMerge [ { vim = { - lsp.enable = true; - startPlugins = ["nvim-lspconfig"]; pluginRC.lspconfig = entryAfter ["lsp-setup"] '' From f558b7bc00aaef79ba3f60f4075ffde127bbfaf3 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sun, 4 May 2025 18:25:53 +0300 Subject: [PATCH 38/94] docs: remove broken mentinos in old release notes --- docs/release-notes/rl-0.3.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/release-notes/rl-0.3.md b/docs/release-notes/rl-0.3.md index 87ae5648..089f01f7 100644 --- a/docs/release-notes/rl-0.3.md +++ b/docs/release-notes/rl-0.3.md @@ -50,9 +50,8 @@ soon. - A new section has been added for language support: `vim.languages.`. - - The options [](#opt-vim.languages.enableLSP), - [](#opt-vim.languages.enableTreesitter), etc. will enable the respective - section for all languages that have been enabled. + - The options `enableLSP` [](#opt-vim.languages.enableTreesitter), etc. will + enable the respective section for all languages that have been enabled. - All LSP languages have been moved here - `plantuml` and `markdown` have been moved here - A new section has been added for `html`. The old From e752f59994e8f5c912dc2ca7c23d2ae2a5f193fd Mon Sep 17 00:00:00 2001 From: taylrfnt Date: Sun, 4 May 2025 19:05:09 -0500 Subject: [PATCH 39/94] nvimtree: add missing icon placement options - Address missing `right_align` option in existing icon placement attributes - Add the missing placement options from https://github.com/nvim-tree/nvim-tree.lua/blob/582ae48c9e43d2bcd55dfcc8e2e7a1f29065d924/lua/nvim-tree.lua#L595-L599 - Update the `mkOption` arguments to adhere to the requested style guide: ``` 1. type 2. default 3. (optional) example 4. description ``` --- .../plugins/filetree/nvimtree/nvimtree.nix | 41 +++++++++++++++++-- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/modules/plugins/filetree/nvimtree/nvimtree.nix b/modules/plugins/filetree/nvimtree/nvimtree.nix index 9c443a6e..c3beb38f 100644 --- a/modules/plugins/filetree/nvimtree/nvimtree.nix +++ b/modules/plugins/filetree/nvimtree/nvimtree.nix @@ -683,15 +683,48 @@ in { }; git_placement = mkOption { - type = enum ["before" "after" "signcolumn"]; - description = "Place where the git icons will be rendered. `signcolumn` requires `view.signcolumn` to be enabled."; + type = enum ["before" "after" "signcolumn" "right_align"]; default = "before"; + description = '' + Place where the git icons will be rendered. + `signcolumn` requires `view.signcolumn` to be enabled. + ''; }; modified_placement = mkOption { - type = enum ["before" "after" "signcolumn"]; - description = "Place where the modified icons will be rendered. `signcolumn` requires `view.signcolumn` to be enabled."; + type = enum ["before" "after" "signcolumn" "right_align"]; default = "after"; + description = '' + Place where the modified icons will be rendered. + `signcolumn` requires `view.signcolumn` to be enabled. + ''; + }; + + hidden_placement = mkOption { + type = enum ["before" "after" "signcolumn" "right_align"]; + default = "after"; + description = '' + Place where the hidden icons will be rendered. + `signcolumn` requires `view.signcolumn` to be enabled. + ''; + }; + + diagnostics_placement = mkOption { + type = enum ["before" "after" "signcolumn" "right_align"]; + default = "after"; + description = '' + Place where the diagnostics icons will be rendered. + `signcolumn` requires `view.signcolumn` to be enabled. + ''; + }; + + bookmarks_placement = mkOption { + type = enum ["before" "after" "signcolumn" "right_align"]; + default = "after"; + description = '' + Place where the bookmark icons will be rendered. + `signcolumn` requires `view.signcolumn` to be enabled. + ''; }; padding = mkOption { From ee0a7e704824b73015234b4e97eab5a59efae364 Mon Sep 17 00:00:00 2001 From: taylrfnt Date: Sun, 4 May 2025 21:11:30 -0500 Subject: [PATCH 40/94] changelog: update with summary of changes (non-breaking) Add a summary of the (non-breaking) changes to the nvim-tree plugin options per contributing guidelines. --- docs/release-notes/rl-0.8.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 80a0300c..e0c06fc8 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -362,3 +362,11 @@ [Hardtime.nvim]: https://github.com/m4xshen/hardtime.nvim - Add Plugin [Hardtime.nvim] under `vim.binds.hardtime-nvim` with `enable` and `setupOpts` options + +[taylrfnt](https://github.com/taylrfnt): + +[nvim-tree](https://github.com/nvim-tree/nvim-tree.lua): + +- Add missing `right_align` option for existing `renderer.icons` options. +- Add missing `render.icons` options (`hidden_placement`, + `diagnostics_placement`, and `bookmarks_placement`). From 9feb71594d00e5f40b16d39b06b3fd4bad7630a0 Mon Sep 17 00:00:00 2001 From: Gerg-L Date: Sat, 3 May 2025 17:52:36 -0400 Subject: [PATCH 41/94] refactor: nuke legacyPackages and overlays rework blink-cmp package --- docs/default.nix | 1 + flake.nix | 3 --- flake/blink/default.nix | 31 +++++++++++++++++++++++++ flake/develop.nix | 3 ++- flake/legacyPackages.nix | 35 ---------------------------- flake/legacyPackages/blink-cmp.nix | 37 ------------------------------ flake/overlays.nix | 19 --------------- flake/packages.nix | 15 ++++++++---- lib/default.nix | 2 +- lib/types/default.nix | 7 ++++-- lib/types/plugins.nix | 7 ++++-- modules/plugins/languages/nix.nix | 3 ++- modules/wrapper/build/config.nix | 2 +- npins/sources.json | 16 ------------- 14 files changed, 59 insertions(+), 122 deletions(-) create mode 100644 flake/blink/default.nix delete mode 100644 flake/legacyPackages.nix delete mode 100644 flake/legacyPackages/blink-cmp.nix delete mode 100644 flake/overlays.nix diff --git a/docs/default.nix b/docs/default.nix index 98b29db0..49f90b80 100644 --- a/docs/default.nix +++ b/docs/default.nix @@ -12,6 +12,7 @@ inherit ( (lib.evalModules { + specialArgs = {inherit inputs;}; modules = import ../modules/modules.nix { inherit lib pkgs; diff --git a/flake.nix b/flake.nix index 6e716581..e958f91c 100644 --- a/flake.nix +++ b/flake.nix @@ -18,10 +18,7 @@ systems = import inputs.systems; imports = [ ./flake/templates - ./flake/apps.nix - ./flake/legacyPackages.nix - ./flake/overlays.nix ./flake/packages.nix ./flake/develop.nix ]; diff --git a/flake/blink/default.nix b/flake/blink/default.nix new file mode 100644 index 00000000..08c87073 --- /dev/null +++ b/flake/blink/default.nix @@ -0,0 +1,31 @@ +{ + rustPlatform, + fetchFromGitHub, + writeShellScriptBin, +}: +rustPlatform.buildRustPackage (finalAttrs: { + pname = "blink-cmp"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "Saghen"; + repo = "blink.cmp"; + tag = "v${finalAttrs.version}"; + hash = "sha256-bKe8SSg1HPWE7b4iRQJwiOVCrvvgttuHCOIa4U/38AY="; + }; + + postInstall = '' + cp -r {lua,plugin} "$out" + mkdir -p "$out/target" + mv "$out/lib" "$out/target/release" + ''; + + cargoHash = "sha256-IDoDugtNWQovfSstbVMkKHLBXKa06lxRWmywu4zyS3M="; + useFetchCargoVendor = true; + + nativeBuildInputs = [ + (writeShellScriptBin "git" "exit 1") + ]; + + env.RUSTC_BOOTSTRAP = true; +}) diff --git a/flake/develop.nix b/flake/develop.nix index 71c13688..d92b8182 100644 --- a/flake/develop.nix +++ b/flake/develop.nix @@ -3,13 +3,14 @@ pkgs, config, self', + inputs', ... }: { devShells = { default = self'.devShells.lsp; nvim-nix = pkgs.mkShellNoCC {packages = [config.packages.nix];}; lsp = pkgs.mkShellNoCC { - packages = with pkgs; [nil statix deadnix alejandra npins]; + packages = with pkgs; [inputs'.nil.packages.default statix deadnix alejandra npins]; }; }; diff --git a/flake/legacyPackages.nix b/flake/legacyPackages.nix deleted file mode 100644 index 33aee0e3..00000000 --- a/flake/legacyPackages.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - inputs, - self, - ... -}: { - perSystem = { - system, - inputs', - ... - }: { - legacyPackages = import inputs.nixpkgs { - inherit system; - overlays = [ - inputs.self.overlays.default - - (final: prev: { - # Build nil from source to get most recent - # features as they are added. - nil = inputs'.nil.packages.default; - blink-cmp = let - pin = self.pins.blink-cmp; - in - final.callPackage ./legacyPackages/blink-cmp.nix { - inherit (pin) version; - src = prev.fetchFromGitHub { - inherit (pin.repository) owner repo; - rev = pin.revision; - sha256 = pin.hash; - }; - }; - }) - ]; - }; - }; -} diff --git a/flake/legacyPackages/blink-cmp.nix b/flake/legacyPackages/blink-cmp.nix deleted file mode 100644 index 60dce9de..00000000 --- a/flake/legacyPackages/blink-cmp.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ - stdenv, - rustPlatform, - vimUtils, - gitMinimal, - src, - version, -}: let - blink-fuzzy-lib = rustPlatform.buildRustPackage { - pname = "blink-fuzzy-lib"; - inherit version src; - - # TODO: remove this if plugin stops using nightly rust - env.RUSTC_BOOTSTRAP = true; - - useFetchCargoVendor = true; - cargoHash = "sha256-IDoDugtNWQovfSstbVMkKHLBXKa06lxRWmywu4zyS3M="; - - nativeBuildInputs = [gitMinimal]; - }; -in - vimUtils.buildVimPlugin { - pname = "blink-cmp"; - inherit version src; - - # blink references a repro.lua which is placed outside the lua/ directory - doCheck = false; - preInstall = let - ext = stdenv.hostPlatform.extensions.sharedLibrary; - in '' - mkdir -p target/release - ln -s ${blink-fuzzy-lib}/lib/libblink_cmp_fuzzy${ext} target/release/libblink_cmp_fuzzy${ext} - ''; - - # Module for reproducing issues - nvimSkipModules = ["repro"]; - } diff --git a/flake/overlays.nix b/flake/overlays.nix deleted file mode 100644 index 5d0ff6e8..00000000 --- a/flake/overlays.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - pkgs, - lib, - ... -}: let - inherit (lib.nvim) neovimConfiguration; - - buildPkg = pkgs: modules: (neovimConfiguration {inherit pkgs modules;}).neovim; - - nixConfig = import ../configuration.nix false; - maximalConfig = import ../configuration.nix true; -in { - flake.overlays.default = final: _prev: { - inherit neovimConfiguration; - neovim-nix = buildPkg final [nixConfig]; - neovim-maximal = buildPkg final [maximalConfig]; - devPkg = buildPkg pkgs [nixConfig {config.vim.languages.html.enable = pkgs.lib.mkForce true;}]; - }; -} diff --git a/flake/packages.nix b/flake/packages.nix index 7abe5ec0..d6afbbf8 100644 --- a/flake/packages.nix +++ b/flake/packages.nix @@ -1,4 +1,4 @@ -{inputs, ...}: { +{inputs, ...} @ args: { perSystem = { config, pkgs, @@ -6,8 +6,15 @@ ... }: let docs = import ../docs {inherit pkgs inputs lib;}; + buildPkg = maximal: + (args.config.flake.lib.nvim.neovimConfiguration { + inherit pkgs; + modules = [(import ../configuration.nix maximal)]; + }).neovim; in { packages = { + blink-cmp = pkgs.callPackage ./blink {}; + inherit (docs.manual) htmlOpenTool; # Documentation docs = docs.manual.html; @@ -61,9 +68,9 @@ ''; # Exposed neovim configurations - nix = config.legacyPackages.neovim-nix; - maximal = config.legacyPackages.neovim-maximal; - default = config.legacyPackages.neovim-nix; + nix = buildPkg false; + maximal = buildPkg true; + default = config.packages.nix; }; }; } diff --git a/lib/default.nix b/lib/default.nix index 952278a8..c4388e82 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -4,7 +4,7 @@ lib, ... }: { - types = import ./types {inherit lib;}; + types = import ./types {inherit lib self;}; config = import ./config.nix {inherit lib;}; binds = import ./binds.nix {inherit lib;}; dag = import ./dag.nix {inherit lib;}; diff --git a/lib/types/default.nix b/lib/types/default.nix index c6239227..044a8221 100644 --- a/lib/types/default.nix +++ b/lib/types/default.nix @@ -1,6 +1,9 @@ -{lib}: let +{ + lib, + self, +}: let typesDag = import ./dag.nix {inherit lib;}; - typesPlugin = import ./plugins.nix {inherit lib;}; + typesPlugin = import ./plugins.nix {inherit lib self;}; typesLanguage = import ./languages.nix {inherit lib;}; customTypes = import ./custom.nix {inherit lib;}; in { diff --git a/lib/types/plugins.nix b/lib/types/plugins.nix index fc2bd083..4be39289 100644 --- a/lib/types/plugins.nix +++ b/lib/types/plugins.nix @@ -1,4 +1,7 @@ -{lib}: let +{ + lib, + self, +}: let inherit (lib.options) mkOption; inherit (lib.attrsets) attrNames mapAttrs' filterAttrs nameValuePair; inherit (lib.strings) hasPrefix removePrefix; @@ -12,7 +15,7 @@ mapAttrs' (n: v: nameValuePair (removePrefix prefix n) {src = v;}) (filterAttrs (n: _: hasPrefix prefix n) inputs); # Get the names of all npins - pluginInputNames = attrNames (lib.importJSON ../../npins/sources.json).pins; + pluginInputNames = ["blink-cmp"] ++ attrNames self.pins; # You can either use the name of the plugin or a package. pluginType = nullOr ( diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix index 83022adf..aceee70d 100644 --- a/modules/plugins/languages/nix.nix +++ b/modules/plugins/languages/nix.nix @@ -2,6 +2,7 @@ config, pkgs, lib, + inputs, ... }: let inherit (builtins) attrNames; @@ -27,7 +28,7 @@ else ''{"${package}/bin/${defaultCmd}"}''; servers = { nil = { - package = pkgs.nil; + package = inputs.nil.packages.${pkgs.stdenv.system}.nil; internalFormatter = true; lspConfig = '' lspconfig.nil_ls.setup{ diff --git a/modules/wrapper/build/config.nix b/modules/wrapper/build/config.nix index 61ba1513..00ad2305 100644 --- a/modules/wrapper/build/config.nix +++ b/modules/wrapper/build/config.nix @@ -51,7 +51,7 @@ doCheck = false; }; - inherit (inputs.self.legacyPackages.${pkgs.stdenv.system}) blink-cmp; + inherit (inputs.self.packages.${pkgs.stdenv.system}) blink-cmp; }; buildConfigPlugins = plugins: diff --git a/npins/sources.json b/npins/sources.json index a2122460..8e82850a 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -39,22 +39,6 @@ "url": "https://github.com/rrethy/base16-nvim/archive/965160025d0facbe9caa863e5beef2a7a488e9d1.tar.gz", "hash": "02w1mn15gydma9canvqrlwf4l5z76s1vs01zanipwwflvwclsb8f" }, - "blink-cmp": { - "type": "GitRelease", - "repository": { - "type": "GitHub", - "owner": "saghen", - "repo": "blink.cmp" - }, - "pre_releases": false, - "version_upper_bound": null, - "release_prefix": null, - "submodules": false, - "version": "v1.2.0", - "revision": "d72a826e1961e14f91d8867d10a27a89c5cfe748", - "url": "https://api.github.com/repos/saghen/blink.cmp/tarball/v1.2.0", - "hash": "01phyx7y26p2123xpdp0zfp45rc8f014a8myxn2ga71m514vr9vc" - }, "blink-cmp-spell": { "type": "Git", "repository": { From e9e57caa1806f0693d4888c98b077f65ca267913 Mon Sep 17 00:00:00 2001 From: Noah765 Date: Mon, 5 May 2025 09:46:49 +0200 Subject: [PATCH 42/94] languages/dart: fix infinite recursion The default value of the flutter-tools.enable option conflicted with the lsp.enable definition, which was conditionally defined based on flutter-tools.enable. However, the lsp.enable definition isn't required for flutter-tools' LSP functionality, so it can be removed. --- modules/plugins/languages/dart.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/plugins/languages/dart.nix b/modules/plugins/languages/dart.nix index 9cbd0783..c2a1810d 100644 --- a/modules/plugins/languages/dart.nix +++ b/modules/plugins/languages/dart.nix @@ -143,8 +143,6 @@ in { }) (mkIf ftcfg.enable { - lsp.enable = true; - startPlugins = [ ( if ftcfg.enableNoResolvePatch From 7d191a350df23f2cb3f9110105d3b787559f9479 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Mon, 5 May 2025 10:45:33 +0300 Subject: [PATCH 43/94] ci: backport & labeler config --- .github/labels.yml | 55 ++++++++++++++++++++++++++++++++++ .github/workflows/backport.yml | 33 ++++++++++++++++++++ .github/workflows/labeler.yml | 21 +++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 .github/labels.yml create mode 100644 .github/workflows/backport.yml create mode 100644 .github/workflows/labeler.yml diff --git a/.github/labels.yml b/.github/labels.yml new file mode 100644 index 00000000..e799004f --- /dev/null +++ b/.github/labels.yml @@ -0,0 +1,55 @@ +# This file is used by .github/workflows/labels.yml +"topic: plugins": + - any: + - changed-files: + - any-glob-to-any-file: + - modules/plugins/**/* + +"topic: modules": + - any: + - changed-files: + - any-glob-to-any-file: + - modules/**/* + +"topic: dependencies": + - any: + - changed-files: + - any-glob-to-any-file: + - npins + - flake.lock + +"topic: CI": + - any: + - changed-files: + - any-glob-to-any-file: + - .github/workflows/*.yml + - .github/typos.toml + . .github/dependabot.yml + +"topic: meta": + - any: + - changed-files: + - any-glob-to-any-file: + - .github/CODEOWNERS + - LICENSE + - .github/README.md + - .github/funding.yml + - .github/assets + - .github/*_TEMPLATE + - .gitignore + - .editorconfig + - release.json + +"topic: documentation": + - any: + - changed-files: + - any-glob-to-any-file: + - docs/**/* + - .github/CONTRIBUTING.md + - .github/README.md +"topic: packaging": + - any: + - changed-files: + - any-glob-to-any-file: + - flake.nix + - flake/packages.nix diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml new file mode 100644 index 00000000..0a558fb8 --- /dev/null +++ b/.github/workflows/backport.yml @@ -0,0 +1,33 @@ +name: Backport PR on Label + +on: + pull_request_target: + types: + - labeled + +# Permissions needed for the korthout/backport-action to create branches and PRs +permissions: + contents: write + pull-requests: write + +jobs: + backport: + name: Create Backport PR + runs-on: ubuntu-latest + if: | + github.event.pull_request.merged == true && startsWith(github.event.label.name, 'backport-') + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + token: ${{ steps.app-token.outputs.token }} + + - name: Backport Action + uses: korthout/backport-action@v3 + with: + # Regex pattern for labels that should trigger a backport AND extracts the target branch + # from the name (e.g. v0.x or v0.x.y; we use zerover). This action will ONLY proceed if + # the label that triggered the workflow fully matches this pattern. + # Example matching labels: "backport-v0.1", "backport-v0.10.1" + # Example non-matching labels: "backport-foo", "backport-v1.0" + label_pattern: '^backport-(v0\.\d+(\.\d+)?)$' diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 00000000..96d5c7be --- /dev/null +++ b/.github/workflows/labeler.yml @@ -0,0 +1,21 @@ +name: "Label PR" + +on: + pull_request_target: + types: [edited, opened, synchronize, reopened] + +permissions: + contents: read + pull-requests: write + +jobs: + labels: + name: "Label PR" + runs-on: ubuntu-latest + if: "!contains(github.event.pull_request.title, '[skip ci]')" + steps: + - uses: actions/labeler@v5 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + configuration-path: .github/labeler.yml + sync-labels: true From 5221dc27ddcabaca9eb54f20577b1de955e325ee Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Mon, 5 May 2025 10:58:58 +0300 Subject: [PATCH 44/94] ci: fix labeler config path --- .github/workflows/labeler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 96d5c7be..fc2e0d65 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -17,5 +17,5 @@ jobs: - uses: actions/labeler@v5 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - configuration-path: .github/labeler.yml + configuration-path: .github/labels.yml sync-labels: true From 3c672f64fc2e7a19aa33000733b5fc84e29f41b8 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Fri, 7 Mar 2025 16:20:46 +0300 Subject: [PATCH 45/94] docs/custom-plugins: avoid using `with` scopes in the manual --- .../configuring/custom-plugins/configuring.md | 20 ++++++++++--------- .../custom-plugins/non-lazy-method.md | 8 ++++---- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/docs/manual/configuring/custom-plugins/configuring.md b/docs/manual/configuring/custom-plugins/configuring.md index 5106d29b..42af11be 100644 --- a/docs/manual/configuring/custom-plugins/configuring.md +++ b/docs/manual/configuring/custom-plugins/configuring.md @@ -32,16 +32,18 @@ that the `extraPlugins` option has its own DAG scope), and the its setup code respectively. For example: ```nix -config.vim.extraPlugins = with pkgs.vimPlugins; { - aerial = { - package = aerial-nvim; - setup = "require('aerial').setup {}"; - }; +{pkgs, ...}: { + config.vim.extraPlugins = { + aerial = { + package = pkgs.vimPlugins.aerial-nvim; + setup = "require('aerial').setup {}"; + }; - harpoon = { - package = harpoon; - setup = "require('harpoon').setup {}"; - after = ["aerial"]; # place harpoon configuration after aerial + harpoon = { + package = pkgs.vimPlugins.harpoon; + setup = "require('harpoon').setup {}"; + after = ["aerial"]; # place harpoon configuration after aerial + }; }; } ``` diff --git a/docs/manual/configuring/custom-plugins/non-lazy-method.md b/docs/manual/configuring/custom-plugins/non-lazy-method.md index 351af2eb..d8477283 100644 --- a/docs/manual/configuring/custom-plugins/non-lazy-method.md +++ b/docs/manual/configuring/custom-plugins/non-lazy-method.md @@ -5,10 +5,10 @@ under `vim.extraPlugins`. Instead of using DAGs exposed by the library, you may use the extra plugin module as follows: ```nix -{ - config.vim.extraPlugins = with pkgs.vimPlugins; { +{pkgs, ...}: { + config.vim.extraPlugins = { aerial = { - package = aerial-nvim; + package = pkgs.vimPlugins.aerial-nvim; setup = '' require('aerial').setup { -- some lua configuration here @@ -17,7 +17,7 @@ use the extra plugin module as follows: }; harpoon = { - package = harpoon; + package = pkgs.vimPlugins.harpoon; setup = "require('harpoon').setup {}"; after = ["aerial"]; }; From 37750d9befcff9ee621c1cc15a8f5fc2d0f5133b Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 12 Mar 2025 03:53:16 +0300 Subject: [PATCH 46/94] docs/manual: document building plugins from source --- docs/manual/tips.md | 3 +- docs/manual/tips/plugin-sources.md | 131 +++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 docs/manual/tips/plugin-sources.md diff --git a/docs/manual/tips.md b/docs/manual/tips.md index 6e6dc9c2..f52cbca2 100644 --- a/docs/manual/tips.md +++ b/docs/manual/tips.md @@ -1,7 +1,8 @@ # Helpful Tips {#ch-helpful-tips} ```{=include=} chapters -tips/pure-lua-config.md tips/debugging-nvf.md tips/offline-docs.md +tips/pure-lua-config.md +tips/plugin-sources.md ``` diff --git a/docs/manual/tips/plugin-sources.md b/docs/manual/tips/plugin-sources.md new file mode 100644 index 00000000..7cf6a470 --- /dev/null +++ b/docs/manual/tips/plugin-sources.md @@ -0,0 +1,131 @@ +# Adding Plugins From Different Sources {#sec-plugin-sources} + +**nvf** attempts to avoid depending on Nixpkgs for Neovim plugins. For the most +part, this is accomplished by defining each plugin's source and building them +from source. + +[npins]: https://github.com/andir/npins + +To define plugin sources, we use [npins] and pin each plugin source using +builtin fetchers. You are not bound by this restriction. In your own +configuration, any kind of fetcher or plugin source is fine. + +## Nixpkgs & Friends {#ch-plugins-from-nixpkgs} + +`vim.startPlugins` and `vim.optPlugins` options take either a **string**, in +which case a plugin from nvf's internal plugins registry will be used, or a +**package**. If your plugin does not require any setup, or ordering for it s +configuration, then it is possible to add it to `vim.startPlugins` to load it on +startup. + +```nix +{pkgs, ...}: { + # Aerial does require some setup. In the case you pass a plugin that *does* + # require manual setup, then you must also call the setup function. + vim.startPlugins = [pkgs.vimPlugins.aerial-nvim]; +} +``` + +[`vim.extraPlugins`]: https://notashelf.github.io/nvf/options.html#opt-vim.extraPlugins + +This will fetch aerial.nvim from nixpkgs, and add it to Neovim's runtime path to +be loaded manually. Although for plugins that require manual setup, you are +encouraged to use [`vim.extraPlugins`]. + +```nix +{ + vim.extraPlugins = { + aerial = { + package = pkgs.vimPlugins.aerial-nvim; + setup = "require('aerial').setup {}"; + }; + }; +} +``` + +[custom plugins section]: https://notashelf.github.io/nvf/index.xhtml#ch-custom-plugins + +More details on the extraPlugins API is documented in the +[custom plugins section]. + +## Building Your Own Plugins {#ch-plugins-from-source} + +In the case a plugin is not available in Nixpkgs, or the Nixpkgs package is +outdated (or, more likely, broken) it is possible to build the plugins from +source using a tool, such as [npins]. You may also use your _flake inputs_ as +sources. + +Example using plugin inputs: + +```nix +{ + # In your flake.nix + inputs = { + aerial-nvim = { + url = "github:stevearc/aerial.nvim" + flake = false; + }; + }; + + # Make sure that 'inputs' is properly propagated into Nvf, for example, through + # specialArgs. + outputs = { ... }; +} +``` + +In the case, you may use the input directly for the plugin's source attribute in +`buildVimPlugin`. + +```nix +# Make sure that 'inputs' is properly propagated! It will be missing otherwise +# and the resulting errors might be too obscure. +{inputs, ...}: let + aerial-from-source = pkgs.vimUtils.buildVimPlugin { + name = "aerial-nvim"; + src = inputs.aerial-nvim; + }; +in { + vim.extraPlugins = { + aerial = { + package = aerial-from-source; + setup = "require('aerial').setup {}"; + }; + }; +} +``` + +Alternatively, if you do not want to keep track of the source using flake inputs +or npins, you may call `fetchFromGitHub` (or other fetchers) directly. An +example would look like this. + +```nix +regexplainer = buildVimPlugin { + name = "nvim-regexplainer"; + src = fetchFromGitHub { + owner = "bennypowers"; + repo = "nvim-regexplainer"; + rev = "4250c8f3c1307876384e70eeedde5149249e154f"; + hash = "sha256-15DLbKtOgUPq4DcF71jFYu31faDn52k3P1x47GL3+b0="; + }; + + # The 'buildVimPlugin' imposes some "require checks" on all plugins build from + # source. Failing tests, if they are not relevant, can be disabled using the + # 'nvimSkipModule' argument to the 'buildVimPlugin' function. + nvimSkipModule = [ + "regexplainer" + "regexplainer.buffers.init" + "regexplainer.buffers.popup" + "regexplainer.buffers.register" + "regexplainer.buffers.shared" + "regexplainer.buffers.split" + "regexplainer.component.descriptions" + "regexplainer.component.init" + "regexplainer.renderers.narrative.init" + "regexplainer.renderers.narrative.narrative" + "regexplainer.renderers.init" + "regexplainer.utils.defer" + "regexplainer.utils.init" + "regexplainer.utils.treesitter" + ]; +} +``` From f1d72cf0764db282a937d756b9a027978ae96e8f Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Mon, 5 May 2025 14:57:32 +0300 Subject: [PATCH 47/94] docs: clarify wording; add examples and remove redundancies --- docs/manual/configuring.md | 11 ++ docs/manual/configuring/autocmds.md | 119 ++++++++++++++++++ docs/manual/configuring/custom-package.md | 4 +- docs/manual/configuring/custom-plugins.md | 35 ++++-- .../configuring/custom-plugins/configuring.md | 46 ++++--- .../configuring/custom-plugins/lazy-method.md | 13 +- .../custom-plugins/legacy-method.md | 29 +++-- .../custom-plugins/non-lazy-method.md | 9 +- docs/manual/configuring/languages/lsp.md | 19 +-- docs/manual/default-configs.md | 10 -- docs/manual/default-configs/maximal.md | 11 -- docs/manual/default-configs/nix.md | 9 -- docs/manual/manual.md | 1 - docs/manual/tips.md | 6 + docs/manual/try-it-out.md | 30 ++++- 15 files changed, 262 insertions(+), 90 deletions(-) create mode 100644 docs/manual/configuring/autocmds.md delete mode 100644 docs/manual/default-configs.md delete mode 100644 docs/manual/default-configs/maximal.md delete mode 100644 docs/manual/default-configs/nix.md diff --git a/docs/manual/configuring.md b/docs/manual/configuring.md index f891c7a6..28c7e66a 100644 --- a/docs/manual/configuring.md +++ b/docs/manual/configuring.md @@ -1,5 +1,15 @@ # Configuring nvf {#ch-configuring} +[helpful tips section]: #ch-helpful-tips + +nvf allows for _very_ extensive configuration in Neovim through the Nix module +interface. The below chapters describe several of the options exposed in nvf for +your convenience. You might also be interested in the [helpful tips section] for +more advanced or unusual configuration options supported by nvf. + +Note that this section does not cover module _options_. For an overview of all +module options provided by nvf, please visit the [appendix](/options.html) + ```{=include=} chapters configuring/custom-package.md configuring/custom-plugins.md @@ -7,4 +17,5 @@ configuring/overriding-plugins.md configuring/languages.md configuring/dags.md configuring/dag-entries.md +configuring/autocmds.md ``` diff --git a/docs/manual/configuring/autocmds.md b/docs/manual/configuring/autocmds.md new file mode 100644 index 00000000..be10e726 --- /dev/null +++ b/docs/manual/configuring/autocmds.md @@ -0,0 +1,119 @@ +# Autocommands and Autogroups {#ch-autocmds-augroups} + +This module allows you to declaratively configure Neovim autocommands and +autogroups within your Nix configuration. + +## Autogroups (`vim.augroups`) {#sec-vim-augroups} + +Autogroups (`augroup`) organize related autocommands. This allows them to be +managed collectively, such as clearing them all at once to prevent duplicates. +Each entry in the list is a submodule with the following options: + +| Option | Type | Default | Description | Example | +| :------- | :----- | :------ | :--------------------------------------------------------------------------------------------------- | :---------------- | +| `enable` | `bool` | `true` | Enables or disables this autogroup definition. | `true` | +| `name` | `str` | _None_ | **Required.** The unique name for the autogroup. | `"MyFormatGroup"` | +| `clear` | `bool` | `true` | Clears any existing autocommands within this group before adding new ones defined in `vim.autocmds`. | `true` | + +**Example:** + +```nix +{ + vim.augroups = [ + { + name = "MyCustomAuGroup"; + clear = true; # Clear previous autocommands in this group on reload + } + { + name = "Formatting"; + # clear defaults to true + } + ]; +} +``` + +## Autocommands (`vim.autocmds`) {#sec-vim-autocmds} + +Autocommands (`autocmd`) trigger actions based on events happening within Neovim +(e.g., saving a file, entering a buffer). Each entry in the list is a submodule +with the following options: + +| Option | Type | Default | Description | Example | +| :--------- | :-------------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------- | +| `enable` | `bool` | `true` | Enables or disables this autocommand definition. | `true` | +| `event` | `nullOr (listOf str)` | `null` | **Required.** List of Neovim events that trigger this autocommand (e.g., `BufWritePre`, `FileType`). | `[ "BufWritePre" ]` | +| `pattern` | `nullOr (listOf str)` | `null` | List of file patterns (globs) to match against (e.g., `*.py`, `*`). If `null`, matches all files for the given event. | `[ "*.lua", "*.nix" ]` | +| `callback` | `nullOr luaInline` | `null` | A Lua function to execute when the event triggers. Use `lib.nvim.types.luaInline` or `lib.options.literalExpression "mkLuaInline '''...'''"`. **Cannot be used with `command`.** | `lib.nvim.types.luaInline "function() print('File saved!') end"` | +| `command` | `nullOr str` | `null` | A Vimscript command to execute when the event triggers. **Cannot be used with `callback`.** | `"echo 'File saved!'"` | +| `group` | `nullOr str` | `null` | The name of an `augroup` (defined in `vim.augroups`) to associate this autocommand with. | `"MyCustomAuGroup"` | +| `desc` | `nullOr str` | `null` | A description for the autocommand (useful for introspection). | `"Format buffer on save"` | +| `once` | `bool` | `false` | If `true`, the autocommand runs only once and then automatically removes itself. | `false` | +| `nested` | `bool` | `false` | If `true`, allows this autocommand to trigger other autocommands. | `false` | + +:::{.warning} + +You cannot define both `callback` (for Lua functions) and `command` (for +Vimscript) for the same autocommand. Choose one. + +::: + +**Examples:** + +```nix +{ lib, ... }: +{ + vim.augroups = [ { name = "UserSetup"; } ]; + + vim.autocmds = [ + # Example 1: Using a Lua callback + { + event = [ "BufWritePost" ]; + pattern = [ "*.lua" ]; + group = "UserSetup"; + desc = "Notify after saving Lua file"; + callback = lib.nvim.types.luaInline '' + function() + vim.notify("Lua file saved!", vim.log.levels.INFO) + end + ''; + } + + # Example 2: Using a Vim command + { + event = [ "FileType" ]; + pattern = [ "markdown" ]; + group = "UserSetup"; + desc = "Set spellcheck for Markdown"; + command = "setlocal spell"; + } + + # Example 3: Autocommand without a specific group + { + event = [ "BufEnter" ]; + pattern = [ "*.log" ]; + desc = "Disable line numbers in log files"; + command = "setlocal nonumber"; + # No 'group' specified + } + + # Example 4: Using Lua for callback + { + event = [ "BufWinEnter" ]; + pattern = [ "*" ]; + desc = "Simple greeting on entering a buffer window"; + callback = lib.generators.mkLuaInline '' + function(args) + print("Entered buffer: " .. args.buf) + end + ''; + + # Run only once per session trigger + once = true; + } + ]; +} +``` + +These definitions are automatically translated into the necessary Lua code to +configure `vim.api.nvim_create_augroup` and `vim.api.nvim_create_autocmd` when +Neovim starts. diff --git a/docs/manual/configuring/custom-package.md b/docs/manual/configuring/custom-package.md index 51d996b6..3e9e324a 100644 --- a/docs/manual/configuring/custom-package.md +++ b/docs/manual/configuring/custom-package.md @@ -1,12 +1,12 @@ # Custom Neovim Package {#ch-custom-package} As of v0.5, you may now specify the Neovim package that will be wrapped with -your configuration. This is done with the `vim.package` option. +your configuration. This is done with the [](#opt-vim.package) option. ```nix {inputs, pkgs, ...}: { # using the neovim-nightly overlay - vim.package = inputs.neovim-overlay.packages.${pkgs.system}.neovim; + vim.package = inputs.neovim-overlay.packages.${pkgs.stdenv.system}.neovim; } ``` diff --git a/docs/manual/configuring/custom-plugins.md b/docs/manual/configuring/custom-plugins.md index c621e03c..bf986a0f 100644 --- a/docs/manual/configuring/custom-plugins.md +++ b/docs/manual/configuring/custom-plugins.md @@ -1,22 +1,33 @@ # Custom Plugins {#ch-custom-plugins} -**nvf**, by default, exposes a wide variety of plugins as module options for -your convenience and bundles necessary dependencies into **nvf**'s runtime. In -case a plugin is not available in **nvf**, you may consider making a pull -request to **nvf** to include it as a module or you may add it to your -configuration locally. +**nvf** exposes a very wide variety of plugins by default, which are consumed by +module options. This is done for your convenience, and to bundle all necessary +dependencies into **nvf**'s runtime with full control of versioning, testing and +dependencies. In the case a plugin you need is _not_ available, you may consider +making a pull request to add the package you're looking for, or you may add it +to your configuration locally. The below section describes how new plugins may +be added to the user's configuration. ## Adding Plugins {#ch-adding-plugins} -There are multiple ways of adding custom plugins to your **nvf** configuration. +Per **nvf**'s design choices, there are several ways of adding custom plugins to +your configuration as you need them. As we aim for extensive configuration, it +is possible to add custom plugins (from nixpkgs, pinning tools, flake inputs, +etc.) to your Neovim configuration before they are even implemented in **nvf** +as a module. -You can use custom plugins, before they are implemented in the flake. To add a -plugin to the runtime, you need to add it to the [](#opt-vim.startPlugins) list -in your configuration. +:::{.info} -Adding a plugin to `startPlugins` will not allow you to configure the plugin -that you have added, but **nvf** provides multiple ways of configuring any custom -plugins that you might have added to your configuration. +To add a plugin to your runtime, you will need to add it to +[](#opt-vim.startPlugins) list in your configuration. This is akin to cloning a +plugin to `~/.config/nvim`, but they are only ever placed in the Nix store and +never exposed to the outside world for purity and full isolation. + +::: + +As you would configure a cloned plugin, you must configure the new plugins that +you've added to `startPlugins.` **nvf** provides multiple ways of configuring +any custom plugins that you might have added to your configuration. ```{=include=} sections custom-plugins/configuring.md diff --git a/docs/manual/configuring/custom-plugins/configuring.md b/docs/manual/configuring/custom-plugins/configuring.md index 42af11be..a4b3ce19 100644 --- a/docs/manual/configuring/custom-plugins/configuring.md +++ b/docs/manual/configuring/custom-plugins/configuring.md @@ -1,13 +1,20 @@ # Configuring {#sec-configuring-plugins} Just making the plugin to your Neovim configuration available might not always -be enough. In that case, you can write custom lua config using either -`config.vim.lazy.plugins.*.setupOpts` `config.vim.extraPlugins.*.setup` or -`config.vim.luaConfigRC`. +be enough., for example, if the plugin requires a setup table. In that case, you +can write custom Lua configuration using one of -The first option uses an extended version of `lz.n`'s PluginSpec. `setupModule` -and `setupOpt` can be used if the plugin uses a `require('module').setup(...)` -pattern. Otherwise, the `before` and `after` hooks should do what you need. +- `config.vim.lazy.plugins.*.setupOpts` +- `config.vim.extraPlugins.*.setup` +- `config.vim.luaConfigRC`. + +## Lazy Plugins {#ch-vim-lazy-plugins} + +`config.vim.lazy.plugins.*.setupOpts` is useful for lazy-loading plugins, and +uses an extended version of `lz.n's` `PluginSpec` to expose a familiar +interface. `setupModule` and `setupOpt` can be used if the plugin uses a +`require('module').setup(...)` pattern. Otherwise, the `before` and `after` +hooks should do what you need. ```nix { @@ -25,7 +32,9 @@ pattern. Otherwise, the `before` and `after` hooks should do what you need. } ``` -The second option uses an attribute set, which maps DAG section names to a +## Standard API {#ch-vim-extra-plugins} + +`vim.extraPlugins` uses an attribute set, which maps DAG section names to a custom type, which has the fields `package`, `after`, `setup`. They allow you to set the package of the plugin, the sections its setup code should be after (note that the `extraPlugins` option has its own DAG scope), and the its setup code @@ -48,29 +57,36 @@ respectively. For example: } ``` -The third option also uses an attribute set, but this one is resolved as a DAG +### Setup using luaConfigRC {#setup-using-luaconfigrc} + +`vim.luaConfigRC` also uses an attribute set, but this one is resolved as a DAG directly. The attribute names denote the section names, and the values lua code. For example: ```nix { - # this will create an "aquarium" section in your init.lua with the contents of your custom config - # which will be *appended* to the rest of your configuration, inside your init.vim + # This will create a section called "aquarium" in the 'init.lua' with the + # contents of your custom configuration. By default 'entryAnywhere' is implied + # in DAGs, so this will be inserted to an arbitrary position. In the case you + # wish to control the position of this section with more precision, please + # look into the DAGs section of the manual. config.vim.luaConfigRC.aquarium = "vim.cmd('colorscheme aquiarum')"; } ``` +[DAG system]: #ch-using-dags +[DAG section]: #ch-dag-entries ::: {.note} -One of the greatest strengths of nvf is the ability to order -snippets of configuration via the DAG system. It will allow specifying positions -of individual sections of configuration as needed. nvf provides helper functions +One of the **greatest strengths** of **nvf** is the ability to order +configuration snippets precisely using the [DAG system]. DAGs +are a very powerful mechanism that allows specifying positions +of individual sections of configuration as needed. We provide helper functions in the extended library, usually under `inputs.nvf.lib.nvim.dag` that you may use. -Please refer to the [DAG section](#ch-dag-entries) in the nvf manual +Please refer to the [DAG section] in the nvf manual to find out more about the DAG system. ::: - diff --git a/docs/manual/configuring/custom-plugins/lazy-method.md b/docs/manual/configuring/custom-plugins/lazy-method.md index ae766535..c16966b8 100644 --- a/docs/manual/configuring/custom-plugins/lazy-method.md +++ b/docs/manual/configuring/custom-plugins/lazy-method.md @@ -1,7 +1,8 @@ # Lazy Method {#sec-lazy-method} -As of version **0.7**, we exposed an API for configuring lazy-loaded plugins via -`lz.n` and `lzn-auto-require`. +As of version **0.7**, an API is exposed to allow configuring lazy-loaded +plugins via `lz.n` and `lzn-auto-require`. Below is a comprehensive example of +how it may be loaded to lazy-load an arbitrary plugin. ```nix { @@ -41,7 +42,8 @@ As of version **0.7**, we exposed an API for configuring lazy-loaded plugins via ## LazyFile event {#sec-lazyfile-event} -You can use the `LazyFile` user event to load a plugin when a file is opened: +**nvf** re-implements `LazyFile` as a familiar user event to load a plugin when +a file is opened: ```nix { @@ -55,5 +57,6 @@ You can use the `LazyFile` user event to load a plugin when a file is opened: } ``` -You can consider `LazyFile` as an alias to -`["BufReadPost" "BufNewFile" "BufWritePre"]` +You can consider the `LazyFile` event as an alias to the combination of +`"BufReadPost"`, `"BufNewFile"` and `"BufWritePre"`, i.e., a list containing all +three of those events: `["BufReadPost" "BufNewFile" "BufWritePre"]` diff --git a/docs/manual/configuring/custom-plugins/legacy-method.md b/docs/manual/configuring/custom-plugins/legacy-method.md index b2bddf43..6c399aaf 100644 --- a/docs/manual/configuring/custom-plugins/legacy-method.md +++ b/docs/manual/configuring/custom-plugins/legacy-method.md @@ -1,26 +1,31 @@ # Legacy Method {#sec-legacy-method} -Prior to version v0.5, the method of adding new plugins was adding the plugin -package to `vim.startPlugins` and add its configuration as a DAG under one of -`vim.configRC` or `vim.luaConfigRC`. Users who have not yet updated to 0.5, or -prefer a more hands-on approach may use the old method where the load order of -the plugins is determined by DAGs. +Prior to version **0.5**, the method of adding new plugins was adding the plugin +package to [](#opt-vim.startPlugins) and adding its configuration as a DAG under +one of `vim.configRC` or [](#opt-vim.luaConfigRC). While `configRC` has been +deprecated, users who have not yet updated to 0.5 or those who prefer a more +hands-on approach may choose to use the old method where the load order of the +plugins is explicitly determined by DAGs without internal abstractions. -## Adding plugins {#sec-adding-plugins} +## Adding New Plugins {#sec-adding-new-plugins} -To add a plugin not available in nvf as a module to your configuration, you may -add it to [](#opt-vim.startPlugins) in order to make it available to Neovim at -runtime. +To add a plugin not available in **nvf** as a module to your configuration using +the legacy method, you must add it to [](#opt-vim.startPlugins) in order to make +it available to Neovim at runtime. ```nix {pkgs, ...}: { # Add a Neovim plugin from Nixpkgs to the runtime. + # This does not need to come explicitly from packages. 'vim.startPlugins' + # takes a list of *string* (to load internal plugins) or *package* to load + # a Neovim package from any source. vim.startPlugins = [pkgs.vimPlugins.aerial-nvim]; } ``` -And to configure the added plugin, you can use the `luaConfigRC` option to -provide configuration as a DAG using the **nvf** extended library. +Once the package is available in Neovim's runtime, you may use the `luaConfigRC` +option to provide configuration as a DAG using the **nvf** extended library in +order to configure the added plugin, ```nix {inputs, ...}: let @@ -29,6 +34,8 @@ provide configuration as a DAG using the **nvf** extended library. # to specialArgs, the 'inputs' prefix may be omitted. inherit (inputs.nvf.lib.nvim.dag) entryAnywhere; in { + # luaConfigRC takes Lua configuration verbatim and inserts it at an arbitrary + # position by default or if 'entryAnywhere' is used. vim.luaConfigRC.aerial-nvim= entryAnywhere '' require('aerial').setup { -- your configuration here diff --git a/docs/manual/configuring/custom-plugins/non-lazy-method.md b/docs/manual/configuring/custom-plugins/non-lazy-method.md index d8477283..24ef7688 100644 --- a/docs/manual/configuring/custom-plugins/non-lazy-method.md +++ b/docs/manual/configuring/custom-plugins/non-lazy-method.md @@ -1,8 +1,9 @@ # Non-lazy Method {#sec-non-lazy-method} -As of version **0.5**, we have a more extensive API for configuring plugins, -under `vim.extraPlugins`. Instead of using DAGs exposed by the library, you may -use the extra plugin module as follows: +As of version **0.5**, we have a more extensive API for configuring plugins that +should be preferred over the legacy method. This API is available as +[](#opt-vim.extraPlugins). Instead of using DAGs exposed by the library +_directly_, you may use the extra plugin module as follows: ```nix {pkgs, ...}: { @@ -24,3 +25,5 @@ use the extra plugin module as follows: }; } ``` + +This provides a level of abstraction over the DAG system for faster iteration. diff --git a/docs/manual/configuring/languages/lsp.md b/docs/manual/configuring/languages/lsp.md index 6d6ed5bc..2ddc08b5 100644 --- a/docs/manual/configuring/languages/lsp.md +++ b/docs/manual/configuring/languages/lsp.md @@ -1,17 +1,22 @@ # LSP Custom Packages/Command {#sec-languages-custom-lsp-packages} -In any of the `opt.languages..lsp.package` options you can provide -your own LSP package, or provide the command to launch the language server, as a -list of strings. You can use this to skip automatic installation of a language -server, and instead use the one found in your `$PATH` during runtime, for -example: +One of the strengths of **nvf** is convenient aliases to quickly configure LSP +servers through the Nix module system. By default the LSP packages for relevant +language modules will be pulled into the closure. If this is not desirable, you +may provide **a custom LSP package** (e.g., a Bash script that calls a command) +or **a list of strings** to be interpreted as the command to launch the language +server. By using a list of strings, you can use this to skip automatic +installation of a language server, and instead use the one found in your `$PATH` +during runtime, for example: ```nix vim.languages.java = { lsp = { enable = true; - # this expects jdt-language-server to be in your PATH - # or in `vim.extraPackages` + + # This expects 'jdt-language-server' to be in your PATH or in + # 'vim.extraPackages.' There are no additional checks performed to see + # if the command provided is valid. package = ["jdt-language-server" "-data" "~/.cache/jdtls/workspace"]; }; } diff --git a/docs/manual/default-configs.md b/docs/manual/default-configs.md deleted file mode 100644 index 96ffa81a..00000000 --- a/docs/manual/default-configs.md +++ /dev/null @@ -1,10 +0,0 @@ -# Default Configs {#ch-default-configs} - -While you can configure **nvf** yourself using the builder, you can also use the -pre-built configs that are available. Here are a few default configurations you -can use. - -```{=include=} chapters -default-configs/maximal.md -default-configs/nix.md -``` diff --git a/docs/manual/default-configs/maximal.md b/docs/manual/default-configs/maximal.md deleted file mode 100644 index e1f5273e..00000000 --- a/docs/manual/default-configs/maximal.md +++ /dev/null @@ -1,11 +0,0 @@ -# Maximal {#sec-default-maximal} - -```bash -$ nix run github:notashelf/nvf#maximal -- test.nix -``` - -It is the same fully configured Neovim as with the [Nix](#sec-default-nix) -configuration, but with every supported language enabled. - -::: {.note} Running the maximal config will download _a lot_ of packages as it -is downloading language servers, formatters, and more. ::: diff --git a/docs/manual/default-configs/nix.md b/docs/manual/default-configs/nix.md deleted file mode 100644 index 5210ef39..00000000 --- a/docs/manual/default-configs/nix.md +++ /dev/null @@ -1,9 +0,0 @@ -# Nix {#sec-default-nix} - -```bash -$ nix run github:notashelf/nvf#nix test.nix -``` - -Enables all the of Neovim plugins, with language support for specifically Nix. -This lets you see what a fully configured neovim setup looks like without -downloading a whole bunch of language servers and associated tools. diff --git a/docs/manual/manual.md b/docs/manual/manual.md index fd225766..18932896 100644 --- a/docs/manual/manual.md +++ b/docs/manual/manual.md @@ -8,7 +8,6 @@ try-it-out.md ``` ```{=include=} parts -default-configs.md installation.md configuring.md tips.md diff --git a/docs/manual/tips.md b/docs/manual/tips.md index f52cbca2..01bddc40 100644 --- a/docs/manual/tips.md +++ b/docs/manual/tips.md @@ -1,5 +1,11 @@ # Helpful Tips {#ch-helpful-tips} +This section provides helpful tips that may be considered "unorthodox" or "too +advanced" for some users. We will cover basic debugging steps, offline +documentation, configuring **nvf** with pure Lua and using custom plugin sources +in **nvf** in this section. For general configuration tips, please see previous +chapters. + ```{=include=} chapters tips/debugging-nvf.md tips/offline-docs.md diff --git a/docs/manual/try-it-out.md b/docs/manual/try-it-out.md index 8244c2b7..8714be80 100644 --- a/docs/manual/try-it-out.md +++ b/docs/manual/try-it-out.md @@ -26,7 +26,12 @@ $ nix run github:notashelf/nvf#nix $ nix run github:notashelf/nvf#maximal ``` -### Available Configs {#sec-available-configs} +### Available Configurations {#sec-available-configs} + +:::{.info} + +The below configurations are provided for demonstration purposes, and are +**not** designed to be installed as is. You may #### Nix {#sec-configs-nix} @@ -34,15 +39,32 @@ $ nix run github:notashelf/nvf#maximal a set of visual and functional plugins. By running `nix run .#`, which is the default package, you will build Neovim with this config. +```bash +$ nix run github:notashelf/nvf#nix test.nix +``` + +This command will start Neovim with some opinionated plugin configurations, and +is designed specifically for Nix. the `nix` configuration lets you see how a +fully configured Neovim setup _might_ look like without downloading too many +packages or shell utilities. + #### Maximal {#sec-configs-maximal} `Maximal` is the ultimate configuration that will enable support for more commonly used language as well as additional complementary plugins. Keep in mind, however, that this will pull a lot of dependencies. -::: {.tip} +```bash +$ nix run github:notashelf/nvf#maximal -- test.nix +``` -You are _strongly_ recommended to use the binary cache if you would like to try -the Maximal configuration. +It uses the same configuration template with the [Nix](#sec-configs-nix) +configuration, but supports many more languages, and enables more utility, +companion or fun plugins. + +::: {.warning} + +Running the maximal config will download _a lot_ of packages as it is +downloading language servers, formatters, and more. ::: From 61be6cf4053537b1d0cf709b3283143e1f1b4b65 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Mon, 5 May 2025 22:30:27 +0200 Subject: [PATCH 48/94] cmp: use normal priority for default values After this change, user configs should be "appended" to default ones instead of overriding them --- modules/plugins/completion/nvim-cmp/config.nix | 5 +++++ modules/plugins/completion/nvim-cmp/nvim-cmp.nix | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/modules/plugins/completion/nvim-cmp/config.nix b/modules/plugins/completion/nvim-cmp/config.nix index 749ebb7c..cf27caaf 100644 --- a/modules/plugins/completion/nvim-cmp/config.nix +++ b/modules/plugins/completion/nvim-cmp/config.nix @@ -60,6 +60,11 @@ in { enableSharedCmpSources = true; nvim-cmp = { + sources = { + nvim-cmp = null; + buffer = "[Buffer]"; + path = "[Path]"; + }; sourcePlugins = ["cmp-buffer" "cmp-path"]; setupOpts = { diff --git a/modules/plugins/completion/nvim-cmp/nvim-cmp.nix b/modules/plugins/completion/nvim-cmp/nvim-cmp.nix index 2c8c77d3..8105ed00 100644 --- a/modules/plugins/completion/nvim-cmp/nvim-cmp.nix +++ b/modules/plugins/completion/nvim-cmp/nvim-cmp.nix @@ -98,11 +98,15 @@ in { sources = mkOption { type = attrsOf (nullOr str); - default = { + defaultText = literalMD '' + These sources are included by default: + + ```nix nvim-cmp = null; buffer = "[Buffer]"; path = "[Path]"; - }; + ``` + ''; example = { nvim-cmp = null; buffer = "[Buffer]"; From 9e9458710229d95bc19512c29cfea2b85c377b75 Mon Sep 17 00:00:00 2001 From: myu Date: Mon, 5 May 2025 20:02:37 -0400 Subject: [PATCH 49/94] tabline/bufferline: fix typo in the word "indicator" --- modules/plugins/tabline/nvim-bufferline/nvim-bufferline.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/plugins/tabline/nvim-bufferline/nvim-bufferline.nix b/modules/plugins/tabline/nvim-bufferline/nvim-bufferline.nix index 14243670..ff255c6c 100644 --- a/modules/plugins/tabline/nvim-bufferline/nvim-bufferline.nix +++ b/modules/plugins/tabline/nvim-bufferline/nvim-bufferline.nix @@ -109,7 +109,7 @@ in { type = nullOr str; default = null; description = '' - The indicatotor icon to use for the current buffer. + The indicator icon to use for the current buffer. ::: {.warning} This **must** be omitted while style is not `icon` From f07468e13a994b04ec3b9cd41777429942cdc8b1 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Tue, 6 May 2025 12:06:33 +0300 Subject: [PATCH 50/94] ci: fix labeler config --- .github/labels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/labels.yml b/.github/labels.yml index e799004f..34c3bf2c 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -24,7 +24,7 @@ - any-glob-to-any-file: - .github/workflows/*.yml - .github/typos.toml - . .github/dependabot.yml + - .github/dependabot.yml "topic: meta": - any: From 99f1200c8db9295e556255e49175a6d2a5c02fbd Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Tue, 6 May 2025 20:58:31 +0300 Subject: [PATCH 51/94] revert "Merge pull request #884 from horriblename/cmp-sources-normal-prio" Reverts commit d3c7f7125c5302721d711d1dc4e025c63c5e09a4, reversing changes made to f07468e13a994b04ec3b9cd41777429942cdc8b1. --- modules/plugins/completion/nvim-cmp/config.nix | 5 ----- modules/plugins/completion/nvim-cmp/nvim-cmp.nix | 8 ++------ 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/modules/plugins/completion/nvim-cmp/config.nix b/modules/plugins/completion/nvim-cmp/config.nix index cf27caaf..749ebb7c 100644 --- a/modules/plugins/completion/nvim-cmp/config.nix +++ b/modules/plugins/completion/nvim-cmp/config.nix @@ -60,11 +60,6 @@ in { enableSharedCmpSources = true; nvim-cmp = { - sources = { - nvim-cmp = null; - buffer = "[Buffer]"; - path = "[Path]"; - }; sourcePlugins = ["cmp-buffer" "cmp-path"]; setupOpts = { diff --git a/modules/plugins/completion/nvim-cmp/nvim-cmp.nix b/modules/plugins/completion/nvim-cmp/nvim-cmp.nix index 8105ed00..2c8c77d3 100644 --- a/modules/plugins/completion/nvim-cmp/nvim-cmp.nix +++ b/modules/plugins/completion/nvim-cmp/nvim-cmp.nix @@ -98,15 +98,11 @@ in { sources = mkOption { type = attrsOf (nullOr str); - defaultText = literalMD '' - These sources are included by default: - - ```nix + default = { nvim-cmp = null; buffer = "[Buffer]"; path = "[Path]"; - ``` - ''; + }; example = { nvim-cmp = null; buffer = "[Buffer]"; From edbfc120af31ab01eb92f32df6052c100ba4e218 Mon Sep 17 00:00:00 2001 From: tebro Date: Thu, 8 May 2025 20:59:27 +0300 Subject: [PATCH 52/94] Add .eslintrc.cjs as eslint config file option --- modules/plugins/languages/ts.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/plugins/languages/ts.nix b/modules/plugins/languages/ts.nix index 5a1e5889..b9971488 100644 --- a/modules/plugins/languages/ts.nix +++ b/modules/plugins/languages/ts.nix @@ -101,6 +101,7 @@ "eslint.config.js" "eslint.config.mjs" ".eslintrc" + ".eslintrc.cjs" ".eslintrc.json" ".eslintrc.js" ".eslintrc.yml" From 09f2e1d5245c5e9d35e6b451d47affec0c006157 Mon Sep 17 00:00:00 2001 From: Noah765 <99338019+Noah765@users.noreply.github.com> Date: Fri, 9 May 2025 01:33:01 +0200 Subject: [PATCH 53/94] lsp: fix toggleFormatOnSave (#869) Co-authored-by: Ching Pei Yang <59727193+horriblename@users.noreply.github.com> Co-authored-by: raf --- modules/plugins/lsp/config.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/plugins/lsp/config.nix b/modules/plugins/lsp/config.nix index 3702ac5f..c2320aaf 100644 --- a/modules/plugins/lsp/config.nix +++ b/modules/plugins/lsp/config.nix @@ -84,13 +84,13 @@ in { group = augroup, buffer = bufnr, callback = function() + if vim.b.disableFormatSave then + return + end + ${ if config.vim.lsp.null-ls.enable then '' - if vim.b.disableFormatSave then - return - end - local function is_null_ls_formatting_enabled(bufnr) local file_type = vim.api.nvim_buf_get_option(bufnr, "filetype") local generators = require("null-ls.generators").get_available( From 22f57045275e2e2ca27e070372c8c16664705df7 Mon Sep 17 00:00:00 2001 From: Venkatesan Ravi Date: Mon, 31 Mar 2025 21:06:54 +0000 Subject: [PATCH 54/94] Make conform respect config.vim.lsp.formatOnSave and config.vim.lsp.mappings.toggleFormatOnSave --- .../formatter/conform-nvim/conform-nvim.nix | 67 ++++++++++++------- 1 file changed, 42 insertions(+), 25 deletions(-) diff --git a/modules/plugins/formatter/conform-nvim/conform-nvim.nix b/modules/plugins/formatter/conform-nvim/conform-nvim.nix index 727985a3..cfe89bf3 100644 --- a/modules/plugins/formatter/conform-nvim/conform-nvim.nix +++ b/modules/plugins/formatter/conform-nvim/conform-nvim.nix @@ -1,12 +1,9 @@ -{ - pkgs, - lib, - ... -}: let - inherit (lib.options) mkOption mkEnableOption literalExpression; - inherit (lib.types) attrs enum nullOr; - inherit (lib.nvim.types) mkPluginSetupOption; - inherit (lib.nvim.lua) mkLuaInline; +{lib, ...}: let + inherit (lib.generators) mkLuaInline; + inherit (lib.options) mkOption mkEnableOption literalMD; + inherit (lib.types) attrs either nullOr; + inherit (lib.nvim.lua) toLuaObject; + inherit (lib.nvim.types) luaInline mkPluginSetupOption; in { options.vim.formatter.conform-nvim = { enable = mkEnableOption "lightweight yet powerful formatter plugin for Neovim [conform-nvim]"; @@ -31,26 +28,46 @@ in { }; format_on_save = mkOption { - type = nullOr attrs; - default = { - lsp_format = "fallback"; - timeout_ms = 500; - }; + type = nullOr (either attrs luaInline); + default = mkLuaInline '' + function() + if not vim.g.formatsave or vim.b.disableFormatSave then + return + else + return {lsp_format = "fallback", timeout_ms = 500} + end + end + ''; + defaultText = literalMD '' + enabled by default, and respects {option}`vim.lsp.formatOnSave` and + {option}`vim.lsp.mappings.toggleFormatSave` + ''; description = '' - Table that will be passed to `conform.format()`. If this - is set, Conform will run the formatter on save. + Attribute set or Lua function that will be passed to + `conform.format()`. If this is set, Conform will run the formatter + on save. ''; }; - format_after_save = mkOption { - type = nullOr attrs; - default = {lsp_format = "fallback";}; - description = '' - Table that will be passed to `conform.format()`. If this - is set, Conform will run the formatter asynchronously after - save. - ''; - }; + format_after_save = let + defaultFormatAfterSaveOpts = {lsp_format = "fallback";}; + in + mkOption { + type = nullOr (either attrs luaInline); + default = mkLuaInline '' + function() + if not vim.g.formatsave or vim.b.disableFormatSave then + return + else + return ${toLuaObject defaultFormatAfterSaveOpts} + end + end + ''; + description = '' + Table or function(luainline) that will be passed to `conform.format()`. If this + is set, Conform will run the formatter asynchronously after save. + ''; + }; }; }; } From 4f0cc5725a7bdf2a9e880d5a59f360968419e8ea Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Fri, 9 May 2025 03:56:41 +0200 Subject: [PATCH 55/94] lsp: prefer conform for format on save --- modules/plugins/lsp/config.nix | 120 +++++++++++++++------------------ 1 file changed, 54 insertions(+), 66 deletions(-) diff --git a/modules/plugins/lsp/config.nix b/modules/plugins/lsp/config.nix index c2320aaf..8d4a3c8e 100644 --- a/modules/plugins/lsp/config.nix +++ b/modules/plugins/lsp/config.nix @@ -6,6 +6,7 @@ }: let inherit (lib.generators) mkLuaInline; inherit (lib.modules) mkIf; + inherit (lib.lists) optional; inherit (lib.strings) optionalString; inherit (lib.trivial) boolToString; inherit (lib.nvim.binds) addDescriptionsToMappings; @@ -14,7 +15,10 @@ usingNvimCmp = config.vim.autocomplete.nvim-cmp.enable; usingBlinkCmp = config.vim.autocomplete.blink-cmp.enable; self = import ./module.nix {inherit config lib pkgs;}; + conformCfg = config.vim.formatter.conform-nvim; + conformFormatOnSave = conformCfg.enable && conformCfg.setupOpts.format_on_save != null; + augroup = "nvf_lsp"; mappingDefinitions = self.options.vim.lsp.mappings; mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions; mkBinding = binding: action: @@ -29,24 +33,59 @@ in { sourcePlugins = ["cmp-nvim-lsp"]; }; + augroups = [{name = augroup;}]; autocmds = - if cfg.inlayHints.enable - then [ - { - callback = mkLuaInline '' - function(event) - local bufnr = event.buf - local client = vim.lsp.get_client_by_id(event.data.client_id) - if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then - vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr }), { bufnr = bufnr }) + (optional cfg.inlayHints.enable { + group = augroup; + event = ["LspAttach"]; + desc = "LSP on-attach enable inlay hints autocmd"; + callback = mkLuaInline '' + function(event) + local bufnr = event.buf + local client = vim.lsp.get_client_by_id(event.data.client_id) + if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then + vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr }), { bufnr = bufnr }) + end + end + ''; + }) + ++ (optional (!conformFormatOnSave) { + group = augroup; + event = ["BufWritePre"]; + desc = "LSP on-attach create format on save autocmd"; + callback = mkLuaInline '' + function(ev) + if vim.b.disableFormatSave or not vim.g.formatsave then + return + end + + local bufnr = ev.buf + + ${optionalString cfg.null-ls.enable '' + -- prefer null_ls formatter + do + local clients = vim.lsp.get_clients({ + bufnr = bufnr, + name = "null-ls", + method = "textDocument/formatting", + }) + if clients[1] then + vim.lsp.buf.format({ bufnr = bufnr, id = clients[1].id }) + return end end - ''; - desc = "LSP on-attach enable inlay hints autocmd"; - event = ["LspAttach"]; - } - ] - else []; + ''} + + local clients = vim.lsp.get_clients({ + bufnr = bufnr, + method = "textDocument/formatting", + }) + if clients[1] then + vim.lsp.buf.format({ bufnr = bufnr, id = clients[1].id }) + end + end + ''; + }); pluginRC.lsp-setup = '' vim.g.formatsave = ${boolToString cfg.formatOnSave}; @@ -74,60 +113,9 @@ in { ${mkBinding mappings.toggleFormatOnSave "function() vim.b.disableFormatSave = not vim.b.disableFormatSave end"} end - -- Enable formatting - local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) - - format_callback = function(client, bufnr) - if vim.g.formatsave then - vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) - vim.api.nvim_create_autocmd("BufWritePre", { - group = augroup, - buffer = bufnr, - callback = function() - if vim.b.disableFormatSave then - return - end - - ${ - if config.vim.lsp.null-ls.enable - then '' - local function is_null_ls_formatting_enabled(bufnr) - local file_type = vim.api.nvim_buf_get_option(bufnr, "filetype") - local generators = require("null-ls.generators").get_available( - file_type, - require("null-ls.methods").internal.FORMATTING - ) - return #generators > 0 - end - - if is_null_ls_formatting_enabled(bufnr) then - vim.lsp.buf.format({ - bufnr = bufnr, - filter = function(client) - return client.name == "null-ls" - end - }) - else - vim.lsp.buf.format({ - bufnr = bufnr, - }) - end - '' - else " - vim.lsp.buf.format({ - bufnr = bufnr, - }) - " - } - end, - }) - end - end - ${optionalString config.vim.ui.breadcrumbs.enable ''local navic = require("nvim-navic")''} default_on_attach = function(client, bufnr) attach_keymaps(client, bufnr) - format_callback(client, bufnr) ${optionalString config.vim.ui.breadcrumbs.enable '' -- let navic attach to buffers if client.server_capabilities.documentSymbolProvider then From 955f2046cf7f6518ae7aab044af2318f7b80cd18 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Fri, 9 May 2025 04:02:10 +0200 Subject: [PATCH 56/94] lsp: add TODO --- modules/plugins/lsp/config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/plugins/lsp/config.nix b/modules/plugins/lsp/config.nix index 8d4a3c8e..e7b67c8e 100644 --- a/modules/plugins/lsp/config.nix +++ b/modules/plugins/lsp/config.nix @@ -126,6 +126,7 @@ in { local capabilities = vim.lsp.protocol.make_client_capabilities() ${optionalString usingNvimCmp '' + -- TODO(horriblename): migrate to vim.lsp.config['*'] -- HACK: copied from cmp-nvim-lsp. If we ever lazy load lspconfig we -- should re-evaluate whether we can just use `default_capabilities` capabilities = { From 29f6940868c30a75494bf6586b8314538bd395ad Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Fri, 9 May 2025 04:16:30 +0200 Subject: [PATCH 57/94] docs: update release notes --- docs/release-notes/rl-0.8.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index e0c06fc8..6581a277 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -109,6 +109,7 @@ - Add tsx support in conform and lint - Moved code setting `additionalRuntimePaths` and `enableLuaLoader` out of `luaConfigPre`'s default to prevent being overridden +- Use conform over custom autocmds for LSP format on save [diniamo](https://github.com/diniamo): @@ -312,6 +313,8 @@ - Fix fzf-lua having a hard dependency on fzf. - Enable inlay hints support - `config.vim.lsp.inlayHints`. - Add `neo-tree`, `snacks.picker` extensions to `lualine`. +- Add support for `vim.lsp.formatOnSave` and + `vim.lsp.mappings.toggleFormatOnSave` [tebuevd](https://github.com/tebuevd): @@ -361,7 +364,8 @@ [Hardtime.nvim]: https://github.com/m4xshen/hardtime.nvim -- Add Plugin [Hardtime.nvim] under `vim.binds.hardtime-nvim` with `enable` and `setupOpts` options +- Add Plugin [Hardtime.nvim] under `vim.binds.hardtime-nvim` with `enable` and + `setupOpts` options [taylrfnt](https://github.com/taylrfnt): From fee3bbe536b5bf484aedebafa5130b485068b64f Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 10 May 2025 07:54:24 +0300 Subject: [PATCH 58/94] languages/markdown: fix formatting --- modules/plugins/languages/markdown.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index aadb0c40..23848835 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -193,7 +193,7 @@ in { require("markview").setup(${toLuaObject cfg.extensions.markview-nvim.setupOpts}) ''; }) - + (mkIf cfg.extraDiagnostics.enable { vim.diagnostics.nvim-lint = { enable = true; From a099cdaf977beb3517afdfcee2057fc70b870ce7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandra=20=C3=98stermark?= Date: Sat, 10 May 2025 13:42:57 +0200 Subject: [PATCH 59/94] add ruby lsp as ruby server option --- modules/plugins/languages/ruby.nix | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/modules/plugins/languages/ruby.nix b/modules/plugins/languages/ruby.nix index ab0e0905..5d6a151e 100644 --- a/modules/plugins/languages/ruby.nix +++ b/modules/plugins/languages/ruby.nix @@ -9,6 +9,8 @@ inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; inherit (lib.nvim.types) mkGrammarOption diagnostics; + inherit (lib.nvim.lua) expToLua; + inherit (lib.lists) isList; inherit (lib.types) either listOf package str enum; cfg = config.vim.languages.ruby; @@ -24,10 +26,28 @@ flags = { debounce_text_changes = 150, }, - cmd = { "${pkgs.solargraph}/bin/solargraph", "stdio" } + cmd = ${ + if isList cfg.lsp.package + then expToLua cfg.lsp.package + else ''{ "${cfg.lsp.package}/bin/solargraph", "stdio" }'' + } } ''; }; + rubylsp = { + package = pkgs.ruby-lsp; + lspConfig = '' + lspconfig.ruby_lsp.setup { + capabilities = capabilities, + on_attach = default_on_attach, + cmd = ${ + if isList cfg.lsp.package + then expToLua cfg.lsp.package + else ''{ "${cfg.lsp.package}/bin/ruby-lsp" }'' + } + } + ''; + } }; # testing From 054e4a3b9c8be8609b5134e058becd15b96eb4c2 Mon Sep 17 00:00:00 2001 From: Christoph Koehler Date: Thu, 8 May 2025 18:52:16 -0600 Subject: [PATCH 60/94] feat: add treesitter textobjects --- docs/release-notes/rl-0.8.md | 2 ++ modules/plugins/treesitter/default.nix | 1 + .../treesitter/ts-textobjects/config.nix | 23 +++++++++++++++++++ .../treesitter/ts-textobjects/default.nix | 6 +++++ .../treesitter/ts-textobjects/textobjects.nix | 21 +++++++++++++++++ npins/sources.json | 13 +++++++++++ 6 files changed, 66 insertions(+) create mode 100644 modules/plugins/treesitter/ts-textobjects/config.nix create mode 100644 modules/plugins/treesitter/ts-textobjects/default.nix create mode 100644 modules/plugins/treesitter/ts-textobjects/textobjects.nix diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 0155c759..45e4eb9b 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -329,11 +329,13 @@ [flash.nvim]: https://github.com/folke/flash.nvim [gitlinker.nvim]: https://github.com/linrongbin16/gitlinker.nvim +[nvim-treesitter-textobjects]: https://github.com/nvim-treesitter/nvim-treesitter-textobjects - Fix oil config referencing snacks - Add [flash.nvim] plugin to `vim.utility.motion.flash-nvim` - Fix default telescope ignore list entry for '.git/' to properly match - Add [gitlinker.nvim] plugin to `vim.git.gitlinker-nvim` +- Add [nvim-treesitter-textobjects] plugin to `vim.treesitter.textobjects` [rrvsh](https://github.com/rrvsh): diff --git a/modules/plugins/treesitter/default.nix b/modules/plugins/treesitter/default.nix index a859f3af..ea8ac9cd 100644 --- a/modules/plugins/treesitter/default.nix +++ b/modules/plugins/treesitter/default.nix @@ -2,6 +2,7 @@ imports = [ # treesitter extras ./ts-context + ./ts-textobjects ./treesitter.nix ./config.nix diff --git a/modules/plugins/treesitter/ts-textobjects/config.nix b/modules/plugins/treesitter/ts-textobjects/config.nix new file mode 100644 index 00000000..7a9239d1 --- /dev/null +++ b/modules/plugins/treesitter/ts-textobjects/config.nix @@ -0,0 +1,23 @@ +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.nvim.lua) toLuaObject; + inherit (lib.nvim.dag) entryAfter; + + inherit (config.vim) treesitter; + cfg = treesitter.textobjects; +in { + config = mkIf (treesitter.enable && cfg.enable) { + vim = { + startPlugins = ["nvim-treesitter-textobjects"]; + + # set up treesitter-textobjects after Treesitter, whose config we're adding to. + pluginRC.treesitter-textobjects = entryAfter ["treesitter"] '' + require("nvim-treesitter.configs").setup({textobjects = ${toLuaObject cfg.setupOpts}}) + ''; + }; + }; +} diff --git a/modules/plugins/treesitter/ts-textobjects/default.nix b/modules/plugins/treesitter/ts-textobjects/default.nix new file mode 100644 index 00000000..d0ae48a3 --- /dev/null +++ b/modules/plugins/treesitter/ts-textobjects/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./textobjects.nix + ./config.nix + ]; +} diff --git a/modules/plugins/treesitter/ts-textobjects/textobjects.nix b/modules/plugins/treesitter/ts-textobjects/textobjects.nix new file mode 100644 index 00000000..07e72135 --- /dev/null +++ b/modules/plugins/treesitter/ts-textobjects/textobjects.nix @@ -0,0 +1,21 @@ +{lib, ...}: let + inherit (lib.options) mkEnableOption; + inherit (lib.nvim.types) mkPluginSetupOption; +in { + options.vim.treesitter.textobjects = { + enable = mkEnableOption "Treesitter textobjects"; + setupOpts = + mkPluginSetupOption "treesitter-textobjects" {} + // { + example = { + select = { + enable = true; + lookahead = true; + keymaps = { + af = "@function.outer"; + }; + }; + }; + }; + }; +} diff --git a/npins/sources.json b/npins/sources.json index e74da05b..d4c0aa14 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -1906,6 +1906,19 @@ "url": "https://github.com/nvim-treesitter/nvim-treesitter-context/archive/6daca3ad780f045550b820f262002f35175a6c04.tar.gz", "hash": "0qprwd44hw9sz0vh14p6lpvs9vxrick462pfkradmal6ak1kfwn3" }, + "nvim-treesitter-textobjects": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-textobjects" + }, + "branch": "master", + "submodules": false, + "revision": "0e3be38005e9673d044e994b1e4b123adb040179", + "url": "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/archive/0e3be38005e9673d044e994b1e4b123adb040179.tar.gz", + "hash": "0y93pj3asarw7jhk4cdphhx6awxdyiwajc0n9nr4836gn48qcs85" + }, "nvim-ts-autotag": { "type": "Git", "repository": { From 8efdfd508e7f17ed8ea36e2a84e219fec89d3481 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandra=20=C3=98stermark?= Date: Mon, 12 May 2025 10:41:58 +0200 Subject: [PATCH 61/94] add release notes --- 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 0155c759..de683d5d 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -375,3 +375,8 @@ - Add missing `right_align` option for existing `renderer.icons` options. - Add missing `render.icons` options (`hidden_placement`, `diagnostics_placement`, and `bookmarks_placement`). + +[cramt](https://github.com/cramt): + +- Add `rubylsp` option in `vim.languages.ruby.lsp.server` to use shopify's + ruby-lsp language server From e72bf9398df3801ea7ee61fe5e4725cec1f9bd8e Mon Sep 17 00:00:00 2001 From: Gerg-L Date: Mon, 12 May 2025 20:04:29 -0400 Subject: [PATCH 62/94] fix: install blink docs --- flake/blink/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/flake/blink/default.nix b/flake/blink/default.nix index 08c87073..ef1498d8 100644 --- a/flake/blink/default.nix +++ b/flake/blink/default.nix @@ -14,8 +14,15 @@ rustPlatform.buildRustPackage (finalAttrs: { hash = "sha256-bKe8SSg1HPWE7b4iRQJwiOVCrvvgttuHCOIa4U/38AY="; }; + forceShare = [ + "man" + "info" + ]; + postInstall = '' cp -r {lua,plugin} "$out" + mkdir -p "$out/doc" + cp 'doc/'*'.txt' "$out/doc/" mkdir -p "$out/target" mv "$out/lib" "$out/target/release" ''; From ae49dd7dd3671dd1d7cd6d6c91d5ecca9dc74cc7 Mon Sep 17 00:00:00 2001 From: Soliprem <73885403+Soliprem@users.noreply.github.com> Date: Tue, 13 May 2025 13:51:29 +0200 Subject: [PATCH 63/94] languages/ruby: fix missing semicolon missing semicolon --- modules/plugins/languages/ruby.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/plugins/languages/ruby.nix b/modules/plugins/languages/ruby.nix index 5d6a151e..1f3ce82f 100644 --- a/modules/plugins/languages/ruby.nix +++ b/modules/plugins/languages/ruby.nix @@ -47,7 +47,7 @@ } } ''; - } + }; }; # testing From 3dcd8c796e66c76576b32e95b4ad659e844a362a Mon Sep 17 00:00:00 2001 From: haskex Date: Wed, 14 May 2025 22:01:05 -0300 Subject: [PATCH 64/94] themes/solarized-osaka: init --- modules/plugins/theme/supported-themes.nix | 13 +++++++++++++ npins/sources.json | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/modules/plugins/theme/supported-themes.nix b/modules/plugins/theme/supported-themes.nix index 2b427871..9c5e380c 100644 --- a/modules/plugins/theme/supported-themes.nix +++ b/modules/plugins/theme/supported-themes.nix @@ -212,4 +212,17 @@ in { ''; styles = ["dark" "light" "dark_dimmed" "dark_default" "light_default" "dark_high_contrast" "light_high_contrast" "dark_colorblind" "light_colorblind" "dark_tritanopia" "light_tritanopia"]; }; + solarized-osaka = { + setup = {transparent ? false, ...}: '' + require("solarized-osaka").setup({ + transparent = ${boolToString transparent}, + styles = { + comments = { italic = false }, + keywords = { italic = false }, + } + }) + + vim.cmd.colorscheme("solarized-osaka") + ''; + }; } diff --git a/npins/sources.json b/npins/sources.json index 6f74e256..5b2245d0 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -2225,6 +2225,19 @@ "url": "https://api.github.com/repos/folke/snacks.nvim/tarball/v2.22.0", "hash": "1hbm4fnw51qdp0nz83fcxbvnxjq2k57a37w6dp0wz6wkcx7cwxw9" }, + "solarized-osaka": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "craftzdog", + "repo": "solarized-osaka.nvim" + }, + "branch": "main", + "submodules": false, + "revision": "f796014c14b1910e08d42cc2077fef34f08e0295", + "url": "https://github.com/craftzdog/solarized-osaka.nvim/archive/f796014c14b1910e08d42cc2077fef34f08e0295.tar.gz", + "hash": "0jy2hk4fc210jih30ybvisr9pliya1s3nazw4d131vh5k4p1xqi6" + }, "sqls-nvim": { "type": "Git", "repository": { From fde3dfbabdecbb2638c38336e3f5b57536d995e9 Mon Sep 17 00:00:00 2001 From: haskex Date: Thu, 15 May 2025 10:07:31 -0300 Subject: [PATCH 65/94] Adding changelog, and test again --- docs/release-notes/rl-0.8.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index f55b847c..17f024b4 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -392,3 +392,9 @@ - Add `rubylsp` option in `vim.languages.ruby.lsp.server` to use shopify's ruby-lsp language server + +[Haskex](https://github.com/haskex): + +[solarized-osaka.nvim]: https://github.com/craftzdog/solarized-osaka.nvim + +- Add [solarized-osaka.nvim] theme From d8ac181663820771484fe6a6e7d2e17994060f6f Mon Sep 17 00:00:00 2001 From: Horu <73709188+HigherOrderLogic@users.noreply.github.com> Date: Fri, 16 May 2025 18:38:53 +1000 Subject: [PATCH 66/94] docs: fix info block --- docs/manual/try-it-out.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual/try-it-out.md b/docs/manual/try-it-out.md index 8714be80..5f326b15 100644 --- a/docs/manual/try-it-out.md +++ b/docs/manual/try-it-out.md @@ -28,7 +28,7 @@ $ nix run github:notashelf/nvf#maximal ### Available Configurations {#sec-available-configs} -:::{.info} +::: {.info} The below configurations are provided for demonstration purposes, and are **not** designed to be installed as is. You may From 32b9694840fc96a81b5e7964f23a73f6a1406e70 Mon Sep 17 00:00:00 2001 From: haskex Date: Fri, 16 May 2025 11:44:02 -0300 Subject: [PATCH 67/94] utility/img-clip: init --- .../plugins/utility/binds/hardtime/config.nix | 2 +- .../utility/images/img-clip/config.nix | 23 +++++++++++++++++++ .../utility/images/img-clip/default.nix | 6 +++++ .../utility/images/img-clip/img-clip.nix | 11 +++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 modules/plugins/utility/images/img-clip/config.nix create mode 100644 modules/plugins/utility/images/img-clip/default.nix create mode 100644 modules/plugins/utility/images/img-clip/img-clip.nix diff --git a/modules/plugins/utility/binds/hardtime/config.nix b/modules/plugins/utility/binds/hardtime/config.nix index e8c315ef..66b1f063 100644 --- a/modules/plugins/utility/binds/hardtime/config.nix +++ b/modules/plugins/utility/binds/hardtime/config.nix @@ -14,7 +14,7 @@ in { startPlugins = ["hardtime-nvim"]; pluginRC.hardtime = entryAnywhere '' - require("hardtime").setup (${toLuaObject cfg.setupOpts}) + require("hardtime").setup(${toLuaObject cfg.setupOpts}) ''; }; }; diff --git a/modules/plugins/utility/images/img-clip/config.nix b/modules/plugins/utility/images/img-clip/config.nix new file mode 100644 index 00000000..cadd815f --- /dev/null +++ b/modules/plugins/utility/images/img-clip/config.nix @@ -0,0 +1,23 @@ +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.nvim.dag) entryAnywhere; + inherit (lib.nvim.lua) toLuaObject; + + cfg = config.vim.utility.images.img-clip; +in { + config = mkIf cfg.enable { + vim = { + startPlugins = [ + "img-clip" + ]; + + pluginRC.image-nvim = entryAnywhere '' + require("img-clip").setup(${toLuaObject cfg.setupOpts}) + ''; + }; + }; +} diff --git a/modules/plugins/utility/images/img-clip/default.nix b/modules/plugins/utility/images/img-clip/default.nix new file mode 100644 index 00000000..70c15604 --- /dev/null +++ b/modules/plugins/utility/images/img-clip/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./config.nix + ./img-clip.nix + ]; +} diff --git a/modules/plugins/utility/images/img-clip/img-clip.nix b/modules/plugins/utility/images/img-clip/img-clip.nix new file mode 100644 index 00000000..ce07feae --- /dev/null +++ b/modules/plugins/utility/images/img-clip/img-clip.nix @@ -0,0 +1,11 @@ +{lib, ...}: let + inherit (lib.options) mkEnableOption; + + inherit (lib.nvim.types) mkPluginSetupOption; +in { + options.vim.utility.images.img-clip = { + enable = mkEnableOption "img-clip to paste images into any markup language"; + + setupOpts = mkPluginSetupOption "img-clip" {}; + }; +} From 62cd4154a24e385db9c0e1e3dfeb8cfb2c75834c Mon Sep 17 00:00:00 2001 From: haskex Date: Fri, 16 May 2025 19:42:21 -0300 Subject: [PATCH 68/94] Tested and able to merge --- configuration.nix | 1 + docs/release-notes/rl-0.8.md | 8 ++++++++ modules/plugins/utility/images/default.nix | 1 + npins/sources.json | 14 ++++++++++++++ 4 files changed, 24 insertions(+) diff --git a/configuration.nix b/configuration.nix index 6e3175ef..dee5001f 100644 --- a/configuration.nix +++ b/configuration.nix @@ -199,6 +199,7 @@ isMaximal: { }; images = { image-nvim.enable = false; + img-clip.enable = isMaximal; }; }; diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index f55b847c..e635ebce 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -392,3 +392,11 @@ - Add `rubylsp` option in `vim.languages.ruby.lsp.server` to use shopify's ruby-lsp language server + +[Haskex](https://github.com/haskex): + +[img-clip.nvim]: https://github.com/hakonharnes/img-clip.nvim + +- Add [img-clip.nvim] plugin in `vim.utility.images.img-clip` with `enable` and + `setupOpts` +- Add `vim.utility.images.img-clip.enable = isMaximal` in configuration.nix diff --git a/modules/plugins/utility/images/default.nix b/modules/plugins/utility/images/default.nix index 5b876e0a..1f398aa8 100644 --- a/modules/plugins/utility/images/default.nix +++ b/modules/plugins/utility/images/default.nix @@ -1,5 +1,6 @@ { imports = [ ./image-nvim + ./img-clip ]; } diff --git a/npins/sources.json b/npins/sources.json index d4c0aa14..c4aef85e 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -705,6 +705,19 @@ "url": "https://github.com/3rd/image.nvim/archive/4c51d6202628b3b51e368152c053c3fb5c5f76f2.tar.gz", "hash": "16s1wsy9k72qiqzvwij67j2jzwgi6ggl6lhx9p6lfw8dpps3ayxg" }, + "img-clip": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "hakonharnes", + "repo": "img-clip.nvim" + }, + "branch": "main", + "submodules": false, + "revision": "08a02e14c8c0d42fa7a92c30a98fd04d6993b35d", + "url": "https://github.com/hakonharnes/img-clip.nvim/archive/08a02e14c8c0d42fa7a92c30a98fd04d6993b35d.tar.gz", + "hash": "0ani8z5pkvqmmalzcgyj27rfhqs76ivmpq79xn8rsdyy5a5fy979" + }, "indent-blankline-nvim": { "type": "Git", "repository": { @@ -869,6 +882,7 @@ "repo": "markview.nvim" }, "branch": "main", + "submodules": false, "revision": "6c92a6455e97c954a4a419265a032fedd69846f6", "url": "https://github.com/OXY2DEV/markview.nvim/archive/6c92a6455e97c954a4a419265a032fedd69846f6.tar.gz", "hash": "01sw4iscnciyifpba4cwjb6fs95wrkk60xvqq67b8d5j8yb5449a" From a0905ee428cf75c94e97ef80ea79d1d16f2c8968 Mon Sep 17 00:00:00 2001 From: rice-cracker-dev Date: Sat, 17 May 2025 11:46:43 +0700 Subject: [PATCH 69/94] basic: deprecate scrollOffset --- modules/extra/deprecations.nix | 2 +- modules/neovim/init/basic.nix | 9 +-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/modules/extra/deprecations.nix b/modules/extra/deprecations.nix index 91d8ef28..0a5733ab 100644 --- a/modules/extra/deprecations.nix +++ b/modules/extra/deprecations.nix @@ -18,7 +18,7 @@ showSignColumn = "signcolumn"; # 2025-02-07 - scrollOff = "scrolloff"; + scrollOffset = "scrolloff"; }; in { imports = concatLists [ diff --git a/modules/neovim/init/basic.nix b/modules/neovim/init/basic.nix index 195ef5e7..2f3934ae 100644 --- a/modules/neovim/init/basic.nix +++ b/modules/neovim/init/basic.nix @@ -6,11 +6,10 @@ inherit (lib.options) mkOption mkEnableOption literalMD; inherit (lib.strings) optionalString; inherit (lib.attrsets) optionalAttrs; - inherit (lib.types) enum bool str int either; + inherit (lib.types) enum bool str either; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.binds) pushDownDefault; - inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.types) luaInline; cfg = config.vim; @@ -22,12 +21,6 @@ in { description = "Hide search highlight so it doesn't stay highlighted"; }; - scrollOffset = mkOption { - type = int; - default = 8; - description = "Start scrolling this number of lines from the top or bottom of the page."; - }; - syntaxHighlighting = mkOption { type = bool; default = !config.vim.treesitter.highlight.enable; From 6d1b7ec094e7d3ce935f8c9e66c9b15d0b4d77f6 Mon Sep 17 00:00:00 2001 From: rice-cracker-dev Date: Sat, 17 May 2025 11:53:39 +0700 Subject: [PATCH 70/94] docs: deprecate vim.scrollOffset --- docs/release-notes/rl-0.8.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 17f024b4..cf12a6a3 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -308,6 +308,7 @@ `vim.diagnostics.nvim-lint.linters.*.required_files`. - Add global function `nvf_lint` under `vim.diagnostics.nvim-lint.lint_function`. +- Deprecate `vim.scrollOffset` in favor of `vim.options.scrolloff`. [Sc3l3t0n](https://github.com/Sc3l3t0n): From 1643b5262b65f90fe020172ef231bf2f36b58048 Mon Sep 17 00:00:00 2001 From: haskex Date: Sat, 17 May 2025 12:04:44 -0300 Subject: [PATCH 71/94] Fixing conflits --- docs/release-notes/rl-0.8.md | 8 -------- temp | 7 +++++++ 2 files changed, 7 insertions(+), 8 deletions(-) create mode 100644 temp diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index e635ebce..f55b847c 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -392,11 +392,3 @@ - Add `rubylsp` option in `vim.languages.ruby.lsp.server` to use shopify's ruby-lsp language server - -[Haskex](https://github.com/haskex): - -[img-clip.nvim]: https://github.com/hakonharnes/img-clip.nvim - -- Add [img-clip.nvim] plugin in `vim.utility.images.img-clip` with `enable` and - `setupOpts` -- Add `vim.utility.images.img-clip.enable = isMaximal` in configuration.nix diff --git a/temp b/temp new file mode 100644 index 00000000..0f6ab5b6 --- /dev/null +++ b/temp @@ -0,0 +1,7 @@ +[Haskex](https://github.com/haskex): + +[img-clip.nvim]: https://github.com/hakonharnes/img-clip.nvim + +- Add [img-clip.nvim] plugin in `vim.utility.images.img-clip` with `enable` and + `setupOpts` +- Add `vim.utility.images.img-clip.enable = isMaximal` in configuration.nix From 23e40da9a4d0eb5c4b15f60e8910da742e827be1 Mon Sep 17 00:00:00 2001 From: haskex Date: Sat, 17 May 2025 12:08:24 -0300 Subject: [PATCH 72/94] remove temp file and add changelog --- docs/release-notes/rl-0.8.md | 6 ++++++ temp | 7 ------- 2 files changed, 6 insertions(+), 7 deletions(-) delete mode 100644 temp diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index cf12a6a3..09698657 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -399,3 +399,9 @@ [solarized-osaka.nvim]: https://github.com/craftzdog/solarized-osaka.nvim - Add [solarized-osaka.nvim] theme + +[img-clip.nvim]: https://github.com/hakonharnes/img-clip.nvim + +- Add [img-clip.nvim] plugin in `vim.utility.images.img-clip` with `enable` and + `setupOpts` +- Add `vim.utility.images.img-clip.enable = isMaximal` in configuration.nix diff --git a/temp b/temp deleted file mode 100644 index 0f6ab5b6..00000000 --- a/temp +++ /dev/null @@ -1,7 +0,0 @@ -[Haskex](https://github.com/haskex): - -[img-clip.nvim]: https://github.com/hakonharnes/img-clip.nvim - -- Add [img-clip.nvim] plugin in `vim.utility.images.img-clip` with `enable` and - `setupOpts` -- Add `vim.utility.images.img-clip.enable = isMaximal` in configuration.nix From eecebde41319bf1cbf7f1faa80d6d9d8f6be2610 Mon Sep 17 00:00:00 2001 From: Gerg-L Date: Sat, 17 May 2025 10:36:47 -0400 Subject: [PATCH 73/94] flake: update mnw --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 65cee2ae..4160ae76 100644 --- a/flake.lock +++ b/flake.lock @@ -38,11 +38,11 @@ }, "mnw": { "locked": { - "lastModified": 1746338991, - "narHash": "sha256-GbyoHjf14LOxZQc+0NFblI4xf/uwGrYo3W8lwE4HcwI=", + "lastModified": 1747499976, + "narHash": "sha256-YTiSI4WLbk0CleXeBheYmKZV6iqKyBpyoh1e+vcQzu4=", "owner": "Gerg-L", "repo": "mnw", - "rev": "c65407ee9387ef75985dad3e30f58c822c766ec1", + "rev": "72433a144c4ac16931e9148f78db4a0e4c147441", "type": "github" }, "original": { From 23e50a8eb71e6ffa6af4bfd3d65eb813048b0e5d Mon Sep 17 00:00:00 2001 From: Gerg-L Date: Sat, 17 May 2025 10:48:27 -0400 Subject: [PATCH 74/94] fix: noBuildPlug naming --- modules/wrapper/build/config.nix | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/modules/wrapper/build/config.nix b/modules/wrapper/build/config.nix index 00ad2305..dd22bed8 100644 --- a/modules/wrapper/build/config.nix +++ b/modules/wrapper/build/config.nix @@ -7,23 +7,20 @@ }: let inherit (pkgs) vimPlugins; inherit (lib.trivial) flip; - inherit (builtins) path filter isString; + inherit (builtins) filter isString; getPin = name: ((pkgs.callPackages ../../../npins/sources.nix {}) // config.vim.pluginOverrides).${name}; noBuildPlug = pname: let pin = getPin pname; - version = pin.revision or "dirty"; - in { - # vim.lazy.plugins relies on pname, so we only set that here - # version isn't needed for anything, but inherit it anyway for correctness - inherit pname version; - outPath = path { - name = "${pname}-0-unstable-${version}"; - path = pin.outPath; + version = builtins.substring 0 8 pin.revision; + in + pin.outPath.overrideAttrs { + inherit pname version; + name = "${pname}-${version}"; + + passthru.vimPlugin = false; }; - passthru.vimPlugin = false; - }; # build a vim plugin with the given name and arguments # if the plugin is nvim-treesitter, warn the user to use buildTreesitterPlug From 37aac453966129dc6636282fa44161fde60bf39b Mon Sep 17 00:00:00 2001 From: Christoph Koehler Date: Thu, 15 May 2025 11:36:15 -0600 Subject: [PATCH 75/94] fix: disable Conform for Rust if we have rust-analyzer enabled --- docs/release-notes/rl-0.8.md | 2 ++ modules/plugins/languages/rust.nix | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index f55b847c..a8a8d542 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -346,6 +346,8 @@ - Fix default telescope ignore list entry for '.git/' to properly match - Add [gitlinker.nvim] plugin to `vim.git.gitlinker-nvim` - Add [nvim-treesitter-textobjects] plugin to `vim.treesitter.textobjects` +- Default to disabling Conform for Rust if rust-analyzer is used + - To force using Conform, set `languages.rust.format.enable = true`. [rrvsh](https://github.com/rrvsh): diff --git a/modules/plugins/languages/rust.nix b/modules/plugins/languages/rust.nix index 677f7d3b..09c54ae6 100644 --- a/modules/plugins/languages/rust.nix +++ b/modules/plugins/languages/rust.nix @@ -7,7 +7,7 @@ inherit (builtins) attrNames; inherit (lib.meta) getExe; inherit (lib.modules) mkIf mkMerge; - inherit (lib.options) mkOption mkEnableOption; + inherit (lib.options) mkOption mkEnableOption literalMD; inherit (lib.strings) optionalString; inherit (lib.trivial) boolToString; inherit (lib.lists) isList; @@ -68,7 +68,14 @@ in { }; format = { - enable = mkEnableOption "Rust formatting" // {default = config.vim.languages.enableFormat;}; + enable = + mkEnableOption "Rust formatting" + // { + default = !cfg.lsp.enable && config.vim.languages.enableFormat; + defaultText = literalMD '' + Disabled if Rust LSP is enabled, otherwise follows {option}`vim.languages.enableFormat` + ''; + }; type = mkOption { description = "Rust formatter to use"; From c4d040b0b03dc97a66e6bc90b22b898b6d4ef26c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandra=20=C3=98stermark?= Date: Sun, 18 May 2025 20:31:56 +0200 Subject: [PATCH 76/94] assistant/avante.nvim apply suggested changes Change the options to use mkOption when applicable and apply changes to descriptions Change the building of the vimPlugin to use npin dependencies instead of dependencies from nixpkgs --- configuration.nix | 1 + flake/avante-nvim/default.nix | 38 ++--- flake/packages.nix | 1 + .../plugins/assistant/avante/avante-nvim.nix | 142 +++++++----------- modules/plugins/assistant/avante/config.nix | 19 ++- 5 files changed, 86 insertions(+), 115 deletions(-) diff --git a/configuration.nix b/configuration.nix index dee5001f..2995fee8 100644 --- a/configuration.nix +++ b/configuration.nix @@ -248,6 +248,7 @@ isMaximal: { cmp.enable = isMaximal; }; codecompanion-nvim.enable = false; + avante-nvim.enable = isMaximal; }; session = { diff --git a/flake/avante-nvim/default.nix b/flake/avante-nvim/default.nix index 61a28fac..513a3117 100644 --- a/flake/avante-nvim/default.nix +++ b/flake/avante-nvim/default.nix @@ -10,6 +10,7 @@ pkgs, version, src, + pins, }: let inherit version src; avante-nvim-lib = rustPlatform.buildRustPackage { @@ -44,20 +45,20 @@ in pname = "avante-nvim"; inherit version src; - dependencies = with vimPlugins; [ - nvim-treesitter - dressing-nvim - plenary-nvim - nui-nvim - - # optional, not sure how we best deal with adding these as options for the user to set - mini-pick - telescope-nvim - nvim-cmp - fzf-lua - nvim-web-devicons - img-clip-nvim - ]; + dependencies = + [vimPlugins.nvim-treesitter] + ++ (builtins.map (name: let + pin = pins.${name}; + in + pkgs.fetchFromGitHub { + inherit (pin.repository) owner repo; + rev = pin.revision; + sha256 = pin.hash; + }) [ + "dressing-nvim" + "plenary-nvim" + "nui-nvim" + ]); postInstall = let ext = stdenv.hostPlatform.extensions.sharedLibrary; @@ -69,15 +70,6 @@ in ln -s ${avante-nvim-lib}/lib/libavante_html2md${ext} $out/build/avante_html2md${ext} ''; - passthru = { - updateScript = nix-update-script { - attrPath = "vimPlugins.avante-nvim.avante-nvim-lib"; - }; - - # needed for the update script - inherit avante-nvim-lib; - }; - nvimSkipModules = [ # Requires setup with corresponding provider "avante.providers.azure" diff --git a/flake/packages.nix b/flake/packages.nix index 1e9ae941..5161b34f 100644 --- a/flake/packages.nix +++ b/flake/packages.nix @@ -28,6 +28,7 @@ rev = pin.revision; sha256 = pin.hash; }; + pins = self.pins; }; inherit (docs.manual) htmlOpenTool; diff --git a/modules/plugins/assistant/avante/avante-nvim.nix b/modules/plugins/assistant/avante/avante-nvim.nix index 3e101865..7d52fab8 100644 --- a/modules/plugins/assistant/avante/avante-nvim.nix +++ b/modules/plugins/assistant/avante/avante-nvim.nix @@ -1,11 +1,11 @@ {lib, ...}: let inherit (lib.options) mkOption mkEnableOption literalMD; - inherit (lib.types) int str enum nullOr attrs; + inherit (lib.types) int str enum nullOr attrs bool; inherit (lib.nvim.types) mkPluginSetupOption; in { options.vim.assistant = { avante-nvim = { - enable = mkEnableOption "complementary neovim plugin for avante.nvim"; + enable = mkEnableOption "complementary Neovim plugin for avante.nvim"; setupOpts = mkPluginSetupOption "avante-nvim" { provider = mkOption { type = nullOr str; @@ -54,18 +54,13 @@ in { type = nullOr str; default = null; description = '' - The provider used in the applying phase of Cursor Planning Mode, defaults to nil, - when nil uses Config.provider as the provider for the applying phase + The provider used in the applying phase of Cursor Planning Mode, defaults to `nil`, + Config.provider will be used as the provider for the applying phase when `nil`. ''; }; dual_boost = { - enabled = - mkEnableOption "" - // { - default = false; - description = "Whether to enable dual_boost mode."; - }; + enabled = mkEnableOption "dual_boost mode."; first_provider = mkOption { type = str; @@ -81,7 +76,11 @@ in { prompt = mkOption { type = str; - default = "Based on the two reference outputs below, generate a response that incorporates elements from both but reflects your own judgment and unique perspective. Do not provide any explanation, just give the response directly. Reference Output 1: [{{provider1_output}}], Reference Output 2: [{{provider2_output}}]"; + default = '' + Based on the two reference outputs below, generate a response that incorporates + elements from both but reflects your own judgment and unique perspective. + Do not provide any explanation, just give the response directly. Reference Output 1: + [{{provider1_output}}], Reference Output 2: [{{provider2_output}}''; description = "The prompt to generate response based on the two reference outputs."; }; @@ -94,70 +93,45 @@ in { behaviour = { auto_suggestions = - mkEnableOption "" - // { - default = false; - description = "Whether to enable auto suggestions."; - }; + mkEnableOption "auto suggestions."; auto_set_highlight_group = - mkEnableOption "" + mkEnableOption "automatically set the highlight group for the current line." // { default = true; - description = "Whether to automatically set the highlight group for the current line."; }; auto_set_keymaps = - mkEnableOption "" + mkEnableOption "automatically set the keymap for the current line." // { default = true; - description = "Whether to automatically set the keymap for the current line."; }; auto_apply_diff_after_generation = - mkEnableOption "" - // { - default = false; - description = "Whether to automatically apply diff after LLM response."; - }; + mkEnableOption "automatically apply diff after LLM response."; - support_paste_from_clipboard = - mkEnableOption "" - // { - default = false; - description = '' - Whether to support pasting image from clipboard. - This will be determined automatically based whether img-clip is available or not. - ''; - }; + support_paste_from_clipboard = mkEnableOption '' + pasting image from clipboard. + This will be determined automatically based whether img-clip is available or not. + ''; minimize_diff = - mkEnableOption "" + mkEnableOption "remove unchanged lines when applying a code block." // { default = true; - description = "Whether to remove unchanged lines when applying a code block."; }; enable_token_counting = - mkEnableOption "" + mkEnableOption "token counting." // { default = true; - description = "Whether to enable token counting. Default to true."; }; enable_cursor_planning_mode = - mkEnableOption "" - // { - default = false; - description = "Whether to enable Cursor Planning Mode. Default to false."; - }; + mkEnableOption "Cursor Planning Mode."; enable_claude_text_editor_tool_mode = - mkEnableOption "" - // { - default = false; - description = "Whether to enable Claude Text Editor Tool Mode."; - }; + mkEnableOption "Claude Text Editor Tool Mode."; }; mappings = { @@ -230,14 +204,11 @@ in { }; sidebar_header = { - enabled = - mkEnableOption "" - // { - default = true; - description = '' - enable/disable the header. - ''; - }; + enabled = mkOption { + type = bool; + default = true; + description = "enable/disable the header."; + }; align = mkOption { type = enum ["right" "center" "left"]; @@ -245,12 +216,11 @@ in { description = "Position of the title."; }; - rounded = - mkEnableOption "" - // { - default = true; - description = "Enable rounded sidebar header"; - }; + rounded = mkOption { + type = bool; + default = true; + description = "Enable rounded sidebar header"; + }; }; input = { @@ -276,34 +246,31 @@ in { description = "The border type on the edit window."; }; - start_insert = - mkEnableOption "" - // { - default = true; - description = '' - Start insert mode when opening the edit window. - ''; - }; + start_insert = mkOption { + type = bool; + default = true; + description = '' + Start insert mode when opening the edit window. + ''; + }; }; ask = { - floating = - mkEnableOption "" - // { - default = false; - description = '' - Open the 'AvanteAsk' prompt in a floating window. - ''; - }; + floating = mkOption { + type = bool; + default = false; + description = '' + Open the 'AvanteAsk' prompt in a floating window. + ''; + }; - start_insert = - mkEnableOption "" - // { - default = true; - description = '' - Start insert mode when opening the ask window. - ''; - }; + start_insert = mkOption { + type = bool; + default = true; + description = '' + Start insert mode when opening the ask window. + ''; + }; border = mkOption { type = str; @@ -330,8 +297,9 @@ in { override_timeoutlen = mkOption { type = int; default = 500; + example = -1; description = '' - Override the 'timeoutlen' setting while hovering over a diff (see :help timeoutlen). + Override the 'timeoutlen' setting while hovering over a diff (see {command}`:help timeoutlen`). Helps to avoid entering operator-pending mode with diff mappings starting with `c`. Disable by setting to -1. ''; diff --git a/modules/plugins/assistant/avante/config.nix b/modules/plugins/assistant/avante/config.nix index bb97780f..e140de89 100644 --- a/modules/plugins/assistant/avante/config.nix +++ b/modules/plugins/assistant/avante/config.nix @@ -4,16 +4,25 @@ ... }: let inherit (lib.modules) mkIf; + inherit (lib.lists) optionals; cfg = config.vim.assistant.avante-nvim; in { config = mkIf cfg.enable { vim = { - startPlugins = [ - "plenary-nvim" - "dressing-nvim" - "nui-nvim" - ]; + startPlugins = + [ + "nvim-treesitter" + "plenary-nvim" + "dressing-nvim" + "nui-nvim" + ] + ++ (optionals config.vim.mini.pick.enable ["mini-pick"]) + ++ (optionals config.vim.telescope.enable ["telescope"]) + ++ (optionals config.vim.autocomplete.nvim-cmp.enable ["nvim-cmp"]) + ++ (optionals config.vim.fzf-lua.enable ["fzf-lua"]) + ++ (optionals config.vim.visuals.nvim-web-devicons.enable ["nvim-web-devicons"]) + ++ (optionals config.vim.utility.images.img-clip.enable ["img-clip"]); lazy.plugins = { avante-nvim = { From a15ad3cd11eb6a871179a15840b620ac5f938456 Mon Sep 17 00:00:00 2001 From: Andreas Nilsson Date: Sat, 17 May 2025 17:03:08 +0200 Subject: [PATCH 77/94] languages/clojure: init --- docs/release-notes/rl-0.8.md | 7 ++++ modules/plugins/languages/clojure.nix | 56 +++++++++++++++++++++++++++ modules/plugins/languages/default.nix | 1 + 3 files changed, 64 insertions(+) create mode 100644 modules/plugins/languages/clojure.nix diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 1f10476f..e67ee69b 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -407,3 +407,10 @@ - Add [img-clip.nvim] plugin in `vim.utility.images.img-clip` with `enable` and `setupOpts` - Add `vim.utility.images.img-clip.enable = isMaximal` in configuration.nix + +[anil9](https://github.com/anil9): + +[clojure-lsp]: https://github.com/clojure-lsp/clojure-lsp +[conjure]: https://github.com/Olical/conjure + +- Add Clojure support under `vim.languages.clojure` using [clojure-lsp] and [conjure]. diff --git a/modules/plugins/languages/clojure.nix b/modules/plugins/languages/clojure.nix new file mode 100644 index 00000000..5259d4ff --- /dev/null +++ b/modules/plugins/languages/clojure.nix @@ -0,0 +1,56 @@ +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib.options) mkEnableOption mkOption; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.meta) getExe; + inherit (lib.lists) isList; + inherit (lib.types) either listOf package str; + inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.nvim.lua) expToLua; + + cfg = config.vim.languages.clojure; +in { + options.vim.languages.clojure = { + enable = mkEnableOption "Clojure language support"; + + treesitter = { + enable = mkEnableOption "Clojure treesitter" // {default = config.vim.languages.enableTreesitter;}; + package = mkGrammarOption pkgs "clojure"; + }; + + lsp = { + enable = mkEnableOption "Clojure LSP support" // {default = config.vim.lsp.enable;}; + package = mkOption { + description = "Clojure LSP"; + type = either package (listOf str); + default = pkgs.clojure-lsp; + }; + }; + }; + + config = mkIf cfg.enable (mkMerge [ + (mkIf cfg.lsp.enable { + vim.lsp.lspconfig.enable = true; + vim.lsp.lspconfig.sources.clojure-lsp = '' + lspconfig.clojure_lsp.setup { + capabilities = capabilities; + on_attach = default_on_attach; + cmd = ${ + if isList cfg.lsp.package + then expToLua cfg.lsp.package + else ''{"${getExe cfg.lsp.package}"}'' + }; + } + ''; + }) + + (mkIf cfg.treesitter.enable { + vim.treesitter.enable = true; + vim.treesitter.grammars = [cfg.treesitter.package]; + }) + ]); +} diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index 25b99080..961d7cc5 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -9,6 +9,7 @@ in { ./cue.nix ./dart.nix ./clang.nix + ./clojure.nix ./css.nix ./elixir.nix ./fsharp.nix From 9e50a89d7ed7734dc4db84916bd0e6b6d83c9af8 Mon Sep 17 00:00:00 2001 From: Andreas Nilsson Date: Wed, 21 May 2025 20:34:02 +0200 Subject: [PATCH 78/94] repl/conjure: init --- docs/release-notes/rl-0.8.md | 3 ++- modules/modules.nix | 1 + modules/plugins/repl/conjure/conjure.nix | 19 +++++++++++++++++++ modules/plugins/repl/conjure/default.nix | 5 +++++ modules/plugins/repl/default.nix | 5 +++++ 5 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 modules/plugins/repl/conjure/conjure.nix create mode 100644 modules/plugins/repl/conjure/default.nix create mode 100644 modules/plugins/repl/default.nix diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index e67ee69b..385eb548 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -413,4 +413,5 @@ [clojure-lsp]: https://github.com/clojure-lsp/clojure-lsp [conjure]: https://github.com/Olical/conjure -- Add Clojure support under `vim.languages.clojure` using [clojure-lsp] and [conjure]. +- Add Clojure support under `vim.languages.clojure` using [clojure-lsp] +- Add code evaluation environment [conjure] under `vim.repl.conjure` diff --git a/modules/modules.nix b/modules/modules.nix index c7e198dd..97bfa211 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -33,6 +33,7 @@ "minimap" "notes" "projects" + "repl" "rich-presence" "runner" "session" diff --git a/modules/plugins/repl/conjure/conjure.nix b/modules/plugins/repl/conjure/conjure.nix new file mode 100644 index 00000000..dbcde32b --- /dev/null +++ b/modules/plugins/repl/conjure/conjure.nix @@ -0,0 +1,19 @@ +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib.options) mkEnableOption; + inherit (lib.modules) mkIf; + + cfg = config.vim.repl.conjure; +in { + options.vim.repl.conjure = { + enable = mkEnableOption "Whether to enable Conjure"; + }; + + config = mkIf cfg.enable { + vim.startPlugins = [pkgs.vimPlugins.conjure]; + }; +} diff --git a/modules/plugins/repl/conjure/default.nix b/modules/plugins/repl/conjure/default.nix new file mode 100644 index 00000000..de8c3190 --- /dev/null +++ b/modules/plugins/repl/conjure/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./conjure.nix + ]; +} diff --git a/modules/plugins/repl/default.nix b/modules/plugins/repl/default.nix new file mode 100644 index 00000000..ba03a390 --- /dev/null +++ b/modules/plugins/repl/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./conjure + ]; +} From f7b556ab240b1a25a0e85d7fe901919613cf8acb Mon Sep 17 00:00:00 2001 From: Andreas Nilsson Date: Thu, 22 May 2025 16:19:52 +0200 Subject: [PATCH 79/94] conjure option text update Co-authored-by: Ching Pei Yang <59727193+horriblename@users.noreply.github.com> --- modules/plugins/repl/conjure/conjure.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/plugins/repl/conjure/conjure.nix b/modules/plugins/repl/conjure/conjure.nix index dbcde32b..83481af2 100644 --- a/modules/plugins/repl/conjure/conjure.nix +++ b/modules/plugins/repl/conjure/conjure.nix @@ -10,7 +10,7 @@ cfg = config.vim.repl.conjure; in { options.vim.repl.conjure = { - enable = mkEnableOption "Whether to enable Conjure"; + enable = mkEnableOption "Conjure"; }; config = mkIf cfg.enable { From 316aeeae4e1a243e964fc3629cc14859cd8b6b96 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Sun, 13 Apr 2025 14:47:11 +0200 Subject: [PATCH 80/94] blink: do not set default for cmdline sources --- modules/plugins/completion/blink-cmp/blink-cmp.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/plugins/completion/blink-cmp/blink-cmp.nix b/modules/plugins/completion/blink-cmp/blink-cmp.nix index 65b88815..27a026ad 100644 --- a/modules/plugins/completion/blink-cmp/blink-cmp.nix +++ b/modules/plugins/completion/blink-cmp/blink-cmp.nix @@ -48,7 +48,7 @@ in { cmdline = { sources = mkOption { type = nullOr (listOf str); - default = []; + default = null; description = "List of sources to enable for cmdline. Null means use default source list."; }; From 195d39cef73d126cd1fe9b73e73ad800ecde61e3 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Sun, 13 Apr 2025 14:50:44 +0200 Subject: [PATCH 81/94] blink: add keybinds for cmdline --- modules/plugins/completion/blink-cmp/config.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/modules/plugins/completion/blink-cmp/config.nix b/modules/plugins/completion/blink-cmp/config.nix index 9302332e..2efd8d79 100644 --- a/modules/plugins/completion/blink-cmp/config.nix +++ b/modules/plugins/completion/blink-cmp/config.nix @@ -122,6 +122,21 @@ in { "fallback" ]; }; + + # cmdline is not enabled by default, we're just providing keymaps in + # case the user enables them + cmdline.keymap = { + ${mappings.complete} = ["show" "fallback"]; + ${mappings.close} = ["hide" "fallback"]; + ${mappings.scrollDocsUp} = ["scroll_documentation_up" "fallback"]; + ${mappings.scrollDocsDown} = ["scroll_documentation_down" "fallback"]; + # NOTE: mappings.confirm is skipped because our default, would + # lead to accidental triggers of blink.accept instead of executing + # the cmd + + ${mappings.next} = ["select_next" "show" "fallback"]; + ${mappings.previous} = ["select_prev" "fallback"]; + }; }; }; }; From 3da08708d7d91f4da45484ebe3cd5353c9ebde0d Mon Sep 17 00:00:00 2001 From: Andreas Nilsson Date: Mon, 26 May 2025 22:01:14 +0200 Subject: [PATCH 82/94] language/clojure: variable order Co-authored-by: Soliprem <73885403+Soliprem@users.noreply.github.com> --- modules/plugins/languages/clojure.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/plugins/languages/clojure.nix b/modules/plugins/languages/clojure.nix index 5259d4ff..0b932708 100644 --- a/modules/plugins/languages/clojure.nix +++ b/modules/plugins/languages/clojure.nix @@ -25,9 +25,9 @@ in { lsp = { enable = mkEnableOption "Clojure LSP support" // {default = config.vim.lsp.enable;}; package = mkOption { - description = "Clojure LSP"; type = either package (listOf str); default = pkgs.clojure-lsp; + description = "Clojure LSP"; }; }; }; From ec24c0ecafa698ec141f0d6208daf52b76316b18 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Tue, 27 May 2025 06:47:07 +0300 Subject: [PATCH 83/94] flake: bump inputs --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 4160ae76..5e02cd43 100644 --- a/flake.lock +++ b/flake.lock @@ -38,11 +38,11 @@ }, "mnw": { "locked": { - "lastModified": 1747499976, - "narHash": "sha256-YTiSI4WLbk0CleXeBheYmKZV6iqKyBpyoh1e+vcQzu4=", + "lastModified": 1748278309, + "narHash": "sha256-JCeiMrUhFku44kfKsgiD9Ibzho4MblBD2WmOQYsQyTY=", "owner": "Gerg-L", "repo": "mnw", - "rev": "72433a144c4ac16931e9148f78db4a0e4c147441", + "rev": "486a17ba1279ab2357cae8ff66b309db622f8831", "type": "github" }, "original": { @@ -77,11 +77,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1746152631, - "narHash": "sha256-zBuvmL6+CUsk2J8GINpyy8Hs1Zp4PP6iBWSmZ4SCQ/s=", + "lastModified": 1748217807, + "narHash": "sha256-P3u2PXxMlo49PutQLnk2PhI/imC69hFl1yY4aT5Nax8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "032bc6539bd5f14e9d0c51bd79cfe9a055b094c3", + "rev": "3108eaa516ae22c2360928589731a4f1581526ef", "type": "github" }, "original": { From 74ba4d955976af1422ea1f095968e547db70aa04 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Tue, 27 May 2025 06:55:55 +0300 Subject: [PATCH 84/94] pins: bump all plugins --- npins/sources.json | 406 ++++++++++++++++++++++----------------------- 1 file changed, 203 insertions(+), 203 deletions(-) diff --git a/npins/sources.json b/npins/sources.json index 940a7466..846b1c48 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -22,8 +22,8 @@ }, "branch": "main", "submodules": false, - "revision": "de72250e054e5e691b9736ee30db72c65d560771", - "url": "https://github.com/goolord/alpha-nvim/archive/de72250e054e5e691b9736ee30db72c65d560771.tar.gz", + "revision": "a35468cd72645dbd52c0624ceead5f301c566dff", + "url": "https://github.com/goolord/alpha-nvim/archive/a35468cd72645dbd52c0624ceead5f301c566dff.tar.gz", "hash": "0c1jkhxamfn2md7m1r5b2wpxa26y90b98yzjwf68m3fymalvkn5h" }, "base16": { @@ -35,9 +35,9 @@ }, "branch": "master", "submodules": false, - "revision": "965160025d0facbe9caa863e5beef2a7a488e9d1", - "url": "https://github.com/rrethy/base16-nvim/archive/965160025d0facbe9caa863e5beef2a7a488e9d1.tar.gz", - "hash": "02w1mn15gydma9canvqrlwf4l5z76s1vs01zanipwwflvwclsb8f" + "revision": "f9ce7474c54803cb0fa308b0b91549d394a07940", + "url": "https://github.com/rrethy/base16-nvim/archive/f9ce7474c54803cb0fa308b0b91549d394a07940.tar.gz", + "hash": "1d575pa225ws5rhabr17if5pl8vfy1ks1a9w3rx7f47vdk8ars4m" }, "blink-cmp-spell": { "type": "Git", @@ -74,9 +74,9 @@ }, "branch": "master", "submodules": false, - "revision": "a77aebc092ebece1eed108f301452ae774d6b67a", - "url": "https://github.com/moyiz/blink-emoji.nvim/archive/a77aebc092ebece1eed108f301452ae774d6b67a.tar.gz", - "hash": "0n4qv2mk7zx910gnwf9ri2w5qxwx8szx99nqqzik4yyvl4axm41d" + "revision": "f22ce8cac02a6ece05368220f1e38bd34fe376f9", + "url": "https://github.com/moyiz/blink-emoji.nvim/archive/f22ce8cac02a6ece05368220f1e38bd34fe376f9.tar.gz", + "hash": "1vnx779arsm4n1sjjwhraczp07am0i2n4m13jqv7ij01vd4c9wd4" }, "blink-ripgrep-nvim": { "type": "Git", @@ -87,9 +87,9 @@ }, "branch": "main", "submodules": false, - "revision": "0a2c3c1ce8c3c56e7490cae835a981d5dbeb472c", - "url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/0a2c3c1ce8c3c56e7490cae835a981d5dbeb472c.tar.gz", - "hash": "11wc0qdalz7fb6zpdvrdib1bx3qyvcbn3hr0h57plspln55rjhl5" + "revision": "a910b62c896eee2d0e74eb48b3ff5eedd211db69", + "url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/a910b62c896eee2d0e74eb48b3ff5eedd211db69.tar.gz", + "hash": "0xinh3rxjrglkzgw9d80x1scl20h2gxzkl3f3cjzpz04rrr6slsm" }, "bufdelete-nvim": { "type": "Git", @@ -113,9 +113,9 @@ }, "branch": "main", "submodules": false, - "revision": "b7bbdf93b42866f166af98d39a2563eedb7cabac", - "url": "https://github.com/catppuccin/nvim/archive/b7bbdf93b42866f166af98d39a2563eedb7cabac.tar.gz", - "hash": "0f8wcpig84kihbz31w0hap4qs5gsdvch4sk2krn29v3k5bh3kcv0" + "revision": "56a9dfd1e05868cf3189369aad87242941396563", + "url": "https://github.com/catppuccin/nvim/archive/56a9dfd1e05868cf3189369aad87242941396563.tar.gz", + "hash": "082rlnsxm1ip5mhpgc37nyp96s2hmvkcd4cbbvsvzdghiq4kl51b" }, "ccc-nvim": { "type": "Git", @@ -126,9 +126,9 @@ }, "branch": "main", "submodules": false, - "revision": "af2cf5a963f401aad868c065222ee13d4bbc9050", - "url": "https://github.com/uga-rosa/ccc.nvim/archive/af2cf5a963f401aad868c065222ee13d4bbc9050.tar.gz", - "hash": "0h43m2rz9jcckif036n6ybyv2zhgr25l0wpdg3fdfl7xkfs7sa1i" + "revision": "9d1a256e006decc574789dfc7d628ca11644d4c2", + "url": "https://github.com/uga-rosa/ccc.nvim/archive/9d1a256e006decc574789dfc7d628ca11644d4c2.tar.gz", + "hash": "0a2fc4bw88kf1dpp0k07aj8i9qp0xcnz1fvrxdkhz0fxddb7qdnx" }, "cellular-automaton-nvim": { "type": "Git", @@ -256,9 +256,9 @@ }, "branch": "main", "submodules": false, - "revision": "e55bbf5f6969ab41414d3fd68011366d3b80d024", - "url": "https://github.com/olimorris/codecompanion.nvim/archive/e55bbf5f6969ab41414d3fd68011366d3b80d024.tar.gz", - "hash": "12jas52gh1dl33ir0bkxpqnfxjdkwh7h03qvfk1b3qk2fmr0abqn" + "revision": "9edf22cb71711cd7fab7671a25ed5424011a379d", + "url": "https://github.com/olimorris/codecompanion.nvim/archive/9edf22cb71711cd7fab7671a25ed5424011a379d.tar.gz", + "hash": "1a23ra7q2aqa7raxa9jzgj852pz4bxkjr1k8qhh68lvrimmj0b73" }, "codewindow-nvim": { "type": "Git", @@ -269,9 +269,9 @@ }, "branch": "master", "submodules": false, - "revision": "dd7017617962943eb1d152fc58940f11c6775a4a", - "url": "https://github.com/gorbit99/codewindow.nvim/archive/dd7017617962943eb1d152fc58940f11c6775a4a.tar.gz", - "hash": "1kxkf50rkqrzqz03jvygbwxb1yfmqh0gskr00vpmyrq51569a2hw" + "revision": "a8e175043ce3baaa89e0a6b5171bcd920aab3dad", + "url": "https://github.com/gorbit99/codewindow.nvim/archive/a8e175043ce3baaa89e0a6b5171bcd920aab3dad.tar.gz", + "hash": "12nsdynpym15fl9qwjzlzhxr2mbpa0l6sp2r1rrc300jr59q0gkr" }, "comment-nvim": { "type": "Git", @@ -295,9 +295,9 @@ }, "branch": "master", "submodules": false, - "revision": "372fc521f8421b7830ea6db4d6ea3bae1c77548c", - "url": "https://github.com/stevearc/conform.nvim/archive/372fc521f8421b7830ea6db4d6ea3bae1c77548c.tar.gz", - "hash": "0b6qbwyb6ashpia7pk0r5kp82pdrblhmhmx1fprgy7lmgnm8mw97" + "revision": "6feb2f28f9a9385e401857b21eeac3c1b66dd628", + "url": "https://github.com/stevearc/conform.nvim/archive/6feb2f28f9a9385e401857b21eeac3c1b66dd628.tar.gz", + "hash": "1vfjv81b27qja3byfzskv1y57jsqwy6y0mac1ry7xpdbnva3vxwc" }, "copilot-cmp": { "type": "Git", @@ -321,9 +321,9 @@ }, "branch": "master", "submodules": false, - "revision": "a5c390f8d8e85b501b22dcb2f30e0cbbd69d5ff0", - "url": "https://github.com/zbirenbaum/copilot.lua/archive/a5c390f8d8e85b501b22dcb2f30e0cbbd69d5ff0.tar.gz", - "hash": "1pk6mh40kbja49xlsqv70wl3j89i6p996gf8z95b9b50pd2dsdgk" + "revision": "a620a5a97b73faba009a8160bab2885316e1451c", + "url": "https://github.com/zbirenbaum/copilot.lua/archive/a620a5a97b73faba009a8160bab2885316e1451c.tar.gz", + "hash": "0n3zkqnf5dqj6rdgf6nq50mjj7j5ngz4fzphfa13r7y8s5j0f6az" }, "crates-nvim": { "type": "Git", @@ -334,9 +334,9 @@ }, "branch": "main", "submodules": false, - "revision": "2c8f4fab02e3e9ea42c6ad9b547e4207a914a397", - "url": "https://github.com/Saecki/crates.nvim/archive/2c8f4fab02e3e9ea42c6ad9b547e4207a914a397.tar.gz", - "hash": "0ddlm94v3gh1znacghvfpfmkgv6js9i62gf7mlqcrpz8snpf879s" + "revision": "25f31372ab6f504d4fd7cfee836ad459caed8e68", + "url": "https://github.com/Saecki/crates.nvim/archive/25f31372ab6f504d4fd7cfee836ad459caed8e68.tar.gz", + "hash": "0vxgvnm5z9zpriplqq2q17c4v7ccmpc9f5wl02wpslfvwrfc6h2h" }, "csharpls-extended-lsp-nvim": { "type": "Git", @@ -347,9 +347,9 @@ }, "branch": "master", "submodules": false, - "revision": "c1edd1eaad2e649d3de8121337e3c515ac6db46e", - "url": "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/archive/c1edd1eaad2e649d3de8121337e3c515ac6db46e.tar.gz", - "hash": "03sjrkay6c6ivd9zpm7isa9izxsvspkvbvy7f61nl020splhbl9m" + "revision": "9cdc993347cfb51d102bf5da1ebf6bf4fc4683e4", + "url": "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/archive/9cdc993347cfb51d102bf5da1ebf6bf4fc4683e4.tar.gz", + "hash": "0ls3m94qk4vjwki7bjrf4di9fiwvh9hhkahav28c3nz14j559gs4" }, "dashboard-nvim": { "type": "Git", @@ -360,9 +360,9 @@ }, "branch": "master", "submodules": false, - "revision": "591b5b29e2f17b97496ec3179f6ecd08bb8502cc", - "url": "https://github.com/glepnir/dashboard-nvim/archive/591b5b29e2f17b97496ec3179f6ecd08bb8502cc.tar.gz", - "hash": "1f9ii3scd3zh4fch6h0mfmnfjx2fk6y4v3qc0cijk1vnyp2fm9qc" + "revision": "0f99b3cd66b9fde13926724c67c6e1abeb48e07d", + "url": "https://github.com/glepnir/dashboard-nvim/archive/0f99b3cd66b9fde13926724c67c6e1abeb48e07d.tar.gz", + "hash": "0s0i568nj4mkq0q29gjj9cm050p7n8b2jykbkyl7qajc1piwa93x" }, "diffview-nvim": { "type": "Git", @@ -438,9 +438,9 @@ }, "branch": "main", "submodules": false, - "revision": "41545d9d02a53d03b5f4da5881e8f30a7dc16031", - "url": "https://github.com/Chaitanyabsprip/fastaction.nvim/archive/41545d9d02a53d03b5f4da5881e8f30a7dc16031.tar.gz", - "hash": "1is587xa1b2fim4s3qc13ggwgpm02y4dmh64l4xjh6gyilh3fmkb" + "revision": "6b4205aa380b1f118b7b4f6d004d3704b73d0d23", + "url": "https://github.com/Chaitanyabsprip/fastaction.nvim/archive/6b4205aa380b1f118b7b4f6d004d3704b73d0d23.tar.gz", + "hash": "1xa78afcnlvvvdp10bhy13sqyscl1z1n8s40jhdfqy42i98qqqnj" }, "fidget-nvim": { "type": "Git", @@ -477,9 +477,9 @@ }, "branch": "main", "submodules": false, - "revision": "6faf2c70bd56f1fe78620591a2bb73f4dc6f4870", - "url": "https://github.com/akinsho/flutter-tools.nvim/archive/6faf2c70bd56f1fe78620591a2bb73f4dc6f4870.tar.gz", - "hash": "0mhqzicm56xp20mm8swmick63p9sbbby394v0qykzb9l73wpqdka" + "revision": "d5bb1dc3db78d7ab65dd8c5a6f32a38e383b9cb1", + "url": "https://github.com/akinsho/flutter-tools.nvim/archive/d5bb1dc3db78d7ab65dd8c5a6f32a38e383b9cb1.tar.gz", + "hash": "046fk727prhav2aha62ak50qvc3mmv8sc438hkhhd1ql3ilb7jrr" }, "friendly-snippets": { "type": "Git", @@ -503,9 +503,9 @@ }, "branch": "main", "submodules": false, - "revision": "1cc70fb29e63ff26acba1e0cbca04705f8a485f1", - "url": "https://github.com/ibhagwan/fzf-lua/archive/1cc70fb29e63ff26acba1e0cbca04705f8a485f1.tar.gz", - "hash": "032y3djil7bsb2h0sv5a0a1qg805j5p2jxxp01jcpmn870b6mcjd" + "revision": "a3e614173397e947bc2755c8c90633ff57f93c1e", + "url": "https://github.com/ibhagwan/fzf-lua/archive/a3e614173397e947bc2755c8c90633ff57f93c1e.tar.gz", + "hash": "03vh73ss0xm5sw392w3crmh5y60ajpn2b8ipnpslch2vaf155x6z" }, "gesture-nvim": { "type": "Git", @@ -568,9 +568,9 @@ }, "branch": "main", "submodules": false, - "revision": "1796c7cedfe7e5dd20096c5d7b8b753d8f8d22eb", - "url": "https://github.com/lewis6991/gitsigns.nvim/archive/1796c7cedfe7e5dd20096c5d7b8b753d8f8d22eb.tar.gz", - "hash": "0xzmj3z3rd1zxv5hc87ncmnrzm6653ffaif9xkpvnc3n8l81ybsn" + "revision": "8b729e489f1475615dc6c9737da917b3bc163605", + "url": "https://github.com/lewis6991/gitsigns.nvim/archive/8b729e489f1475615dc6c9737da917b3bc163605.tar.gz", + "hash": "06ag4vksr64l8yffrsahl86x45c1klyyfzw7b0fzzncp918drrmi" }, "glow-nvim": { "type": "Git", @@ -594,9 +594,9 @@ }, "branch": "main", "submodules": false, - "revision": "91a0f8e460197a521d42a2e84a7a2a4010be4bbb", - "url": "https://github.com/ellisonleao/gruvbox.nvim/archive/91a0f8e460197a521d42a2e84a7a2a4010be4bbb.tar.gz", - "hash": "1bmxps0wawyvwyzcwzdxbf1wcqx6v7h6afj3yzgb38gz649wr8q7" + "revision": "00e38a379bab3389e187b3953566d67d494dfddd", + "url": "https://github.com/ellisonleao/gruvbox.nvim/archive/00e38a379bab3389e187b3953566d67d494dfddd.tar.gz", + "hash": "1qavm9qkx3rwl3dsvs4xzw0ffhf4lmgzdmc51l00rjrb50ia3cpm" }, "hardtime-nvim": { "type": "Git", @@ -607,9 +607,9 @@ }, "branch": "main", "submodules": false, - "revision": "9aaec65de041bddfc4c0af66919030d2950bcea8", - "url": "https://github.com/m4xshen/hardtime.nvim/archive/9aaec65de041bddfc4c0af66919030d2950bcea8.tar.gz", - "hash": "1rmcl200a4m3ip3xjzhh7ghhh2961xj2mw7yf0w44jpvs98gqb18" + "revision": "1a3648a53002c2911ccb88e9c9f876cdc6c43ad6", + "url": "https://github.com/m4xshen/hardtime.nvim/archive/1a3648a53002c2911ccb88e9c9f876cdc6c43ad6.tar.gz", + "hash": "1dp0ckqq8s7s8si5r4889r84gpr38ghvsnar775rwg5vpsyq917d" }, "harpoon": { "type": "Git", @@ -633,9 +633,9 @@ }, "branch": "master", "submodules": false, - "revision": "3bec28d8b0006be596497a5e1a03bda6ef6131cf", - "url": "https://github.com/mrcjkb/haskell-tools.nvim/archive/3bec28d8b0006be596497a5e1a03bda6ef6131cf.tar.gz", - "hash": "1kf3w7x8awa4iiw7ab8xfjh6fq47yvv6h2rmfw0jf8s99fvgarj2" + "revision": "7ec43968cd30ba52b1ade311acffaecddb718259", + "url": "https://github.com/mrcjkb/haskell-tools.nvim/archive/7ec43968cd30ba52b1ade311acffaecddb718259.tar.gz", + "hash": "0cgilybpdwb5rd7i4z4f24ff3zz6f6zzk4vlnpkzx36z1538lxn4" }, "highlight-undo-nvim": { "type": "Git", @@ -753,9 +753,9 @@ }, "branch": "main", "submodules": false, - "revision": "2b68ddc0802bd295e64c9e2e75f18f755e50dbcc", - "url": "https://github.com/ggandor/leap.nvim/archive/2b68ddc0802bd295e64c9e2e75f18f755e50dbcc.tar.gz", - "hash": "07bdhfsig70qblvk2x0n35i5apz3mjdr05ba3082mh438ikgfmvx" + "revision": "189102b07cdd24de3bd7132e57da8c9614c385fc", + "url": "https://github.com/ggandor/leap.nvim/archive/189102b07cdd24de3bd7132e57da8c9614c385fc.tar.gz", + "hash": "0rdvrxdq43szm360rrnmxzmrm5wp6l91xkysnkl4d9p6rlyx01nz" }, "leetcode-nvim": { "type": "Git", @@ -779,9 +779,9 @@ }, "branch": "master", "submodules": false, - "revision": "a793d02b6a5e639fa9d3f2a89a839fa688ab2d0a", - "url": "https://github.com/ray-x/lsp_signature.nvim/archive/a793d02b6a5e639fa9d3f2a89a839fa688ab2d0a.tar.gz", - "hash": "0y5ffzj613kf0mq74yj248176fywn4vrsnn1fhip7j5yni1cyhzy" + "revision": "2b30d8582126a12a493b737e9761969eb869a05b", + "url": "https://github.com/ray-x/lsp_signature.nvim/archive/2b30d8582126a12a493b737e9761969eb869a05b.tar.gz", + "hash": "12ywprr9mv1kfjagfsmp603r9nyrb993wq86jk5sxppj6zir4va9" }, "lspkind-nvim": { "type": "Git", @@ -831,9 +831,9 @@ }, "branch": "master", "submodules": false, - "revision": "15884cee63a8c205334ab13ab1c891cd4d27101a", - "url": "https://github.com/hoob3rt/lualine.nvim/archive/15884cee63a8c205334ab13ab1c891cd4d27101a.tar.gz", - "hash": "0c251ywx5gsqwafgn2pb7qrv43cimrxp4wwqhlxccizf3l6l9wy1" + "revision": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af", + "url": "https://github.com/hoob3rt/lualine.nvim/archive/0c6cca9f2c63dadeb9225c45bc92bb95a151d4af.tar.gz", + "hash": "11qwr67i0i04dvj9zjl9nfdwkb3i2vfza4i6066zd7msccv9z9v7" }, "luasnip": { "type": "Git", @@ -844,9 +844,9 @@ }, "branch": "master", "submodules": false, - "revision": "7351d673f430e89f11962dc45b7360d6a0a26d2d", - "url": "https://github.com/L3MON4D3/LuaSnip/archive/7351d673f430e89f11962dc45b7360d6a0a26d2d.tar.gz", - "hash": "0dd42ss93cppq3cp27336gail955lckqqc6bafkmawplxh93qn1q" + "revision": "faf3c94a44508cec1b961406d36cc65113ff3b98", + "url": "https://github.com/L3MON4D3/LuaSnip/archive/faf3c94a44508cec1b961406d36cc65113ff3b98.tar.gz", + "hash": "18d5wmf6s4z7h0vy87nkazikh9jpzk8i8c54g5kpmf3kfliv3lp1" }, "lz-n": { "type": "Git", @@ -857,9 +857,9 @@ }, "branch": "master", "submodules": false, - "revision": "a10519ab5940a5364560043df9dc3db328e27f98", - "url": "https://github.com/nvim-neorocks/lz.n/archive/a10519ab5940a5364560043df9dc3db328e27f98.tar.gz", - "hash": "18q0hai33qrb950lg8w9nk83smqpp1ahiyrn6pv9dqyakbqhx1k1" + "revision": "6984e04b8dfdecedd61687271947725bc86f66d5", + "url": "https://github.com/nvim-neorocks/lz.n/archive/6984e04b8dfdecedd61687271947725bc86f66d5.tar.gz", + "hash": "01qgwcq71v51dcimw1mlcy7ikkrw25s15jsmck1f6hkz4h08zqpq" }, "lzn-auto-require": { "type": "Git", @@ -883,9 +883,9 @@ }, "branch": "main", "submodules": false, - "revision": "6c92a6455e97c954a4a419265a032fedd69846f6", - "url": "https://github.com/OXY2DEV/markview.nvim/archive/6c92a6455e97c954a4a419265a032fedd69846f6.tar.gz", - "hash": "01sw4iscnciyifpba4cwjb6fs95wrkk60xvqq67b8d5j8yb5449a" + "revision": "68c9603b6f88fd962444f8579024418fe5e170f1", + "url": "https://github.com/OXY2DEV/markview.nvim/archive/68c9603b6f88fd962444f8579024418fe5e170f1.tar.gz", + "hash": "1kfgr9d3kbxqagcddkns7n5fhmsm6xpx80gsrryyz96hxd8kj9ws" }, "mind-nvim": { "type": "Git", @@ -909,9 +909,9 @@ }, "branch": "main", "submodules": false, - "revision": "e139eb1101beb0250fea322f8c07a42f0f175688", - "url": "https://github.com/echasnovski/mini.ai/archive/e139eb1101beb0250fea322f8c07a42f0f175688.tar.gz", - "hash": "1lc7nwxlm4ndf2d2m4y90dybscig39qh5ijacns5r40w31rfgpmc" + "revision": "b91997d220086e92edc1fec5ce82094dcc234291", + "url": "https://github.com/echasnovski/mini.ai/archive/b91997d220086e92edc1fec5ce82094dcc234291.tar.gz", + "hash": "0ziv1l9jmj4a0yvj6xrx68j6hgivpxkp25cgnsw5k8i6h7m112mw" }, "mini-align": { "type": "Git", @@ -922,9 +922,9 @@ }, "branch": "main", "submodules": false, - "revision": "2b42ac0be7d570c2208f9e334ecef13453cd222d", - "url": "https://github.com/echasnovski/mini.align/archive/2b42ac0be7d570c2208f9e334ecef13453cd222d.tar.gz", - "hash": "12k8jv9f4kzn4gn507539v1llm1zn0afl2pwihv4gsr62l9gbmw9" + "revision": "969bdcdf9b88e30bda9cb8ad6f56afed208778ad", + "url": "https://github.com/echasnovski/mini.align/archive/969bdcdf9b88e30bda9cb8ad6f56afed208778ad.tar.gz", + "hash": "0yp6flw1xwwb8s74186bi5pm3m0426aixl34g8dm98wl66hh162c" }, "mini-animate": { "type": "Git", @@ -974,9 +974,9 @@ }, "branch": "main", "submodules": false, - "revision": "cd77e1e498a561a0f11b41a650caa1ba3a6a3fcc", - "url": "https://github.com/echasnovski/mini.bracketed/archive/cd77e1e498a561a0f11b41a650caa1ba3a6a3fcc.tar.gz", - "hash": "1490iv3j7ks3c04x48xqysq62kya9ygxca84avhah4pg43h1pws9" + "revision": "079b8375e40ebf3f8af319ad835263ff390c3965", + "url": "https://github.com/echasnovski/mini.bracketed/archive/079b8375e40ebf3f8af319ad835263ff390c3965.tar.gz", + "hash": "1d7kz48400bjdlkrlfparmi4w44mq08gp5bvz9vggc7hmm0baa4n" }, "mini-bufremove": { "type": "Git", @@ -1000,9 +1000,9 @@ }, "branch": "main", "submodules": false, - "revision": "298ece93383cf7feb82ff726ebe3570573cd6308", - "url": "https://github.com/echasnovski/mini.clue/archive/298ece93383cf7feb82ff726ebe3570573cd6308.tar.gz", - "hash": "09av4cxvfqc8vfhdhfa6dlv1l47hqfq9ip6w23xpdfv8acdhqr44" + "revision": "8b8598afa285f2a25cfd15a67e7eaa210ad405c3", + "url": "https://github.com/echasnovski/mini.clue/archive/8b8598afa285f2a25cfd15a67e7eaa210ad405c3.tar.gz", + "hash": "12p09p8b9b79fpqw8f9pfbs5l6gra3agbns0zaipm2aja0kkisva" }, "mini-colors": { "type": "Git", @@ -1013,9 +1013,9 @@ }, "branch": "main", "submodules": false, - "revision": "c45b8ee96f0347134e34ba3f0adaf08a9a8826d3", - "url": "https://github.com/echasnovski/mini.colors/archive/c45b8ee96f0347134e34ba3f0adaf08a9a8826d3.tar.gz", - "hash": "1px2x50h613f3jahhr24bmkkwxpwnf68c5acz51r89rmj5dl5v9r" + "revision": "ef76867adda63d6010acdc8732a816c8527d276b", + "url": "https://github.com/echasnovski/mini.colors/archive/ef76867adda63d6010acdc8732a816c8527d276b.tar.gz", + "hash": "0z2cg6fsy5idqp0p3i6rrx9mp48g4z915ylbi5q597d1vmglqffm" }, "mini-comment": { "type": "Git", @@ -1026,9 +1026,9 @@ }, "branch": "main", "submodules": false, - "revision": "fb867a9246f9b892cf51a8c84a3f8479cdf1558c", - "url": "https://github.com/echasnovski/mini.comment/archive/fb867a9246f9b892cf51a8c84a3f8479cdf1558c.tar.gz", - "hash": "0d3yl412f95alg5rlvq387sbx3gwyqa0nc2f8ivgw5vllnwycj3a" + "revision": "22ee9f6be1c78bcebe009a564758e5b6df08903b", + "url": "https://github.com/echasnovski/mini.comment/archive/22ee9f6be1c78bcebe009a564758e5b6df08903b.tar.gz", + "hash": "1j1bg8506ag9fmjbx41w1hqnd61vyq1paclh2nc25krcbv2plyas" }, "mini-completion": { "type": "Git", @@ -1039,9 +1039,9 @@ }, "branch": "main", "submodules": false, - "revision": "f0c324ff2142b02871cfb43049461e4f3f022a11", - "url": "https://github.com/echasnovski/mini.completion/archive/f0c324ff2142b02871cfb43049461e4f3f022a11.tar.gz", - "hash": "0q8w733i3428gzz6bk4ldc57smj55916imnpzx33arhfdvmzp8l0" + "revision": "ea78d31e8164468f0b3a909f863806f2c4cb84c4", + "url": "https://github.com/echasnovski/mini.completion/archive/ea78d31e8164468f0b3a909f863806f2c4cb84c4.tar.gz", + "hash": "01zc0kvwiq1h37q4fgwqi0bg875dks8vxw3aqjg3kyjj1v3z0zw9" }, "mini-cursorword": { "type": "GitRelease", @@ -1054,10 +1054,10 @@ "version_upper_bound": null, "release_prefix": null, "submodules": false, - "version": "v0.15.0", - "revision": "6683f04509c380e3147cca368f90bbdb99641775", - "url": "https://api.github.com/repos/echasnovski/mini.cursorword/tarball/v0.15.0", - "hash": "0vqr4hkzq13ap6giyyp8asn5g6nnm406piq1a07a5nmkfxiskp9v" + "version": "v0.16.0", + "revision": "55ecfd08d8ff62375f5be9e5b5d5252324b220e8", + "url": "https://api.github.com/repos/echasnovski/mini.cursorword/tarball/v0.16.0", + "hash": "0sgii7m2lfp95vxnchisk3hpbjwwqpky6ivkx2nc5djkmj07b7mj" }, "mini-diff": { "type": "Git", @@ -1068,9 +1068,9 @@ }, "branch": "main", "submodules": false, - "revision": "7e268d0241255abaa07b8aa0ddff028f7315fe21", - "url": "https://github.com/echasnovski/mini.diff/archive/7e268d0241255abaa07b8aa0ddff028f7315fe21.tar.gz", - "hash": "0isw55vz55pcpsyi27lx7i2wrvc9r5rbi6ndljcbn8rbmx36xlyq" + "revision": "f7bcd3cb4561f7d3a02ae9afafeda899c82f7108", + "url": "https://github.com/echasnovski/mini.diff/archive/f7bcd3cb4561f7d3a02ae9afafeda899c82f7108.tar.gz", + "hash": "1z2jklgm72mj4rpknl4s9kl22in2b40vx1k7psscz4b8d6ljh41m" }, "mini-doc": { "type": "Git", @@ -1094,9 +1094,9 @@ }, "branch": "main", "submodules": false, - "revision": "dc571df8f1f61debd59e200adfe7f701c0d67eca", - "url": "https://github.com/echasnovski/mini.extra/archive/dc571df8f1f61debd59e200adfe7f701c0d67eca.tar.gz", - "hash": "14zbqrwcxyhax10q082n4wqmqb3519i5kmj0zc8flwmswv742gyr" + "revision": "69ba107ac8712820f3ad391d327f62b57fead277", + "url": "https://github.com/echasnovski/mini.extra/archive/69ba107ac8712820f3ad391d327f62b57fead277.tar.gz", + "hash": "15q6q4laycfzb2rr2h948n61ybgv46cgcsgr8cjfwna4bby8gvj3" }, "mini-files": { "type": "Git", @@ -1107,9 +1107,9 @@ }, "branch": "main", "submodules": false, - "revision": "432142ada983ec5863ba480f0e4891b7d64ce3f6", - "url": "https://github.com/echasnovski/mini.files/archive/432142ada983ec5863ba480f0e4891b7d64ce3f6.tar.gz", - "hash": "0422sf8jx5sxws2kssi3ynynpmm1xpgk7i50dqml1kc8nymx4z5b" + "revision": "49c855977e9f4821d1ed8179ed44fe098b93ea2a", + "url": "https://github.com/echasnovski/mini.files/archive/49c855977e9f4821d1ed8179ed44fe098b93ea2a.tar.gz", + "hash": "12027xb9907zk145hsx6qniq1cjm8bm5405njq4cs9vx992pafsh" }, "mini-fuzzy": { "type": "Git", @@ -1198,9 +1198,9 @@ }, "branch": "main", "submodules": false, - "revision": "65bf2c55680d8be63d29ce0c5ee4e33031426115", - "url": "https://github.com/echasnovski/mini.jump/archive/65bf2c55680d8be63d29ce0c5ee4e33031426115.tar.gz", - "hash": "17ilfgsazwq20rw42am1jzxvcdzbzsk65jzsxa5s8zs65sx6rdch" + "revision": "aad72c99f446086b0a53b8a660a2d89d296be057", + "url": "https://github.com/echasnovski/mini.jump/archive/aad72c99f446086b0a53b8a660a2d89d296be057.tar.gz", + "hash": "1dsqpcr54sglr0x9mmp0xxpmrmgq10j0xpnj2dxvxabi9h1h179a" }, "mini-jump2d": { "type": "Git", @@ -1211,9 +1211,9 @@ }, "branch": "main", "submodules": false, - "revision": "c90f7f8cebf3282d0f0b228015fceefb841375c6", - "url": "https://github.com/echasnovski/mini.jump2d/archive/c90f7f8cebf3282d0f0b228015fceefb841375c6.tar.gz", - "hash": "04wv8q8g5p1sv6hdaq83rik9x7fq8ki4d617v5gk5d3nv0i6pqq0" + "revision": "6045bd61659d97926ba7ae5f9be8924e11c15079", + "url": "https://github.com/echasnovski/mini.jump2d/archive/6045bd61659d97926ba7ae5f9be8924e11c15079.tar.gz", + "hash": "1zk5y1gdkg8m1ncic0b0iqcp9k32pd1dklnw69jjwm30mxmixky8" }, "mini-map": { "type": "Git", @@ -1237,9 +1237,9 @@ }, "branch": "main", "submodules": false, - "revision": "f7252c5b8ff27d0856b91a410efe8e528370d919", - "url": "https://github.com/echasnovski/mini.misc/archive/f7252c5b8ff27d0856b91a410efe8e528370d919.tar.gz", - "hash": "02jrwcmbi74512240p8grlc9awivyihl6s71d60s46nslgqlnsqf" + "revision": "d92235cfb7b1bce2dfc21d06ee1a1a3d7e04b969", + "url": "https://github.com/echasnovski/mini.misc/archive/d92235cfb7b1bce2dfc21d06ee1a1a3d7e04b969.tar.gz", + "hash": "0cbq6kw58jiiy7f3fraxkskr1vpwmdnpv38pbywwfr8w1f6rf2fi" }, "mini-move": { "type": "Git", @@ -1276,9 +1276,9 @@ }, "branch": "main", "submodules": false, - "revision": "c6d87731f1a2c849888754347ffc5a1395bf2977", - "url": "https://github.com/echasnovski/mini.operators/archive/c6d87731f1a2c849888754347ffc5a1395bf2977.tar.gz", - "hash": "1ijnhxajpii17a1rz1avp1i5j35an2dq0ji28v2wrvaa0b5jg13a" + "revision": "b79a95958c57e127704bbeb1dc11a511954fc888", + "url": "https://github.com/echasnovski/mini.operators/archive/b79a95958c57e127704bbeb1dc11a511954fc888.tar.gz", + "hash": "0dyackl7a6kayk7chd3qm45j7h1pjf1r6qhbdl7m21dzdbp9c4s5" }, "mini-pairs": { "type": "Git", @@ -1302,9 +1302,9 @@ }, "branch": "main", "submodules": false, - "revision": "417c273861971b451687e847383e61687463b06e", - "url": "https://github.com/echasnovski/mini.pick/archive/417c273861971b451687e847383e61687463b06e.tar.gz", - "hash": "0xyw2wns9fpv1yxzflb18mmfajihy45g163q4bka0vylj77858xa" + "revision": "f02e64580a547346128799ba667dfc0e29737532", + "url": "https://github.com/echasnovski/mini.pick/archive/f02e64580a547346128799ba667dfc0e29737532.tar.gz", + "hash": "19aqwx8hisp5smj7qzgdzzcjz8k0p0vk21pxnnnxiv4w85d7s1zz" }, "mini-sessions": { "type": "Git", @@ -1354,9 +1354,9 @@ }, "branch": "main", "submodules": false, - "revision": "d8038690eadf203a40863c3a9423df880a901d39", - "url": "https://github.com/echasnovski/mini.starter/archive/d8038690eadf203a40863c3a9423df880a901d39.tar.gz", - "hash": "06rglm7m32lrgba47vb96kaxdsyz8pl2ivbr41m1swy3ihrv69y3" + "revision": "03a124f307ebfb9fd05a0e6503d30605c32a9e1a", + "url": "https://github.com/echasnovski/mini.starter/archive/03a124f307ebfb9fd05a0e6503d30605c32a9e1a.tar.gz", + "hash": "0c024xvdww9331bcfd3i7x8pp4phxkgqhnfv3fgld1imbnif1547" }, "mini-statusline": { "type": "Git", @@ -1471,9 +1471,9 @@ }, "branch": "main", "submodules": false, - "revision": "7c6ca20de4c9acb22ef06074e39fd2c021b99935", - "url": "https://github.com/mvllow/modes.nvim/archive/7c6ca20de4c9acb22ef06074e39fd2c021b99935.tar.gz", - "hash": "088bacsy76imlyd4njgrw7cg2l82dddr23g25qx81ihlaf3vmdjp" + "revision": "fc7bc0141500d9cf7c14f46fca846f728545a781", + "url": "https://github.com/mvllow/modes.nvim/archive/fc7bc0141500d9cf7c14f46fca846f728545a781.tar.gz", + "hash": "1vx3mdky29zh5410d8z1b6v1bb433ldmqmycqpapqs5zirxyf2ys" }, "multicursors-nvim": { "type": "GitRelease", @@ -1500,9 +1500,9 @@ }, "branch": "main", "submodules": false, - "revision": "71bfdeddc90225e281ce34c378dc1b5914f5018d", - "url": "https://github.com/nvim-neo-tree/neo-tree.nvim/archive/71bfdeddc90225e281ce34c378dc1b5914f5018d.tar.gz", - "hash": "0cm4y2idpmf7i6daa4wl5b6n5ldzqr3pqmh29rc645c1xk2y0b80" + "revision": "3f1dd2de5045659e00bfbe27c8aca3b52c1fdbde", + "url": "https://github.com/nvim-neo-tree/neo-tree.nvim/archive/3f1dd2de5045659e00bfbe27c8aca3b52c1fdbde.tar.gz", + "hash": "0mh0wv4x2pi6khwbp3fvi40n6hd3sz5ak81w9vf2xn3hh2z0mmqc" }, "neocord": { "type": "Git", @@ -1526,9 +1526,9 @@ }, "branch": "main", "submodules": false, - "revision": "8fdd9b2986acfb4ce310bebfc338111793862f00", - "url": "https://github.com/nvim-neorg/neorg/archive/8fdd9b2986acfb4ce310bebfc338111793862f00.tar.gz", - "hash": "0xv3aasbhambywp6idhz44nlsh3hlarw3j7wwx7wn1whm6xbwvf6" + "revision": "f8c932adf75ba65cd015cdbcf9ed1b96814cf55e", + "url": "https://github.com/nvim-neorg/neorg/archive/f8c932adf75ba65cd015cdbcf9ed1b96814cf55e.tar.gz", + "hash": "1qb8m299cxn1w3n7ix9rrf2by52rhljql9fz236han28680j3d6k" }, "neorg-telescope": { "type": "Git", @@ -1604,9 +1604,9 @@ }, "branch": "main", "submodules": false, - "revision": "a49f5a79cdb76e0dc1a98899c8598f4db014c5e7", - "url": "https://github.com/nvimtools/none-ls.nvim/archive/a49f5a79cdb76e0dc1a98899c8598f4db014c5e7.tar.gz", - "hash": "0x16saxsr3w3ivqpdjg05bkyfxzsiyfpsiwhyzsvqxg1qnkda3b2" + "revision": "db2a48b79cfcdab8baa5d3f37f21c78b6705c62e", + "url": "https://github.com/nvimtools/none-ls.nvim/archive/db2a48b79cfcdab8baa5d3f37f21c78b6705c62e.tar.gz", + "hash": "0ii92d6si3habwkw4cd24s84xhi65apq1kagdj1j2q3kqcv7xxn0" }, "nord": { "type": "Git", @@ -1630,9 +1630,9 @@ }, "branch": "main", "submodules": false, - "revision": "8d5b0b568517935d3c84f257f272ef004d9f5a59", - "url": "https://github.com/MunifTanjim/nui.nvim/archive/8d5b0b568517935d3c84f257f272ef004d9f5a59.tar.gz", - "hash": "0z5md64qly2dzm9pq46ldid45l44mfwqk3r1hirk8lj6djyrxv9m" + "revision": "7cd18e73cfbd70e1546931b7268b3eebaeff9391", + "url": "https://github.com/MunifTanjim/nui.nvim/archive/7cd18e73cfbd70e1546931b7268b3eebaeff9391.tar.gz", + "hash": "0xl6qsl98ajzmk0wy7kf8q2vjqb30ci3dgwdcj376r87vwli6xd2" }, "nvim-autopairs": { "type": "Git", @@ -1708,9 +1708,9 @@ }, "branch": "master", "submodules": false, - "revision": "8df427aeba0a06c6577dc3ab82de3076964e3b8d", - "url": "https://github.com/mfussenegger/nvim-dap/archive/8df427aeba0a06c6577dc3ab82de3076964e3b8d.tar.gz", - "hash": "13d04z1dnkrhslq6s1xba5myqkgxar3i3p2lhqvpawicbba8yp22" + "revision": "b0f983507e3702f073bfe1516846e58b56d4e42f", + "url": "https://github.com/mfussenegger/nvim-dap/archive/b0f983507e3702f073bfe1516846e58b56d4e42f.tar.gz", + "hash": "17fcxlfkzh75q8sasjf21jbh18s78v9g80p5qrlgi0caqznj0hv7" }, "nvim-dap-go": { "type": "Git", @@ -1773,9 +1773,9 @@ }, "branch": "master", "submodules": false, - "revision": "9dfb77ef6c5092a19502883c02dc5a02ec648729", - "url": "https://github.com/mfussenegger/nvim-lint/archive/9dfb77ef6c5092a19502883c02dc5a02ec648729.tar.gz", - "hash": "0772bgl09jcrvvhvpic2b07qb21kf2pr479g792jlwbr5jfa1pa0" + "revision": "b47cbb249351873e3a571751c3fb66ed6369852f", + "url": "https://github.com/mfussenegger/nvim-lint/archive/b47cbb249351873e3a571751c3fb66ed6369852f.tar.gz", + "hash": "0cs6vs58p98fv6nmqsyik2kws6xnqbny79gl39mmyssm3z9mpps8" }, "nvim-lspconfig": { "type": "Git", @@ -1786,9 +1786,9 @@ }, "branch": "master", "submodules": false, - "revision": "46434074f188e6bfccf9d9153dd8be6b1381498b", - "url": "https://github.com/neovim/nvim-lspconfig/archive/46434074f188e6bfccf9d9153dd8be6b1381498b.tar.gz", - "hash": "0h13n1vjw6v8gp41yfc6qffbwwrxw81vcilkmxx9sim6671w5pzp" + "revision": "d45702594afc661a9dfa95e96acf18c56006d4d9", + "url": "https://github.com/neovim/nvim-lspconfig/archive/d45702594afc661a9dfa95e96acf18c56006d4d9.tar.gz", + "hash": "0rkbb0difvd68ihprsjvw59m6jlfdlpyqgamlfcfqn53yxawgbw3" }, "nvim-metals": { "type": "Git", @@ -1799,9 +1799,9 @@ }, "branch": "main", "submodules": false, - "revision": "04d8ce24638412a2c93dd79fecca4b2c7b9c07f9", - "url": "https://github.com/scalameta/nvim-metals/archive/04d8ce24638412a2c93dd79fecca4b2c7b9c07f9.tar.gz", - "hash": "19mdfn5ni35ldjmwdg25cwiy9cvkg2cxrdhcjr9xplx7ln6zsld9" + "revision": "d1639b7fccd845875e33444c7860ad292ab8670d", + "url": "https://github.com/scalameta/nvim-metals/archive/d1639b7fccd845875e33444c7860ad292ab8670d.tar.gz", + "hash": "1f6cgzs3vwqdva06jdcmyy5rldjlxg8x5fbdyq61hbl3xw5qjvsq" }, "nvim-navbuddy": { "type": "Git", @@ -1825,8 +1825,8 @@ }, "branch": "master", "submodules": false, - "revision": "d0a8c17c4dc721b00bc2ac305c6ffbb036beeb74", - "url": "https://github.com/SmiteshP/nvim-navic/archive/d0a8c17c4dc721b00bc2ac305c6ffbb036beeb74.tar.gz", + "revision": "f887d794a0f4594882814d7780980a949200a238", + "url": "https://github.com/SmiteshP/nvim-navic/archive/f887d794a0f4594882814d7780980a949200a238.tar.gz", "hash": "0mxsnwvrjirpy2ichsilx6207z55xi42syg5d3fdgs2r1p1npggc" }, "nvim-neoclip-lua": { @@ -1877,9 +1877,9 @@ }, "branch": "main", "submodules": false, - "revision": "6994eb9f73d5fdc36ee2c8717940e8c853e51a49", - "url": "https://github.com/petertriho/nvim-scrollbar/archive/6994eb9f73d5fdc36ee2c8717940e8c853e51a49.tar.gz", - "hash": "0h01gcaqgjkb2392zl2jwvlsh5qmz10k9sy5rhyz1kwizmw7nw7y" + "revision": "5b103ef0fd2e8b9b4be3878ed38d224522192c6c", + "url": "https://github.com/petertriho/nvim-scrollbar/archive/5b103ef0fd2e8b9b4be3878ed38d224522192c6c.tar.gz", + "hash": "1bh34njkvlbkjzy62w48rzjmliaj6lczgxxkks455r0w7yvfklv7" }, "nvim-surround": { "type": "Git", @@ -1890,9 +1890,9 @@ }, "branch": "main", "submodules": false, - "revision": "0e62500b98f4513feaaf7425c135472457ea5b7d", - "url": "https://github.com/kylechui/nvim-surround/archive/0e62500b98f4513feaaf7425c135472457ea5b7d.tar.gz", - "hash": "0rwzz98n8gyx2bffxg7ga7vxxxcc4crbwimvglx6bxkdg2abwyrn" + "revision": "8dd9150ca7eae5683660ea20cec86edcd5ca4046", + "url": "https://github.com/kylechui/nvim-surround/archive/8dd9150ca7eae5683660ea20cec86edcd5ca4046.tar.gz", + "hash": "1r7kvq8sa7g3vhj6d885jgq04xpk3xn21zn1sb9lbffdkxxkqs2k" }, "nvim-tree-lua": { "type": "Git", @@ -1903,9 +1903,9 @@ }, "branch": "master", "submodules": false, - "revision": "582ae48c9e43d2bcd55dfcc8e2e7a1f29065d924", - "url": "https://github.com/nvim-tree/nvim-tree.lua/archive/582ae48c9e43d2bcd55dfcc8e2e7a1f29065d924.tar.gz", - "hash": "1xpal45q4mvplvgz06z4wzsq1ml5awv8v4m0k9jh9s4xlnc0va24" + "revision": "ebcaccda1c575fa19a8087445276e6671e2b9b37", + "url": "https://github.com/nvim-tree/nvim-tree.lua/archive/ebcaccda1c575fa19a8087445276e6671e2b9b37.tar.gz", + "hash": "1x1yw3xjpn2g0qxsniyjq4pxkccycbz499mwp9m6h8xdyhbafsvg" }, "nvim-treesitter-context": { "type": "Git", @@ -1916,9 +1916,9 @@ }, "branch": "master", "submodules": false, - "revision": "6daca3ad780f045550b820f262002f35175a6c04", - "url": "https://github.com/nvim-treesitter/nvim-treesitter-context/archive/6daca3ad780f045550b820f262002f35175a6c04.tar.gz", - "hash": "0qprwd44hw9sz0vh14p6lpvs9vxrick462pfkradmal6ak1kfwn3" + "revision": "153a076598076bf5664ab868fb01d3418ecffce9", + "url": "https://github.com/nvim-treesitter/nvim-treesitter-context/archive/153a076598076bf5664ab868fb01d3418ecffce9.tar.gz", + "hash": "0l57jpnx5nfmddrsrnsj2wxfn4xl2fp5xghhjrdbhp8rg0xm6qn8" }, "nvim-treesitter-textobjects": { "type": "Git", @@ -1929,9 +1929,9 @@ }, "branch": "master", "submodules": false, - "revision": "0e3be38005e9673d044e994b1e4b123adb040179", - "url": "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/archive/0e3be38005e9673d044e994b1e4b123adb040179.tar.gz", - "hash": "0y93pj3asarw7jhk4cdphhx6awxdyiwajc0n9nr4836gn48qcs85" + "revision": "0f051e9813a36481f48ca1f833897210dbcfffde", + "url": "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/archive/0f051e9813a36481f48ca1f833897210dbcfffde.tar.gz", + "hash": "1vy2ihqknjrbmn4lw81hvhhqdg1pc2wc32ir96506bb3d273am7b" }, "nvim-ts-autotag": { "type": "Git", @@ -1955,9 +1955,9 @@ }, "branch": "main", "submodules": false, - "revision": "cac999ec9f6302d2fd4ad8a846bf8f731af6e7cf", - "url": "https://github.com/kevinhwang91/nvim-ufo/archive/cac999ec9f6302d2fd4ad8a846bf8f731af6e7cf.tar.gz", - "hash": "14lvlv1wmbpw0dpyfz3gq7k760ip1903w5ibajqiaflw06afv4pn" + "revision": "3c7a3570e9c9dc198a2ad4491b0b0e51c4d4ba08", + "url": "https://github.com/kevinhwang91/nvim-ufo/archive/3c7a3570e9c9dc198a2ad4491b0b0e51c4d4ba08.tar.gz", + "hash": "1akbq1nsm71snjx6n37070ycmhh46n5lqlvz6625zgsfg272fnz2" }, "nvim-web-devicons": { "type": "Git", @@ -1968,9 +1968,9 @@ }, "branch": "master", "submodules": false, - "revision": "2c2b4eafce6cdd0cb165036faa17396eff18f847", - "url": "https://github.com/nvim-tree/nvim-web-devicons/archive/2c2b4eafce6cdd0cb165036faa17396eff18f847.tar.gz", - "hash": "11yp02zg60gdmqa6rdk3rjn704k2kvjcs41w85y01b68k36w7pw2" + "revision": "1fb58cca9aebbc4fd32b086cb413548ce132c127", + "url": "https://github.com/nvim-tree/nvim-web-devicons/archive/1fb58cca9aebbc4fd32b086cb413548ce132c127.tar.gz", + "hash": "0c69c4rwrrq9j5gwa17br5hpg28hvgl00apz06qgh5w2lwaxw4gr" }, "obsidian-nvim": { "type": "Git", @@ -2020,9 +2020,9 @@ }, "branch": "master", "submodules": false, - "revision": "0e5512d1bebd1f08954710086f87a5caa173a924", - "url": "https://github.com/navarasu/onedark.nvim/archive/0e5512d1bebd1f08954710086f87a5caa173a924.tar.gz", - "hash": "14ixrvcp3h06kngq5ji54lf2l10k33vrmzs609xf7sqdy6rflm4j" + "revision": "11de4da47f3e69cb70c3ae9816bd8af166cbe121", + "url": "https://github.com/navarasu/onedark.nvim/archive/11de4da47f3e69cb70c3ae9816bd8af166cbe121.tar.gz", + "hash": "1cqpd4yvcd6szbs95kxxr77mhfvgxcpjfybw8chlnnnwxxyh1k54" }, "orgmode": { "type": "Git", @@ -2033,9 +2033,9 @@ }, "branch": "master", "submodules": false, - "revision": "15d66ead1285d99f8a21c4ef4874ac62e9320fe6", - "url": "https://github.com/nvim-orgmode/orgmode/archive/15d66ead1285d99f8a21c4ef4874ac62e9320fe6.tar.gz", - "hash": "05h766qj1vid5rs1mv8aiv6rsfrp0md9605sfr9vycip1rd8csgy" + "revision": "55b68bbdfd22588d767f4401a3304df5d7427e19", + "url": "https://github.com/nvim-orgmode/orgmode/archive/55b68bbdfd22588d767f4401a3304df5d7427e19.tar.gz", + "hash": "03ywkg95c48bmpfqlc1ndzin09wfhzqgjv8mfjjz0ksh8xh8xv0l" }, "otter-nvim": { "type": "Git", @@ -2046,9 +2046,9 @@ }, "branch": "main", "submodules": false, - "revision": "a7766be1592bfa9e88e67512646e343d0b4b2ff5", - "url": "https://github.com/jmbuhr/otter.nvim/archive/a7766be1592bfa9e88e67512646e343d0b4b2ff5.tar.gz", - "hash": "18lcqr5qpa50jxmh5h53k0bsz0n3lzbihi8dchww3kz64b52hl5p" + "revision": "fa436071c67233e6cd466268212feaf4ff4ed406", + "url": "https://github.com/jmbuhr/otter.nvim/archive/fa436071c67233e6cd466268212feaf4ff4ed406.tar.gz", + "hash": "0i8bkgyh8zaszm15h8lznd9ik1fh0l0mdcwyam4mnn4q0nhjqznb" }, "oxocarbon": { "type": "Git", @@ -2163,9 +2163,9 @@ }, "branch": "main", "submodules": false, - "revision": "57c7f33f276876c994898683680da9e3a3590d0d", - "url": "https://github.com/MeanderingProgrammer/render-markdown.nvim/archive/57c7f33f276876c994898683680da9e3a3590d0d.tar.gz", - "hash": "1lfypdqyka5idrkr3w62vx7j6p75r3ld7sz5i40y41svglnxyrsj" + "revision": "df64d5d5432e13026a79384ec4e2bab185fd4eb5", + "url": "https://github.com/MeanderingProgrammer/render-markdown.nvim/archive/df64d5d5432e13026a79384ec4e2bab185fd4eb5.tar.gz", + "hash": "1pdl0s2k3sjlzdw1w6fv5cil51nkm4c6yjidp1xly94qjxwj6sv4" }, "rose-pine": { "type": "Git", @@ -2176,9 +2176,9 @@ }, "branch": "main", "submodules": false, - "revision": "614892e32e94378d976a238f287532cfe790c1fe", - "url": "https://github.com/rose-pine/neovim/archive/614892e32e94378d976a238f287532cfe790c1fe.tar.gz", - "hash": "1pi5z81xkgkx8yyfjfjj0hg66v2zcj04gxxbf5q2lqz70xcs3cgk" + "revision": "6b9840790cc7acdfadde07f308d34b62dd9cc675", + "url": "https://github.com/rose-pine/neovim/archive/6b9840790cc7acdfadde07f308d34b62dd9cc675.tar.gz", + "hash": "00f48nm3scap86vh0k5zs1vls0hb2qnjpiwsr54c6dpbycxq0yx3" }, "rtp-nvim": { "type": "Git", @@ -2215,9 +2215,9 @@ }, "branch": "master", "submodules": false, - "revision": "4b8c2edb55f548ed9c683f88dde2ffb235413b03", - "url": "https://github.com/mrcjkb/rustaceanvim/archive/4b8c2edb55f548ed9c683f88dde2ffb235413b03.tar.gz", - "hash": "0d3kwvwj5cppwypvg8iasn5f8rviqyskkgh1wafs7chjm32dm4gb" + "revision": "eaa8d3dc22026da53fbb1b63f504541c70de44f4", + "url": "https://github.com/mrcjkb/rustaceanvim/archive/eaa8d3dc22026da53fbb1b63f504541c70de44f4.tar.gz", + "hash": "0wkpj6nd48k4gi7z82wfr5686nlp2g4s335zjgn5mkra0cfgflh7" }, "smartcolumn-nvim": { "type": "Git", @@ -2296,9 +2296,9 @@ }, "branch": "master", "submodules": false, - "revision": "a4ed82509cecc56df1c7138920a1aeaf246c0ac5", - "url": "https://github.com/nvim-telescope/telescope.nvim/archive/a4ed82509cecc56df1c7138920a1aeaf246c0ac5.tar.gz", - "hash": "0vc2fr5nhbc39d55zn09fh8zpy4472ic4xmwvmk5dda8fqw76p8q" + "revision": "b4da76be54691e854d3e0e02c36b0245f945c2c7", + "url": "https://github.com/nvim-telescope/telescope.nvim/archive/b4da76be54691e854d3e0e02c36b0245f945c2c7.tar.gz", + "hash": "161qlx099ymi62qsd89srda605ynks1sswx3djamrwqp3dxb9596" }, "tiny-devicons-auto-colors-nvim": { "type": "Git", @@ -2426,9 +2426,9 @@ }, "branch": "master", "submodules": false, - "revision": "fbc16dee336d8cc0d3d2382ea4a53f4a29725abf", - "url": "https://github.com/RRethy/vim-illuminate/archive/fbc16dee336d8cc0d3d2382ea4a53f4a29725abf.tar.gz", - "hash": "072kgd7h7cjq4hskczxl60nsx3jpww9l7ypafcwk833ypahz899i" + "revision": "0d1e93684da00ab7c057410fecfc24f434698898", + "url": "https://github.com/RRethy/vim-illuminate/archive/0d1e93684da00ab7c057410fecfc24f434698898.tar.gz", + "hash": "0456q474765p0r0q7frn1n9drl05d16alv7kn9qnw1235d20k81a" }, "vim-markdown": { "type": "Git", From e6d30cf9d96ddcba6d5f571133289ffbb32ebcc5 Mon Sep 17 00:00:00 2001 From: Michael Utz Date: Fri, 30 May 2025 11:02:32 +0300 Subject: [PATCH 85/94] Add "auto" flavour for catppuccin theme This is actually the default value for the plugin. https://github.com/catppuccin/nvim?tab=readme-ov-file#configuration --- modules/plugins/theme/supported-themes.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/plugins/theme/supported-themes.nix b/modules/plugins/theme/supported-themes.nix index 9c5e380c..237e9470 100644 --- a/modules/plugins/theme/supported-themes.nix +++ b/modules/plugins/theme/supported-themes.nix @@ -95,7 +95,7 @@ in { -- setup must be called before loading vim.cmd.colorscheme "catppuccin" ''; - styles = ["latte" "frappe" "macchiato" "mocha"]; + styles = ["auto" "latte" "frappe" "macchiato" "mocha"]; }; oxocarbon = { From b1e2801ee31e81ea46d233f018593be90a6bb04c Mon Sep 17 00:00:00 2001 From: Michael Utz Date: Fri, 30 May 2025 18:02:25 +0300 Subject: [PATCH 86/94] Add change log entry --- docs/release-notes/rl-0.5.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/release-notes/rl-0.5.md b/docs/release-notes/rl-0.5.md index 910c93d5..b5d771af 100644 --- a/docs/release-notes/rl-0.5.md +++ b/docs/release-notes/rl-0.5.md @@ -4,6 +4,10 @@ Release notes for release 0.5 ## Changelog {#sec-release-0.5-changelog} +[theutz](https://github.com/theutz): + +- Added "auto" flavour for catppuccin theme + [vagahbond](https://github.com/vagahbond): - Added phan language server for PHP From e78ebe06807acc47fde6d33c99292548ccb598ae Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Tue, 27 May 2025 07:44:18 +0300 Subject: [PATCH 87/94] assistant/codecompanion: also add YAML tree-sitter grammar when enabled --- modules/plugins/assistant/codecompanion/config.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/plugins/assistant/codecompanion/config.nix b/modules/plugins/assistant/codecompanion/config.nix index 08fc8cb2..fa863b74 100644 --- a/modules/plugins/assistant/codecompanion/config.nix +++ b/modules/plugins/assistant/codecompanion/config.nix @@ -21,7 +21,17 @@ in { }; }; - treesitter.enable = true; + treesitter = { + enable = true; + + # Codecompanion depends on the YAML grammar being added. Below is + # an easy way of adding an user-configurable grammar package exposed + # by the YAML language module *without* enabling the whole YAML language + # module. The package is defined even when the module is disabled. + grammars = [ + config.vim.languages.yaml.treesitter.package + ]; + }; autocomplete.nvim-cmp = { sources = {codecompanion-nvim = "[codecompanion]";}; From 7095c4d49f5ea50bcbe78beca18e56592364f778 Mon Sep 17 00:00:00 2001 From: Michael Utz Date: Mon, 2 Jun 2025 10:59:38 +0300 Subject: [PATCH 88/94] Move changelog entry to proper release --- docs/release-notes/rl-0.5.md | 4 ---- docs/release-notes/rl-0.8.md | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/release-notes/rl-0.5.md b/docs/release-notes/rl-0.5.md index b5d771af..910c93d5 100644 --- a/docs/release-notes/rl-0.5.md +++ b/docs/release-notes/rl-0.5.md @@ -4,10 +4,6 @@ Release notes for release 0.5 ## Changelog {#sec-release-0.5-changelog} -[theutz](https://github.com/theutz): - -- Added "auto" flavour for catppuccin theme - [vagahbond](https://github.com/vagahbond): - Added phan language server for PHP diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 385eb548..ec5d1e14 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -415,3 +415,8 @@ - Add Clojure support under `vim.languages.clojure` using [clojure-lsp] - Add code evaluation environment [conjure] under `vim.repl.conjure` + +[theutz](https://github.com/theutz): + +- Added "auto" flavour for catppuccin theme + From 988f034236063f4f35d557eb5cba61e23743f18c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandra=20=C3=98stermark?= Date: Tue, 3 Jun 2025 15:20:28 +0200 Subject: [PATCH 89/94] delete build deps --- flake/avante-nvim/default.nix | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/flake/avante-nvim/default.nix b/flake/avante-nvim/default.nix index 513a3117..c048c4f8 100644 --- a/flake/avante-nvim/default.nix +++ b/flake/avante-nvim/default.nix @@ -45,21 +45,6 @@ in pname = "avante-nvim"; inherit version src; - dependencies = - [vimPlugins.nvim-treesitter] - ++ (builtins.map (name: let - pin = pins.${name}; - in - pkgs.fetchFromGitHub { - inherit (pin.repository) owner repo; - rev = pin.revision; - sha256 = pin.hash; - }) [ - "dressing-nvim" - "plenary-nvim" - "nui-nvim" - ]); - postInstall = let ext = stdenv.hostPlatform.extensions.sharedLibrary; in '' From 48d5fbfa32f3675fa6d8175ff109ed546645809c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandra=20=C3=98stermark?= Date: Tue, 3 Jun 2025 21:13:49 +0200 Subject: [PATCH 90/94] fix spelling mistake --- modules/wrapper/rc/options.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/wrapper/rc/options.nix b/modules/wrapper/rc/options.nix index 02729401..028d903e 100644 --- a/modules/wrapper/rc/options.nix +++ b/modules/wrapper/rc/options.nix @@ -11,7 +11,7 @@ in { description = '' [official documentation]: https://neovim.io/doc/user/lua.html#vim.loader.enable() - Whethere to enable the experimental Lua module loader to speed up the start + Whether to enable the experimental Lua module loader to speed up the start up process. If `true`, this will enable the experimental Lua module loader which: From 144ab18dbd978a448da42508a9fd8088d4f0211c Mon Sep 17 00:00:00 2001 From: Callum Date: Sun, 1 Jun 2025 11:12:02 +0100 Subject: [PATCH 91/94] Fix OneDark transparancy issue --- modules/plugins/theme/supported-themes.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/plugins/theme/supported-themes.nix b/modules/plugins/theme/supported-themes.nix index 9c5e380c..9c1bf03a 100644 --- a/modules/plugins/theme/supported-themes.nix +++ b/modules/plugins/theme/supported-themes.nix @@ -21,9 +21,14 @@ in { ''; }; onedark = { - setup = {style ? "dark", ...}: '' + setup = { + style ? "dark", + transparent, + ... + }: '' -- OneDark theme require('onedark').setup { + transparent = ${boolToString transparent}, style = "${style}" } require('onedark').load() From 412d786325d38103918ad973f2af22369c7fb257 Mon Sep 17 00:00:00 2001 From: Callum Date: Tue, 3 Jun 2025 12:02:53 +0100 Subject: [PATCH 92/94] Document onedark change in release notes. --- 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 eb9e1f74..7ecb1085 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -418,3 +418,8 @@ - Add Clojure support under `vim.languages.clojure` using [clojure-lsp] - Add code evaluation environment [conjure] under `vim.repl.conjure` + +[CallumGilly](https://github.com/CallumGilly): + +- Add missing `transparent` option for existing + [onedark.nvim](https://github.com/navarasu/onedark.nvim) theme. From f04ad1fff5428fbf989003cdc7c1262d9951ff9d Mon Sep 17 00:00:00 2001 From: Martin Treml Date: Tue, 3 Jun 2025 23:31:58 +0200 Subject: [PATCH 93/94] fix, Add dependencies needed for building Avante Fixes #933 --- flake/avante-nvim/default.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/flake/avante-nvim/default.nix b/flake/avante-nvim/default.nix index c048c4f8..513a3117 100644 --- a/flake/avante-nvim/default.nix +++ b/flake/avante-nvim/default.nix @@ -45,6 +45,21 @@ in pname = "avante-nvim"; inherit version src; + dependencies = + [vimPlugins.nvim-treesitter] + ++ (builtins.map (name: let + pin = pins.${name}; + in + pkgs.fetchFromGitHub { + inherit (pin.repository) owner repo; + rev = pin.revision; + sha256 = pin.hash; + }) [ + "dressing-nvim" + "plenary-nvim" + "nui-nvim" + ]); + postInstall = let ext = stdenv.hostPlatform.extensions.sharedLibrary; in '' From ab1385ffb9aaa30512b6b6c4eb1b3d9f393d82ab Mon Sep 17 00:00:00 2001 From: Jan-Henrik Damaschke Date: Wed, 4 Jun 2025 02:30:52 +0200 Subject: [PATCH 94/94] fix(blink-cmp): Added "cmdline" preset type --- modules/plugins/completion/blink-cmp/blink-cmp.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/plugins/completion/blink-cmp/blink-cmp.nix b/modules/plugins/completion/blink-cmp/blink-cmp.nix index 27a026ad..d9e9945b 100644 --- a/modules/plugins/completion/blink-cmp/blink-cmp.nix +++ b/modules/plugins/completion/blink-cmp/blink-cmp.nix @@ -10,7 +10,7 @@ freeformType = attrsOf (listOf (either str luaInline)); options = { preset = mkOption { - type = enum ["default" "none" "super-tab" "enter"]; + type = enum ["default" "none" "super-tab" "enter" "cmdline"]; default = "none"; description = "keymap presets"; };