mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-03 20:22:21 +00:00 
			
		
		
		
	treewide: rewrite autocompletion module and related stuff (#404)
* 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
	
	
This commit is contained in:
		
					parent
					
						
							
								ef413736e9
							
						
					
				
			
			
				commit
				
					
						7dbd1cd8d1
					
				
			
		
					 33 changed files with 512 additions and 483 deletions
				
			
		
							
								
								
									
										17
									
								
								modules/plugins/snippets/luasnip/config.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								modules/plugins/snippets/luasnip/config.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: let
 | 
			
		||||
  inherit (lib.modules) mkIf;
 | 
			
		||||
 | 
			
		||||
  cfg = config.vim.snippets.luasnip;
 | 
			
		||||
in {
 | 
			
		||||
  config = mkIf cfg.enable {
 | 
			
		||||
    vim = {
 | 
			
		||||
      startPlugins = ["luasnip" "cmp-luasnip"] ++ cfg.providers;
 | 
			
		||||
      autocomplete.nvim-cmp.sources = {luasnip = "[LuaSnip]";};
 | 
			
		||||
      pluginRC.luasnip = cfg.loaders;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								modules/plugins/snippets/luasnip/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/plugins/snippets/luasnip/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./luasnip.nix
 | 
			
		||||
    ./config.nix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										36
									
								
								modules/plugins/snippets/luasnip/luasnip.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								modules/plugins/snippets/luasnip/luasnip.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,36 @@
 | 
			
		|||
{lib, ...}: let
 | 
			
		||||
  inherit (lib.options) mkEnableOption mkOption literalExpression literalMD;
 | 
			
		||||
  inherit (lib.types) listOf lines;
 | 
			
		||||
  inherit (lib.nvim.types) pluginType;
 | 
			
		||||
in {
 | 
			
		||||
  options.vim.snippets.luasnip = {
 | 
			
		||||
    enable = mkEnableOption "luasnip";
 | 
			
		||||
    providers = mkOption {
 | 
			
		||||
      type = listOf pluginType;
 | 
			
		||||
      default = ["friendly-snippets"];
 | 
			
		||||
      description = ''
 | 
			
		||||
        The snippet provider packages.
 | 
			
		||||
 | 
			
		||||
        ::: {.note}
 | 
			
		||||
        These are simply appended to {option} `vim.startPlugins`.
 | 
			
		||||
        :::
 | 
			
		||||
      '';
 | 
			
		||||
      example = literalExpression "[\"vimPlugins.vim-snippets\"]";
 | 
			
		||||
    };
 | 
			
		||||
    loaders = mkOption {
 | 
			
		||||
      type = lines;
 | 
			
		||||
      default = "require('luasnip.loaders.from_vscode').lazy_load()";
 | 
			
		||||
      defaultText = literalMD ''
 | 
			
		||||
        ```lua
 | 
			
		||||
        require('luasnip.loaders.from_vscode').lazy_load()
 | 
			
		||||
        ```
 | 
			
		||||
      '';
 | 
			
		||||
      description = "Lua code used to load snippet providers.";
 | 
			
		||||
      example = literalMD ''
 | 
			
		||||
        ```lua
 | 
			
		||||
        require("luasnip.loaders.from_snipmate").lazy_load()
 | 
			
		||||
        ```
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue