mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-04 04:32:21 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			860 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			860 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  lib,
 | 
						|
  config,
 | 
						|
  ...
 | 
						|
}: let
 | 
						|
  inherit (lib.modules) mkIf;
 | 
						|
  inherit (lib.nvim.attrsets) mapListToAttrs;
 | 
						|
  inherit (builtins) typeOf tryEval;
 | 
						|
 | 
						|
  cfg = config.vim.autocomplete;
 | 
						|
  getPluginName = plugin:
 | 
						|
    if typeOf plugin == "string"
 | 
						|
    then plugin
 | 
						|
    else if (plugin ? pname && (tryEval plugin.pname).success)
 | 
						|
    then plugin.pname
 | 
						|
    else plugin.name;
 | 
						|
in {
 | 
						|
  config.vim = mkIf cfg.enableSharedCmpSources {
 | 
						|
    startPlugins = ["rtp-nvim"];
 | 
						|
    lazy.plugins =
 | 
						|
      mapListToAttrs (package: {
 | 
						|
        name = getPluginName package;
 | 
						|
        value = {
 | 
						|
          inherit package;
 | 
						|
          lazy = true;
 | 
						|
          after = ''
 | 
						|
            local path = vim.fn.globpath(vim.o.packpath, 'pack/*/opt/${getPluginName package}')
 | 
						|
            require("rtp_nvim").source_after_plugin_dir(path)
 | 
						|
          '';
 | 
						|
        };
 | 
						|
      })
 | 
						|
      cfg.nvim-cmp.sourcePlugins;
 | 
						|
  };
 | 
						|
}
 |