55 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   config,
 | |
|   lib,
 | |
|   inputs,
 | |
|   ...
 | |
| }: let
 | |
|   inherit (lib) mkIf mkOption;
 | |
|   inherit (lib.types) bool;
 | |
|   inherit (inputs.nvf.lib.nvim.dag) entryAfter;
 | |
|   cfg = config.vim.telescope;
 | |
| in {
 | |
|   options.vim.telescope = {
 | |
|     autostart = mkOption {
 | |
|       type = bool;
 | |
|       default = false;
 | |
|       description = "Auto start telescope when opening neovim unless opening a file";
 | |
|     };
 | |
|   };
 | |
|   config = mkIf cfg.autostart {
 | |
|     vim.luaConfigRC.telescope-autostart =
 | |
|       entryAfter ["pluginConfigs"]
 | |
|       #lua
 | |
|       ''
 | |
|         local find_files_hijack_netrw = vim.api.nvim_create_augroup("find_files_hijack_netrw", { clear = true })
 | |
|         -- clear FileExplorer appropriately to prevent netrw from launching on folders
 | |
|         -- netrw may or may not be loaded before telescope-find-files
 | |
|         -- conceptual credits to nvim-tree and telescope-file-browser
 | |
|         vim.api.nvim_create_autocmd("VimEnter", {
 | |
|             pattern = "*",
 | |
|             once = true,
 | |
|             callback = function()
 | |
|                 pcall(vim.api.nvim_clear_autocmds, { group = "FileExplorer" })
 | |
|             end,
 | |
|         })
 | |
|         vim.api.nvim_create_autocmd("BufEnter", {
 | |
|             group = find_files_hijack_netrw,
 | |
|             pattern = "*",
 | |
|             callback = function()
 | |
|                 vim.schedule(function()
 | |
|                     -- Early return if netrw or not a directory
 | |
|                     if vim.bo[0].filetype == "netrw" or vim.fn.isdirectory(vim.fn.expand("%:p")) == 0 then
 | |
|                         return
 | |
|                     end
 | |
| 
 | |
|                     vim.api.nvim_buf_set_option(0, "bufhidden", "wipe")
 | |
| 
 | |
|                     require("telescope.builtin").find_files({
 | |
|                         cwd = vim.fn.expand("%:p:h"),
 | |
|                     })
 | |
|                 end)
 | |
|             end,
 | |
|         })
 | |
|       '';
 | |
|   };
 | |
| }
 |