diff --git a/configuration.nix b/configuration.nix index 35cb0bda..74790128 100644 --- a/configuration.nix +++ b/configuration.nix @@ -21,12 +21,6 @@ isMaximal: { lspSignature.enable = true; lsplines.enable = isMaximal; nvim-docs-view.enable = isMaximal; - - # Code Actions - code-actions = { - enable = true; - fastaction-nvim.enable = true; - }; }; debugger = { @@ -209,6 +203,7 @@ isMaximal: { go = ["90" "130"]; }; }; + fastaction.enable = true; }; assistant = { diff --git a/modules/extra/deprecations.nix b/modules/extra/deprecations.nix index 8809092d..c6177749 100644 --- a/modules/extra/deprecations.nix +++ b/modules/extra/deprecations.nix @@ -10,9 +10,9 @@ in { # 2024-07-20 (mkRemovedOptionModule ["vim" "lsp" "nvimCodeActionMenu"] '' - nvimCodeActionMenu has been deprecated and archived upstream. As of 0.7, code-actions will be - available under `vim.lsp.code-actions.enable` and `vim.lsp.code.actions.<plugin>.enable`. - Please take a look at the nvf manual for more details. + nvimCodeActionMenu has been deprecated and archived upstream. As of 0.7, fastaction will be + available under `vim.ui.fastaction` as a replacement. Please take a look at the nvf manual + for more details. '') ]; } diff --git a/modules/plugins/lsp/code-actions/default.nix b/modules/plugins/lsp/code-actions/default.nix deleted file mode 100644 index af6070b0..00000000 --- a/modules/plugins/lsp/code-actions/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{lib, ...}: let - inherit (lib.options) mkEnableOption; -in { - imports = [ - ./fastaction-nvim - ]; - options.vim.lsp.code-actions = { - enable = mkEnableOption "code-actions. Setting this to `false` will disable all code action plugins."; - }; -} diff --git a/modules/plugins/lsp/code-actions/fastaction-nvim/config.nix b/modules/plugins/lsp/code-actions/fastaction-nvim/config.nix deleted file mode 100644 index f6424c6d..00000000 --- a/modules/plugins/lsp/code-actions/fastaction-nvim/config.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - config, - lib, - ... -}: let - inherit (lib.modules) mkIf; - inherit (lib.nvim.dag) entryAnywhere; - inherit (lib.nvim.lua) toLuaObject; - inherit (lib.nvim.binds) addDescriptionsToMappings mkSetLuaBinding pushDownDefault; - - cfg = config.vim.lsp.code-actions; - self = import ./fastaction-nvim.nix {inherit lib;}; - - mappingDefinitions = self.options.vim.lsp.code-actions.fastaction-nvim.mappings; - mappings = addDescriptionsToMappings cfg.fastaction-nvim.mappings mappingDefinitions; -in { - config = mkIf (cfg.enable && cfg.fastaction-nvim.enable) { - vim = { - startPlugins = ["fastaction-nvim"]; - - binds.whichKey.register = pushDownDefault { - "<leader>c" = "Code Actions"; - }; - - maps = { - normal = mkSetLuaBinding mappings.code_action "require('fastaction').code_action"; - visual = mkSetLuaBinding mappings.range_action "require('fastaction').range_code_action"; - }; - - pluginRC.fastaction-nvim = entryAnywhere '' - -- Enable trouble diagnostics viewer - require('fastaction').setup(${toLuaObject cfg.fastaction-nvim.setupOpts}) - ''; - }; - }; -} diff --git a/modules/plugins/lsp/code-actions/fastaction-nvim/fastaction-nvim.nix b/modules/plugins/lsp/code-actions/fastaction-nvim/fastaction-nvim.nix deleted file mode 100644 index c9e0b951..00000000 --- a/modules/plugins/lsp/code-actions/fastaction-nvim/fastaction-nvim.nix +++ /dev/null @@ -1,15 +0,0 @@ -{lib, ...}: let - inherit (lib.options) mkEnableOption; - inherit (lib.nvim.types) mkPluginSetupOption; - inherit (lib.nvim.binds) mkMappingOption; -in { - options.vim.lsp.code-actions.fastaction-nvim = { - enable = mkEnableOption "code actions for Neovim via fastaction.nvim"; - setupOpts = mkPluginSetupOption "fastaction-nvim" {}; - - mappings = { - code_action = mkMappingOption "Displays code action popup [Fastaction.nvim]" "<leader>cfa"; - range_action = mkMappingOption " Displays code actions for visual range [Fastaction.nvim]" "<leader>cra"; - }; - }; -} diff --git a/modules/plugins/lsp/default.nix b/modules/plugins/lsp/default.nix index 61f31455..a5d5163d 100644 --- a/modules/plugins/lsp/default.nix +++ b/modules/plugins/lsp/default.nix @@ -16,8 +16,5 @@ ./lspkind ./lsplines ./nvim-docs-view - - # Code Actions - ./code-actions ]; } diff --git a/modules/plugins/ui/default.nix b/modules/plugins/ui/default.nix index 262cdbbf..34076600 100644 --- a/modules/plugins/ui/default.nix +++ b/modules/plugins/ui/default.nix @@ -8,5 +8,6 @@ ./illuminate ./breadcrumbs ./borders + ./fastaction ]; } diff --git a/modules/plugins/ui/fastaction/config.nix b/modules/plugins/ui/fastaction/config.nix new file mode 100644 index 00000000..252bfb1e --- /dev/null +++ b/modules/plugins/ui/fastaction/config.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkIf mkDefault; + inherit (lib.nvim.dag) entryAnywhere; + inherit (lib.nvim.lua) toLuaObject; + + cfg = config.vim.ui.fastaction; +in { + config = mkIf cfg.enable { + vim = { + ui.fastaction.setupOpts.register_ui_select = mkDefault true; + + startPlugins = ["fastaction-nvim"]; + pluginRC.fastaction-nvim = entryAnywhere "require('fastaction').setup(${toLuaObject cfg.setupOpts})"; + }; + }; +} diff --git a/modules/plugins/lsp/code-actions/fastaction-nvim/default.nix b/modules/plugins/ui/fastaction/default.nix similarity index 100% rename from modules/plugins/lsp/code-actions/fastaction-nvim/default.nix rename to modules/plugins/ui/fastaction/default.nix index ecac8b8c..ef5c2bc9 100644 --- a/modules/plugins/lsp/code-actions/fastaction-nvim/default.nix +++ b/modules/plugins/ui/fastaction/default.nix @@ -1,6 +1,6 @@ { imports = [ - ./config.nix ./fastaction-nvim.nix + ./config.nix ]; } diff --git a/modules/plugins/ui/fastaction/fastaction-nvim.nix b/modules/plugins/ui/fastaction/fastaction-nvim.nix new file mode 100644 index 00000000..52ac59a9 --- /dev/null +++ b/modules/plugins/ui/fastaction/fastaction-nvim.nix @@ -0,0 +1,9 @@ +{lib, ...}: let + inherit (lib.options) mkEnableOption; + inherit (lib.nvim.types) mkPluginSetupOption; +in { + options.vim.ui.fastaction = { + enable = mkEnableOption "overriding vim.ui.select with fastaction.nvim"; + setupOpts = mkPluginSetupOption "fastaction" {}; + }; +}