diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 2800789f..5dc3ca94 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -107,6 +107,8 @@ - Add `LazyFile` user event. - Migrate language modules from none-ls to conform/nvim-lint - Add tsx support in conform and lint +- Moved code setting `additionalRuntimePaths` and `enableLuaLoader` out of + `luaConfigPre`'s default to prevent being overridden [diniamo](https://github.com/diniamo): diff --git a/modules/neovim/init/autocmds.nix b/modules/neovim/init/autocmds.nix index 5da7bc55..81580e6b 100644 --- a/modules/neovim/init/autocmds.nix +++ b/modules/neovim/init/autocmds.nix @@ -17,7 +17,7 @@ mkEnableOption "" // { default = true; - description = "Whether to enable this autocommand"; + description = "Whether to enable this autocommand."; }; event = mkOption { @@ -31,7 +31,7 @@ type = nullOr (listOf str); default = null; example = ["*.lua" "*.vim"]; - description = "The file pattern(s) that determine when the autocommand applies)."; + description = "The file pattern(s) that determine when the autocommand applies."; }; callback = mkOption { @@ -44,13 +44,16 @@ end '''' ''; - description = "The file pattern(s) that determine when the autocommand applies."; + description = "Lua function to be called when the event(s) are triggered."; }; command = mkOption { type = nullOr str; default = null; - description = "Vim command string instead of a Lua function."; + description = '' + Vim command to be executed when the event(s) are triggered. + Cannot be defined if the `callback` option is already defined. + ''; }; group = mkOption { @@ -70,7 +73,7 @@ once = mkOption { type = bool; default = false; - description = "Whether autocommand run only once."; + description = "Whether to run the autocommand only once."; }; nested = mkOption { @@ -87,7 +90,7 @@ mkEnableOption "" // { default = true; - description = "Whether to enable this autogroup"; + description = "Whether to enable this autocommand group."; }; name = mkOption { @@ -118,8 +121,8 @@ in { autocommands together. Groups allow multiple autocommands to be cleared or redefined collectively, preventing duplicate definitions. - Each autogroup consists of a name, a boolean indicating whether to clear - existing autocommands, and a list of associated autocommands. + Each autogroup consists of a name and a boolean indicating whether to clear + existing autocommands. ''; }; @@ -129,8 +132,8 @@ in { description = '' A list of Neovim autocommands to be registered. - Each entry defines an autocommand, specifying events, patterns, optional - callbacks, commands, groups, and execution settings. + Each entry defines an autocommand, specifying events, patterns, a callback or Vim + command, an optional group, a description, and execution settings. ''; }; }; diff --git a/modules/plugins/assistant/chatgpt/config.nix b/modules/plugins/assistant/chatgpt/config.nix index 95a36acf..b1066e5a 100644 --- a/modules/plugins/assistant/chatgpt/config.nix +++ b/modules/plugins/assistant/chatgpt/config.nix @@ -30,7 +30,16 @@ in { config = mkIf cfg.enable { vim = { - startPlugins = ["chatgpt-nvim"]; + startPlugins = [ + "chatgpt-nvim" + + # Dependencies + "nui-nvim" + "plenary-nvim" + ]; + + # ChatGPT.nvim explicitly depends on Telescope. + telescope.enable = true; pluginRC.chagpt = entryAnywhere '' require("chatgpt").setup(${toLuaObject cfg.setupOpts}) diff --git a/modules/wrapper/rc/config.nix b/modules/wrapper/rc/config.nix index ff8a4585..77a62d58 100644 --- a/modules/wrapper/rc/config.nix +++ b/modules/wrapper/rc/config.nix @@ -5,7 +5,7 @@ }: let inherit (builtins) map mapAttrs filter; inherit (lib.attrsets) mapAttrsToList; - inherit (lib.strings) concatLines concatMapStringsSep; + inherit (lib.strings) concatLines concatMapStringsSep optionalString; inherit (lib.trivial) showWarnings; inherit (lib.generators) mkLuaInline; inherit (lib.nvim.dag) entryAfter mkLuarcSection resolveDag entryAnywhere; @@ -72,6 +72,14 @@ in { dag = cfg.luaConfigRC; mapResult = result: concatLines [ + (optionalString (cfg.additionalRuntimePaths != []) '' + vim.opt.runtimepath:append(${toLuaObject cfg.additionalRuntimePaths}) + '') + (optionalString cfg.enableLuaLoader '' + if vim.loader then + vim.loader.enable() + end + '') cfg.luaConfigPre (concatMapStringsSep "\n" mkLuarcSection result) cfg.luaConfigPost diff --git a/modules/wrapper/rc/options.nix b/modules/wrapper/rc/options.nix index 4cd3026f..10abd77d 100644 --- a/modules/wrapper/rc/options.nix +++ b/modules/wrapper/rc/options.nix @@ -1,15 +1,7 @@ -{ - config, - lib, - ... -}: let +{lib, ...}: let inherit (lib.options) mkOption literalMD literalExpression; - inherit (lib.strings) optionalString; inherit (lib.types) str bool int enum attrsOf lines listOf either path submodule anything; inherit (lib.nvim.types) dagOf; - inherit (lib.nvim.lua) listToLuaTable; - - cfg = config.vim; in { options.vim = { enableLuaLoader = mkOption { @@ -286,21 +278,7 @@ in { luaConfigPre = mkOption { type = str; - default = '' - ${optionalString (cfg.additionalRuntimePaths != []) '' - -- The following list is generated from `vim.additionalRuntimePaths` - -- and is used to append additional runtime paths to the - -- `runtimepath` option. - vim.opt.runtimepath:append(${listToLuaTable cfg.additionalRuntimePaths}) - ''} - - ${optionalString cfg.enableLuaLoader '' - if vim.loader then - vim.loader.enable() - end - ''} - ''; - + default = ""; defaultText = literalMD '' By default, this option will **append** paths in [](#opt-vim.additionalRuntimePaths)