diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index f55b847c..638f5d02 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -19,11 +19,6 @@ 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 @@ -96,11 +91,6 @@ 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. - - This deprecates `vim.useSystemClipboard` as well, see breaking changes - section above for migration options. - [amadaluzia](https://github.com/amadaluzia): [haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim diff --git a/modules/extra/deprecations.nix b/modules/extra/deprecations.nix index 91d8ef28..86497130 100644 --- a/modules/extra/deprecations.nix +++ b/modules/extra/deprecations.nix @@ -111,15 +111,6 @@ 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 195ef5e7..47bfe500 100644 --- a/modules/neovim/init/basic.nix +++ b/modules/neovim/init/basic.nix @@ -34,6 +34,12 @@ 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"; @@ -138,6 +144,10 @@ 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") ''} diff --git a/modules/neovim/init/clipboard.nix b/modules/neovim/init/clipboard.nix deleted file mode 100644 index 011effaf..00000000 --- a/modules/neovim/init/clipboard.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ - 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 30a481a1..7db6f2ef 100644 --- a/modules/neovim/init/default.nix +++ b/modules/neovim/init/default.nix @@ -2,7 +2,6 @@ imports = [ ./autocmds.nix ./basic.nix - ./clipboard.nix ./debug.nix ./diagnostics.nix ./highlight.nix