mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 02:52:37 +00:00 
			
		
		
		
	highlight: init
This commit is contained in:
		
					parent
					
						
							
								db8a586b7e
							
						
					
				
			
			
				commit
				
					
						fcb6f82892
					
				
			
		
					 3 changed files with 108 additions and 0 deletions
				
			
		|  | @ -102,6 +102,7 @@ | ||||||
|   - `mini.trailspace` |   - `mini.trailspace` | ||||||
|   - `mini.visits` |   - `mini.visits` | ||||||
| - Add [fzf-lua](https://github.com/ibhagwan/fzf-lua) in `vim.fzf-lua` | - Add [fzf-lua](https://github.com/ibhagwan/fzf-lua) in `vim.fzf-lua` | ||||||
|  | - Add options to define highlights under `vim.highlight` | ||||||
| 
 | 
 | ||||||
| [kaktu5](https://github.com/kaktu5): | [kaktu5](https://github.com/kaktu5): | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,6 +2,7 @@ | ||||||
|   imports = [ |   imports = [ | ||||||
|     ./basic.nix |     ./basic.nix | ||||||
|     ./debug.nix |     ./debug.nix | ||||||
|  |     ./highlight.nix | ||||||
|     ./spellcheck.nix |     ./spellcheck.nix | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										106
									
								
								modules/neovim/init/highlight.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								modules/neovim/init/highlight.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,106 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   ... | ||||||
|  | }: let | ||||||
|  |   inherit (lib.options) mkOption literalExpression; | ||||||
|  |   inherit (lib.types) nullOr attrsOf listOf submodule bool ints str; | ||||||
|  |   inherit (lib.strings) hasPrefix concatStringsSep; | ||||||
|  |   inherit (lib.attrsets) mapAttrsToList; | ||||||
|  |   inherit (lib.nvim.dag) entryAnywhere; | ||||||
|  |   inherit (lib.nvim.lua) toLuaObject; | ||||||
|  |   inherit (lib.nvim.types) hexColor; | ||||||
|  | 
 | ||||||
|  |   mkColorOption = target: | ||||||
|  |     mkOption { | ||||||
|  |       type = nullOr hexColor; | ||||||
|  |       default = null; | ||||||
|  |       description = '' | ||||||
|  |         The ${target} color to use. Written as color name or hex "#RRGGBB". | ||||||
|  |       ''; | ||||||
|  |       example = "#ebdbb2"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |   mkBoolOption = name: | ||||||
|  |     mkOption { | ||||||
|  |       type = nullOr bool; | ||||||
|  |       default = null; | ||||||
|  |       description = ''Whether to enable ${name}''; | ||||||
|  |       example = false; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |   cfg = config.vim.highlight; | ||||||
|  | in { | ||||||
|  |   options.vim.highlight = mkOption { | ||||||
|  |     type = attrsOf (submodule { | ||||||
|  |       # See :h nvim_set_hl | ||||||
|  |       options = { | ||||||
|  |         bg = mkColorOption "background"; | ||||||
|  |         fg = mkColorOption "foreground"; | ||||||
|  |         sp = mkColorOption "special"; | ||||||
|  |         blend = mkOption { | ||||||
|  |           type = nullOr (ints.between 0 100); | ||||||
|  |           default = null; | ||||||
|  |           description = "Blend as an integer between 0 and 100"; | ||||||
|  |         }; | ||||||
|  |         bold = mkBoolOption "bold"; | ||||||
|  |         standout = mkBoolOption "standout"; | ||||||
|  |         underline = mkBoolOption "underline"; | ||||||
|  |         undercurl = mkBoolOption "undercurl"; | ||||||
|  |         underdouble = mkBoolOption "underdouble"; | ||||||
|  |         underdotted = mkBoolOption "underdotted"; | ||||||
|  |         underdashed = mkBoolOption "underdashed"; | ||||||
|  |         strikethrough = mkBoolOption "strikethrough"; | ||||||
|  |         italic = mkBoolOption "italic"; | ||||||
|  |         reverse = mkBoolOption "reverse"; | ||||||
|  |         nocombine = mkBoolOption "nocombine"; | ||||||
|  |         link = mkOption { | ||||||
|  |           type = nullOr str; | ||||||
|  |           default = null; | ||||||
|  |           description = "The name of another highlight group to link to"; | ||||||
|  |         }; | ||||||
|  |         default = mkOption { | ||||||
|  |           type = nullOr bool; | ||||||
|  |           default = null; | ||||||
|  |           description = "Don't override existing definition"; | ||||||
|  |         }; | ||||||
|  |         ctermfg = mkOption { | ||||||
|  |           type = nullOr str; | ||||||
|  |           default = null; | ||||||
|  |           description = "The cterm foreground color to use"; | ||||||
|  |         }; | ||||||
|  |         ctermbg = mkOption { | ||||||
|  |           type = nullOr str; | ||||||
|  |           default = null; | ||||||
|  |           description = "The cterm background color to use"; | ||||||
|  |         }; | ||||||
|  |         cterm = mkOption { | ||||||
|  |           type = nullOr (listOf str); | ||||||
|  |           default = null; | ||||||
|  |           description = "The cterm arguments to use. See :h highlight-args"; | ||||||
|  |         }; | ||||||
|  |         force = mkBoolOption "force update"; | ||||||
|  |       }; | ||||||
|  |     }); | ||||||
|  |     default = {}; | ||||||
|  |     description = "Custom highlight to apply"; | ||||||
|  |     example = literalExpression '' | ||||||
|  |       { | ||||||
|  |         SignColumn = { | ||||||
|  |           bg = "#282828"; | ||||||
|  |         }; | ||||||
|  |       } | ||||||
|  |     ''; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = { | ||||||
|  |     vim.luaConfigRC.highlight = let | ||||||
|  |       highlights = | ||||||
|  |         mapAttrsToList ( | ||||||
|  |           name: value: ''vim.api.nvim_set_hl(0, ${toLuaObject name}, ${toLuaObject value})'' | ||||||
|  |         ) | ||||||
|  |         cfg; | ||||||
|  |     in | ||||||
|  |       entryAnywhere (concatStringsSep "\n" highlights); | ||||||
|  |   }; | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 LilleAila
				LilleAila