mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 11:02:37 +00:00 
			
		
		
		
	Merge branch 'main' into add_ruby_lsp_as_ruby_server_option
This commit is contained in:
		
				commit
				
					
						3c79d4df64
					
				
			
		
					 5 changed files with 100 additions and 10 deletions
				
			
		|  | @ -19,6 +19,11 @@ | ||||||
|   unavailable as they have been refactored out of the main none-ls repository |   unavailable as they have been refactored out of the main none-ls repository | ||||||
|   upstream. |   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): | [NotAShelf](https://github.com/notashelf): | ||||||
| 
 | 
 | ||||||
| [typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim | [typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim | ||||||
|  | @ -91,6 +96,11 @@ | ||||||
|   options for `vim.diagnostic.config()` can now be customized through the |   options for `vim.diagnostic.config()` can now be customized through the | ||||||
|   [](#opt-vim.diagnostics.config) in nvf. |   [](#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): | [amadaluzia](https://github.com/amadaluzia): | ||||||
| 
 | 
 | ||||||
| [haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim | [haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim | ||||||
|  |  | ||||||
|  | @ -111,6 +111,15 @@ in { | ||||||
|         under the diagnostics module. Please consider using one of 'vim.diagnostics.config' or |         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. |         '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. |     # Migrated via batchRenameOptions. Further batch renames must be below this line. | ||||||
|  |  | ||||||
|  | @ -34,12 +34,6 @@ in { | ||||||
|       description = "Enable syntax highlighting"; |       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 { |     lineNumberMode = mkOption { | ||||||
|       type = enum ["relative" "number" "relNumber" "none"]; |       type = enum ["relative" "number" "relNumber" "none"]; | ||||||
|       default = "relNumber"; |       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 |     # to pre-set Neovim options. Fear not, though as the Lua DAG is still as powerful as it | ||||||
|     # could be. |     # could be. | ||||||
|     luaConfigRC.basic = entryAfter ["globalsScript"] '' |     luaConfigRC.basic = entryAfter ["globalsScript"] '' | ||||||
|       ${optionalString cfg.useSystemClipboard '' |  | ||||||
|         vim.opt.clipboard:append("unnamedplus") |  | ||||||
|       ''} |  | ||||||
| 
 |  | ||||||
|       ${optionalString cfg.syntaxHighlighting '' |       ${optionalString cfg.syntaxHighlighting '' | ||||||
|         vim.cmd("syntax on") |         vim.cmd("syntax on") | ||||||
|       ''} |       ''} | ||||||
|  |  | ||||||
							
								
								
									
										80
									
								
								modules/neovim/init/clipboard.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								modules/neovim/init/clipboard.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -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 | ||||||
|  |       ); | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
|  | @ -2,6 +2,7 @@ | ||||||
|   imports = [ |   imports = [ | ||||||
|     ./autocmds.nix |     ./autocmds.nix | ||||||
|     ./basic.nix |     ./basic.nix | ||||||
|  |     ./clipboard.nix | ||||||
|     ./debug.nix |     ./debug.nix | ||||||
|     ./diagnostics.nix |     ./diagnostics.nix | ||||||
|     ./highlight.nix |     ./highlight.nix | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Alexandra Østermark
				Alexandra Østermark