mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 19:12:38 +00:00 
			
		
		
		
	neovim/spellcheck: allow disabling spellchecking for filetypes
This commit is contained in:
		
					parent
					
						
							
								4997865547
							
						
					
				
			
			
				commit
				
					
						6eea801cd6
					
				
			
		
					 1 changed files with 66 additions and 0 deletions
				
			
		
							
								
								
									
										66
									
								
								modules/neovim/init/spellcheck.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								modules/neovim/init/spellcheck.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,66 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   ... | ||||||
|  | }: let | ||||||
|  |   inherit (lib.modules) mkIf; | ||||||
|  |   inherit (lib.options) mkOption mkEnableOption literalExpression literalMD; | ||||||
|  |   inherit (lib.types) listOf str; | ||||||
|  |   inherit (lib.nvim.lua) listToLuaTable; | ||||||
|  |   inherit (lib.nvim.dag) entryAfter; | ||||||
|  | 
 | ||||||
|  |   cfg = config.vim.spellChecking; | ||||||
|  | in { | ||||||
|  |   options.vim.spellChecking = { | ||||||
|  |     enable = mkEnableOption "neovim's built-in spellchecking"; | ||||||
|  |     languages = mkOption { | ||||||
|  |       type = listOf str; | ||||||
|  |       default = ["en"]; | ||||||
|  |       example = literalExpression ''["en" "de"]''; | ||||||
|  |       description = literalMD '' | ||||||
|  |         A list of languages that should be used for spellchecking. | ||||||
|  | 
 | ||||||
|  |         To add your own language files, you may place your `spell` | ||||||
|  |         directory in either {path}`~/.config/nvim` or the | ||||||
|  |         [additionalRuntimePaths](#opt-vim.additionalRuntimePaths) | ||||||
|  |         directory provided by neovim-flake. | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     ignoredFiletypes = mkOption { | ||||||
|  |       type = listOf str; | ||||||
|  |       default = ["toggleterm"]; | ||||||
|  |       example = literalExpression ''["markdown" "gitcommit"]''; | ||||||
|  |       description = '' | ||||||
|  |         A list of filetypes for which spellchecking will be disabled. | ||||||
|  | 
 | ||||||
|  |         You may use `echo &filetype` in neovim to find out the | ||||||
|  |         filetype for a specific buffer. | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     programmingWordlist.enable = mkEnableOption '' | ||||||
|  |       vim-dirtytalk, a wordlist for programmers containing | ||||||
|  |       common programming terms. | ||||||
|  | 
 | ||||||
|  |       Setting this value as `true` has the same effect | ||||||
|  |       as setting {option}`vim.spellCheck.enable` | ||||||
|  |     ''; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  |     vim.luaConfigRC.spellchecking = entryAfter ["basic"] '' | ||||||
|  |       vim.opt.spell = true | ||||||
|  |       vim.opt.spelllang = ${listToLuaTable cfg.languages} | ||||||
|  | 
 | ||||||
|  |       -- Disable spellchecking for certain filetypes | ||||||
|  |       -- as configured by `vim.spellChecking.ignoredFiletypes` | ||||||
|  |       vim.api.nvim_create_autocmd({ "FileType" }, { | ||||||
|  |         pattern = ${listToLuaTable cfg.ignoredFiletypes}, | ||||||
|  |         callback = function() | ||||||
|  |           vim.opt_local.spell = false | ||||||
|  |         end, | ||||||
|  |       }) | ||||||
|  |     ''; | ||||||
|  |   }; | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue