mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-04 04:32:21 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  config,
 | 
						|
  lib,
 | 
						|
  ...
 | 
						|
}: let
 | 
						|
  inherit (lib.modules) mkIf;
 | 
						|
  inherit (lib.nvim.dag) entryAnywhere;
 | 
						|
 | 
						|
  cfg = config.vim.filetree.neo-tree;
 | 
						|
in {
 | 
						|
  config = mkIf cfg.enable {
 | 
						|
    vim = {
 | 
						|
      startPlugins = [
 | 
						|
        # dependencies
 | 
						|
        "plenary-nvim" # commons library
 | 
						|
        "image-nvim" # optional for image previews
 | 
						|
        "nui-nvim" # ui library
 | 
						|
      ];
 | 
						|
 | 
						|
      lazy.plugins.neo-tree-nvim = {
 | 
						|
        package = "neo-tree-nvim";
 | 
						|
        setupModule = "neo-tree";
 | 
						|
        inherit (cfg) setupOpts;
 | 
						|
 | 
						|
        cmd = ["Neotree"];
 | 
						|
      };
 | 
						|
 | 
						|
      visuals.nvim-web-devicons.enable = true;
 | 
						|
      # from https://github.com/nvim-neo-tree/neo-tree.nvim/discussions/1326
 | 
						|
      pluginRC.neo-tree =
 | 
						|
        mkIf (cfg.setupOpts.filesystem.hijack_netrw_behavior != "disabled" && config.vim.lazy.enable)
 | 
						|
        (entryAnywhere ''
 | 
						|
          vim.api.nvim_create_autocmd("BufEnter", {
 | 
						|
            group = vim.api.nvim_create_augroup("load_neo_tree", {}),
 | 
						|
            desc = "Loads neo-tree when opening a directory",
 | 
						|
            callback = function(args)
 | 
						|
              local stats = vim.uv.fs_stat(args.file)
 | 
						|
 | 
						|
              if not stats or stats.type ~= "directory" then
 | 
						|
                return
 | 
						|
              end
 | 
						|
 | 
						|
              require("lz.n").trigger_load("neo-tree-nvim")
 | 
						|
 | 
						|
              return true
 | 
						|
            end,
 | 
						|
          })
 | 
						|
        '');
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |