mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 11:02:37 +00:00 
			
		
		
		
	utility/yanky-nvim: init
This commit is contained in:
		
					parent
					
						
							
								4242640c98
							
						
					
				
			
			
				commit
				
					
						0fbcf1ca6f
					
				
			
		
					 8 changed files with 102 additions and 9 deletions
				
			
		|  | @ -175,6 +175,7 @@ isMaximal: { | ||||||
|       icon-picker.enable = isMaximal; |       icon-picker.enable = isMaximal; | ||||||
|       surround.enable = isMaximal; |       surround.enable = isMaximal; | ||||||
|       diffview-nvim.enable = true; |       diffview-nvim.enable = true; | ||||||
|  |       yanky-nvim.enable = false; | ||||||
|       motion = { |       motion = { | ||||||
|         hop.enable = true; |         hop.enable = true; | ||||||
|         leap.enable = true; |         leap.enable = true; | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ | ||||||
| 
 | 
 | ||||||
| [typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim | [typst-preview.nvim]: https://github.com/chomosuke/typst-preview.nvim | ||||||
| [render-markdown.nvim]: https://github.com/MeanderingProgrammer/render-markdown.nvim | [render-markdown.nvim]: https://github.com/MeanderingProgrammer/render-markdown.nvim | ||||||
|  | [yanky.nvim]: https://github.com/gbprod/yanky.nvim | ||||||
| 
 | 
 | ||||||
| - Add [typst-preview.nvim] under | - Add [typst-preview.nvim] under | ||||||
|   `languages.typst.extensions.typst-preview-nvim`. |   `languages.typst.extensions.typst-preview-nvim`. | ||||||
|  | @ -33,10 +34,13 @@ | ||||||
| 
 | 
 | ||||||
| - Add [](#opt-vim.lsp.lightbulb.autocmd.enable) for manually managing the | - Add [](#opt-vim.lsp.lightbulb.autocmd.enable) for manually managing the | ||||||
|   previously managed lightbulb autocommand. |   previously managed lightbulb autocommand. | ||||||
|  | 
 | ||||||
|   - A warning will occur if [](#opt-vim.lsp.lightbulb.autocmd.enable) and |   - A warning will occur if [](#opt-vim.lsp.lightbulb.autocmd.enable) and | ||||||
|     `vim.lsp.lightbulb.setupOpts.autocmd.enabled` are both set at the same time. |     `vim.lsp.lightbulb.setupOpts.autocmd.enabled` are both set at the same time. | ||||||
|     Pick only one. |     Pick only one. | ||||||
| 
 | 
 | ||||||
|  | - Add [yanky.nvim] to available plugins, under `vim.utility.yanky-nvim`. | ||||||
|  | 
 | ||||||
| [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 | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										17
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							|  | @ -2761,6 +2761,22 @@ | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "plugin-yanky-nvim": { | ||||||
|  |       "flake": false, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1737126873, | ||||||
|  |         "narHash": "sha256-Gt8kb6sZoNIM2SDWUPyAF5Tw99qMZl+ltUCfyMXgJsU=", | ||||||
|  |         "owner": "gbprod", | ||||||
|  |         "repo": "yanky.nvim", | ||||||
|  |         "rev": "d2696b30e389dced94d5acab728f524a25f308d2", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "gbprod", | ||||||
|  |         "repo": "yanky.nvim", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "root": { |     "root": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "flake-parts": "flake-parts", |         "flake-parts": "flake-parts", | ||||||
|  | @ -2934,6 +2950,7 @@ | ||||||
|         "plugin-vim-repeat": "plugin-vim-repeat", |         "plugin-vim-repeat": "plugin-vim-repeat", | ||||||
|         "plugin-vim-startify": "plugin-vim-startify", |         "plugin-vim-startify": "plugin-vim-startify", | ||||||
|         "plugin-which-key": "plugin-which-key", |         "plugin-which-key": "plugin-which-key", | ||||||
|  |         "plugin-yanky-nvim": "plugin-yanky-nvim", | ||||||
|         "systems": "systems_2" |         "systems": "systems_2" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |  | ||||||
|  | @ -590,6 +590,11 @@ | ||||||
|       flake = false; |       flake = false; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  |     plugin-yanky-nvim = { | ||||||
|  |       url = "github:gbprod/yanky.nvim"; | ||||||
|  |       flake = false; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|     # Note-taking |     # Note-taking | ||||||
|     plugin-obsidian-nvim = { |     plugin-obsidian-nvim = { | ||||||
|       url = "github:epwalsh/obsidian.nvim"; |       url = "github:epwalsh/obsidian.nvim"; | ||||||
|  |  | ||||||
|  | @ -1,19 +1,19 @@ | ||||||
| { | { | ||||||
|   imports = [ |   imports = [ | ||||||
|     ./outline |  | ||||||
|     ./binds |     ./binds | ||||||
|     ./ccc |     ./ccc | ||||||
|  |     ./diffview | ||||||
|  |     ./fzf-lua | ||||||
|     ./gestures |     ./gestures | ||||||
|     ./motion |  | ||||||
|     ./new-file-template |  | ||||||
|     ./telescope |  | ||||||
|     ./icon-picker |     ./icon-picker | ||||||
|     ./images |     ./images | ||||||
|     ./telescope |     ./motion | ||||||
|     ./diffview |     ./new-file-template | ||||||
|     ./wakatime |     ./outline | ||||||
|     ./surround |  | ||||||
|     ./preview |     ./preview | ||||||
|     ./fzf-lua |     ./surround | ||||||
|  |     ./telescope | ||||||
|  |     ./wakatime | ||||||
|  |     ./yanky-nvim | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										32
									
								
								modules/plugins/utility/yanky-nvim/config.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								modules/plugins/utility/yanky-nvim/config.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,32 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   pkgs, | ||||||
|  |   lib, | ||||||
|  |   ... | ||||||
|  | }: let | ||||||
|  |   inherit (lib.modules) mkIf; | ||||||
|  |   inherit (lib.lists) optionals concatLists; | ||||||
|  |   inherit (lib.nvim.lua) toLuaObject; | ||||||
|  |   inherit (lib.nvim.dag) entryAnywhere; | ||||||
|  | 
 | ||||||
|  |   cfg = config.vim.utility.yanky-nvim; | ||||||
|  |   usingSqlite = cfg.setupOpts.ring.storage == "sqlite"; | ||||||
|  | in { | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  |     vim = { | ||||||
|  |       # TODO: this could probably be lazyloaded. I'm not yet sure which event is | ||||||
|  |       # ideal, so it's loaded normally for now. | ||||||
|  |       startPlugins = concatLists [ | ||||||
|  |         ["yanky-nvim"] | ||||||
|  | 
 | ||||||
|  |         # If using the sqlite backend, sqlite-lua must be loaded | ||||||
|  |         # alongside yanky. | ||||||
|  |         (optionals usingSqlite [pkgs.vimPlugins.sqlite-lua]) | ||||||
|  |       ]; | ||||||
|  | 
 | ||||||
|  |       pluginRC.yanky-nvim = entryAnywhere '' | ||||||
|  |         require("yanky").setup(${toLuaObject cfg.setupOpts}); | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										6
									
								
								modules/plugins/utility/yanky-nvim/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/plugins/utility/yanky-nvim/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | ||||||
|  | { | ||||||
|  |   imports = [ | ||||||
|  |     ./config.nix | ||||||
|  |     ./yanky-nvim.nix | ||||||
|  |   ]; | ||||||
|  | } | ||||||
							
								
								
									
										28
									
								
								modules/plugins/utility/yanky-nvim/yanky-nvim.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								modules/plugins/utility/yanky-nvim/yanky-nvim.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | ||||||
|  | {lib, ...}: let | ||||||
|  |   inherit (lib.options) mkEnableOption mkOption; | ||||||
|  |   inherit (lib.types) enum; | ||||||
|  | in { | ||||||
|  |   options.vim.utility.yanky-nvim = { | ||||||
|  |     enable = mkEnableOption '' | ||||||
|  |       improved Yank and Put functionalities for Neovim  [yanky-nvim] | ||||||
|  |     ''; | ||||||
|  | 
 | ||||||
|  |     setupOpts = { | ||||||
|  |       ring.storage = mkOption { | ||||||
|  |         type = enum ["shada" "sqlite" "memory"]; | ||||||
|  |         default = "shada"; | ||||||
|  |         example = "sqlite"; | ||||||
|  |         description = '' | ||||||
|  |           storage mode for ring values. | ||||||
|  | 
 | ||||||
|  |           - shada: this will save pesistantly using Neovim ShaDa feature. | ||||||
|  |             This means that history will be persisted between each session of Neovim. | ||||||
|  |           - memory: each Neovim instance will have his own history and it will be | ||||||
|  |             lost between sessions. | ||||||
|  |           - sqlite: more reliable than `shada`, requires `sqlite.lua` as a dependency. | ||||||
|  |             nvf will add this dependency to `PATH` automatically. | ||||||
|  |         ''; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue