mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 11:02:37 +00:00 
			
		
		
		
	utility/precognition: init module (#437)
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Set up binary cache / cachix (default) (push) Has been cancelled
				
			
		
			
				
	
				Set up binary cache / cachix (maximal) (push) Has been cancelled
				
			
		
			
				
	
				Set up binary cache / cachix (nix) (push) Has been cancelled
				
			
		
			
				
	
				Validate flake & check documentation / Validate Flake Documentation (docs) (push) Has been cancelled
				
			
		
			
				
	
				Validate flake & check documentation / Validate Flake Documentation (docs-html) (push) Has been cancelled
				
			
		
			
				
	
				Validate flake & check documentation / Validate Flake Documentation (docs-json) (push) Has been cancelled
				
			
		
			
				
	
				Validate flake & check documentation / Validate Flake Documentation (docs-manpages) (push) Has been cancelled
				
			
		
			
				
	
				Validate flake & check formatting / Validate Flake (push) Has been cancelled
				
			
		
			
				
	
				Validate flake & check formatting / Formatting via Alejandra (push) Has been cancelled
				
			
		
			
				
	
				Build and deploy documentation / Check latest commit (push) Has been cancelled
				
			
		
			
				
	
				Build and deploy documentation / publish (push) Has been cancelled
				
			
		
		
	
	
		
	
		
			Some checks failed
		
		
	
	Set up binary cache / cachix (default) (push) Has been cancelled
				
			Set up binary cache / cachix (maximal) (push) Has been cancelled
				
			Set up binary cache / cachix (nix) (push) Has been cancelled
				
			Validate flake & check documentation / Validate Flake Documentation (docs) (push) Has been cancelled
				
			Validate flake & check documentation / Validate Flake Documentation (docs-html) (push) Has been cancelled
				
			Validate flake & check documentation / Validate Flake Documentation (docs-json) (push) Has been cancelled
				
			Validate flake & check documentation / Validate Flake Documentation (docs-manpages) (push) Has been cancelled
				
			Validate flake & check formatting / Validate Flake (push) Has been cancelled
				
			Validate flake & check formatting / Formatting via Alejandra (push) Has been cancelled
				
			Build and deploy documentation / Check latest commit (push) Has been cancelled
				
			Build and deploy documentation / publish (push) Has been cancelled
				
			* utility/precognition: init * utility/precognition: fix priority example, add default * utility/precognition: add files to default.nix * utility/precognition: fix typos, manual fmt * utility/precognition: remove useless mappings i was going to add binds to toggle/enable/disable but ehhh idk * utility/precognition: fix hints option it broke * utility/precognition: update gutter hints, new description * utility/precognition: add files to motion defaults * utility/precognition: add plugin to flake * utility/precognition: remove comment reference oops * utility/precognition: add precognition to maximal configuration it does work! * utility/precognition: update descriptions needs docs link, desc is somewhat obscure. * docs: add credit to release notes * utility/precognition: format * utility/precognition: de-linkify descriptions * utility/precognition: no more rec * utility/precognition: convert to setupOpts honestly raf was cooking with this one. it's much nicer to use compared to interpolation lol * utility/precognition: remove unnecessary function parameter * utility/precognition: format * utility/precognition: add description to disabled_fts oops * utility/precognition: manual format * utility/precognition: remove periods at the end of descriptions * utility/precognition: fix configuration.nix entry oops lol * utility/precognition: format * utility/precognition: expand `vim` * precognition: consistency changes Just my minor nits. --------- Co-authored-by: NotAShelf <raf@notashelf.dev>
This commit is contained in:
		
					parent
					
						
							
								8ff50562d7
							
						
					
				
			
			
				commit
				
					
						8997e62b3b
					
				
			
		
					 8 changed files with 118 additions and 0 deletions
				
			
		|  | @ -165,6 +165,7 @@ isMaximal: { | |||
|       motion = { | ||||
|         hop.enable = true; | ||||
|         leap.enable = true; | ||||
|         precognition.enable = isMaximal; | ||||
|       }; | ||||
| 
 | ||||
|       images = { | ||||
|  |  | |||
|  | @ -216,3 +216,7 @@ everyone. | |||
| [Bloxx12](https://github.com/Bloxx12): | ||||
| 
 | ||||
| - Fix internal breakage in `elixir-tools` setup. | ||||
| 
 | ||||
| [Nowaaru](https://github.com/Nowaaru): | ||||
| 
 | ||||
| - Add `precognition-nvim`. | ||||
|  |  | |||
							
								
								
									
										17
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										17
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							|  | @ -1421,6 +1421,22 @@ | |||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "plugin-precognition-nvim": { | ||||
|       "flake": false, | ||||
|       "locked": { | ||||
|         "lastModified": 1730325090, | ||||
|         "narHash": "sha256-onY1Aa+dwLR1wRua52hpSXj6zZOZXjkUlDjDa0xEEcE=", | ||||
|         "owner": "tris203", | ||||
|         "repo": "precognition.nvim", | ||||
|         "rev": "0189e8d6f96275a079b2805d68d49414871885cd", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "tris203", | ||||
|         "repo": "precognition.nvim", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "plugin-project-nvim": { | ||||
|       "flake": false, | ||||
|       "locked": { | ||||
|  | @ -1880,6 +1896,7 @@ | |||
|         "plugin-otter-nvim": "plugin-otter-nvim", | ||||
|         "plugin-oxocarbon": "plugin-oxocarbon", | ||||
|         "plugin-plenary-nvim": "plugin-plenary-nvim", | ||||
|         "plugin-precognition-nvim": "plugin-precognition-nvim", | ||||
|         "plugin-project-nvim": "plugin-project-nvim", | ||||
|         "plugin-registers": "plugin-registers", | ||||
|         "plugin-rose-pine": "plugin-rose-pine", | ||||
|  |  | |||
|  | @ -525,6 +525,11 @@ | |||
|       flake = false; | ||||
|     }; | ||||
| 
 | ||||
|     plugin-precognition-nvim = { | ||||
|       url = "github:tris203/precognition.nvim"; | ||||
|       flake = false; | ||||
|     }; | ||||
| 
 | ||||
|     # Note-taking | ||||
|     plugin-obsidian-nvim = { | ||||
|       url = "github:epwalsh/obsidian.nvim"; | ||||
|  |  | |||
|  | @ -2,5 +2,6 @@ _: { | |||
|   imports = [ | ||||
|     ./hop | ||||
|     ./leap | ||||
|     ./precognition | ||||
|   ]; | ||||
| } | ||||
|  |  | |||
							
								
								
									
										18
									
								
								modules/plugins/utility/motion/precognition/config.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								modules/plugins/utility/motion/precognition/config.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | |||
| { | ||||
|   config, | ||||
|   lib, | ||||
|   ... | ||||
| }: let | ||||
|   inherit (lib.modules) mkIf; | ||||
| 
 | ||||
|   cfg = config.vim.utility.motion.precognition; | ||||
| in { | ||||
|   config = mkIf cfg.enable { | ||||
|     vim = { | ||||
|       startPlugins = ["precognition-nvim"]; | ||||
|       luaConfigRC.precognition = lib.nvim.dag.entryAnywhere '' | ||||
|         require('precognition').setup(${lib.nvim.lua.toLuaObject cfg.setupOpts}) | ||||
|       ''; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										6
									
								
								modules/plugins/utility/motion/precognition/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/plugins/utility/motion/precognition/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| { | ||||
|   imports = [ | ||||
|     ./precognition.nix | ||||
|     ./config.nix | ||||
|   ]; | ||||
| } | ||||
							
								
								
									
										66
									
								
								modules/plugins/utility/motion/precognition/precognition.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								modules/plugins/utility/motion/precognition/precognition.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,66 @@ | |||
| {lib, ...}: let | ||||
|   inherit (lib.options) mkEnableOption mkOption literalExpression; | ||||
|   inherit (lib.types) attrsOf listOf str bool int submodule; | ||||
|   inherit (lib.nvim.types) mkPluginSetupOption; | ||||
| 
 | ||||
|   mkHintType = description: | ||||
|     mkOption { | ||||
|       inherit description; | ||||
|       default = {}; | ||||
|       type = attrsOf (submodule { | ||||
|         options = { | ||||
|           text = mkOption { | ||||
|             type = str; | ||||
|             description = "The easier-to-read depiction of the motion"; | ||||
|           }; | ||||
| 
 | ||||
|           prio = mkOption { | ||||
|             type = int; | ||||
|             default = 1; | ||||
|             description = "The priority of the hint"; | ||||
|             example = 10; | ||||
|           }; | ||||
|         }; | ||||
|       }); | ||||
|     }; | ||||
| in { | ||||
|   options.vim.utility.motion.precognition = { | ||||
|     enable = mkEnableOption "assisted motion discovery[precognition.nvim]"; | ||||
|     setupOpts = mkPluginSetupOption "precognition.nvim" { | ||||
|       startVisible = mkOption { | ||||
|         type = bool; | ||||
|         default = true; | ||||
|         description = "Whether to start 'precognition' automatically"; | ||||
|       }; | ||||
| 
 | ||||
|       showBlankVirtLine = mkOption { | ||||
|         type = bool; | ||||
|         default = true; | ||||
|         description = "Whether to show a blank virtual line when no movements are shown"; | ||||
|       }; | ||||
| 
 | ||||
|       highlightColor = mkOption { | ||||
|         type = attrsOf str; | ||||
|         default = {link = "Comment";}; | ||||
|         example = literalExpression '' | ||||
|           { link = "Comment"; } | ||||
|           # or | ||||
|           { foreground = "#0000FF"; background = "#000000"; }; | ||||
|         ''; | ||||
|         description = "The highlight for the virtual text"; | ||||
|       }; | ||||
| 
 | ||||
|       disabled_fts = mkOption { | ||||
|         type = listOf str; | ||||
|         default = ["startify"]; | ||||
|         example = literalExpression ''["startify"]''; | ||||
|         description = "Filetypes that automatically disable 'precognition'"; | ||||
|       }; | ||||
| 
 | ||||
|       hints = mkHintType "What motions display, and at what priority"; | ||||
|       gutterHints = mkHintType '' | ||||
|         What motions display and at what priority. Only appears in gutters | ||||
|       ''; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Noire
				Noire