mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-04 04:32:21 +00:00 
			
		
		
		
	
		
			Some checks failed
		
		
	
	Check for typos in the source tree / check-typos (push) Has been cancelled
				
			
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  config,
 | 
						|
  lib,
 | 
						|
  ...
 | 
						|
}: let
 | 
						|
  inherit (lib.modules) mkIf;
 | 
						|
  inherit (lib.strings) optionalString;
 | 
						|
  inherit (lib.nvim.dag) entryAnywhere;
 | 
						|
  inherit (lib.nvim.lua) toLuaObject;
 | 
						|
 | 
						|
  cfg = config.vim.lsp;
 | 
						|
in {
 | 
						|
  config = mkIf (cfg.enable && cfg.lightbulb.enable) {
 | 
						|
    vim = {
 | 
						|
      startPlugins = ["nvim-lightbulb"];
 | 
						|
      pluginRC.lightbulb = entryAnywhere ''
 | 
						|
        local nvim_lightbulb = require("nvim-lightbulb")
 | 
						|
        nvim_lightbulb.setup(${toLuaObject cfg.lightbulb.setupOpts})
 | 
						|
        ${optionalString cfg.lightbulb.autocmd.enable ''
 | 
						|
          vim.api.nvim_create_autocmd(${toLuaObject cfg.lightbulb.autocmd.events}, {
 | 
						|
            pattern = ${toLuaObject cfg.lightbulb.autocmd.pattern},
 | 
						|
            callback = function()
 | 
						|
              nvim_lightbulb.update_lightbulb()
 | 
						|
            end,
 | 
						|
          })
 | 
						|
        ''}
 | 
						|
      '';
 | 
						|
    };
 | 
						|
 | 
						|
    warnings = [
 | 
						|
      # This could have been an assertion, but the chances of collision is very low and asserting here
 | 
						|
      # might be too dramatic. Let's only warn the user, *in case* this occurs and is not intended. No
 | 
						|
      # error will be thrown if 'lightbulb.setupOpts.autocmd.enable' has not been set by the user.
 | 
						|
      (mkIf (cfg.lightbulb.autocmd.enable -> (cfg.lightbulb.setupOpts.autocmd.enabled or false)) ''
 | 
						|
        Both 'vim.lsp.lightbulb.autocmd.enable' and 'vim.lsp.lightbulb.setupOpts.autocmd.enable' are set
 | 
						|
        simultaneously. This might have performance implications due to frequent updates. Please set only
 | 
						|
        one option to handle nvim-lightbulb autocmd.
 | 
						|
      '')
 | 
						|
    ];
 | 
						|
  };
 | 
						|
}
 |