mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-10-31 11:02:37 +00:00 
			
		
		
		
	 7dbd1cd8d1
			
		
	
	
	
	
	7dbd1cd8d1* modules/completion: rewrite
* treewide: remove vsnip, add luasnip
* nvim-cmp: add default sorting
* nvim-cmp: load after luasnip
* lib: fix docs for mergelessListOf
* docs: add changelog entires for rewrite
* deprecations: add rewrite deprecations
* nvim-cmp: clarify in format description
* docs: fix option reference in release notes
* treewide: remove reduant `// {default = false;}`s
* luasnip: add missing `{option}` for option reference
* deprecations: add entry for vsnip
* nvim-autopairs: use multiline string
* nvim-dap: use outer attribute
		
	
			
		
			
				
	
	
		
			142 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   lib,
 | |
|   config,
 | |
|   ...
 | |
| }: let
 | |
|   inherit (lib.options) mkEnableOption mkOption;
 | |
|   inherit (lib.types) anything nullOr listOf submodule str;
 | |
|   inherit (lib.nvim.types) mkPluginSetupOption;
 | |
|   inherit (lib.nvim.config) mkBool;
 | |
| in {
 | |
|   options.vim.ui.noice = {
 | |
|     enable = mkEnableOption "noice.nvim UI modification library";
 | |
| 
 | |
|     setupOpts = mkPluginSetupOption "noice.nvim" {
 | |
|       lsp = {
 | |
|         override = {
 | |
|           "vim.lsp.util.convert_input_to_markdown_lines" =
 | |
|             mkBool true "override the default lsp markdown formatter with Noice";
 | |
| 
 | |
|           "vim.lsp.util.stylize_markdown" =
 | |
|             mkBool true "override the lsp markdown formatter with Noice";
 | |
| 
 | |
|           "cmp.entry.get_documentation" =
 | |
|             mkBool config.vim.autocomplete.nvim-cmp.enable "override cmp documentation with Noice";
 | |
|         };
 | |
| 
 | |
|         signature = {
 | |
|           enabled = mkEnableOption "signature help";
 | |
|         };
 | |
|       };
 | |
| 
 | |
|       presets = {
 | |
|         bottom_search = mkBool true "use a classic bottom cmdline for search";
 | |
|         command_palette = mkBool true "position the cmdline and popupmenu together";
 | |
|         long_message_to_split = mkBool true "long messages will be sent to a split";
 | |
|         inc_rename = mkBool false "enables an input dialog for inc-rename.nvim";
 | |
|         lsp_doc_border =
 | |
|           mkBool config.vim.ui.borders.enable "add a border to hover docs and signature help";
 | |
|       };
 | |
| 
 | |
|       # TODO: is it possible to write a submodule for this?
 | |
|       format = {
 | |
|         cmdline = mkOption {
 | |
|           description = "formatting options for the cmdline";
 | |
|           type = nullOr anything;
 | |
|           default = {
 | |
|             pattern = "^:";
 | |
|             icon = "";
 | |
|             lang = "vim";
 | |
|           };
 | |
|         };
 | |
| 
 | |
|         search_down = mkOption {
 | |
|           description = "formatting options for search_down";
 | |
|           type = nullOr anything;
 | |
|           default = {
 | |
|             kind = "search";
 | |
|             pattern = "^/";
 | |
|             icon = " ";
 | |
|             lang = "regex";
 | |
|           };
 | |
|         };
 | |
| 
 | |
|         search_up = mkOption {
 | |
|           description = "formatting options for search_up";
 | |
|           type = nullOr anything;
 | |
|           default = {
 | |
|             kind = "search";
 | |
|             pattern = "^%?";
 | |
|             icon = " ";
 | |
|             lang = "regex";
 | |
|           };
 | |
|         };
 | |
| 
 | |
|         filter = mkOption {
 | |
|           description = "formatting options for filter";
 | |
|           type = nullOr anything;
 | |
|           default = {
 | |
|             pattern = "^:%s*!";
 | |
|             icon = "";
 | |
|             lang = "bash";
 | |
|           };
 | |
|         };
 | |
| 
 | |
|         lua = mkOption {
 | |
|           description = "formatting options for lua";
 | |
|           type = nullOr anything;
 | |
|           default = {
 | |
|             pattern = "^:%s*lua%s+";
 | |
|             icon = "";
 | |
|             lang = "lua";
 | |
|           };
 | |
|         };
 | |
| 
 | |
|         help = mkOption {
 | |
|           description = "formatting options for help";
 | |
|           type = nullOr anything;
 | |
|           default = {
 | |
|             pattern = "^:%s*he?l?p?%s+";
 | |
|             icon = "";
 | |
|           };
 | |
|         };
 | |
|       };
 | |
| 
 | |
|       routes = mkOption {
 | |
|         description = "How to route messages";
 | |
|         type = listOf (submodule {
 | |
|           options = {
 | |
|             view = mkOption {
 | |
|               description = "how this route is viewed";
 | |
|               type = nullOr str;
 | |
|               default = null;
 | |
|             };
 | |
| 
 | |
|             filter = mkOption {
 | |
|               description = "a filter for messages matching this route";
 | |
|               type = anything;
 | |
|             };
 | |
| 
 | |
|             opts = mkOption {
 | |
|               description = "options for the view and the route";
 | |
|               type = nullOr anything;
 | |
|               default = null;
 | |
|             };
 | |
|           };
 | |
|         });
 | |
| 
 | |
|         default = [
 | |
|           {
 | |
|             filter = {
 | |
|               event = "msg_show";
 | |
|               kind = "";
 | |
|               find = "written";
 | |
|             };
 | |
|             opts = {skip = true;};
 | |
|           }
 | |
|         ];
 | |
|         defaultText = "Hide written messages";
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| }
 |