autocmd.lua 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. local is_git_dir = function()
  2. return os.execute("git rev-parse --is-inside-work-tree >> /dev/null 2>&1")
  3. end
  4. local dir_picker_group = vim.api.nvim_create_augroup("DirPicker", { clear = true })
  5. vim.api.nvim_create_autocmd("VimEnter", {
  6. group = dir_picker_group,
  7. callback = function()
  8. -- If launched as `nvim <dir>`, open Telescope and wipe unnamed normal buffers once a real file is opened.
  9. if vim.fn.argc() == 1 then
  10. local target = vim.fn.argv(0)
  11. if vim.fn.isdirectory(target) == 1 then
  12. vim.api.nvim_create_autocmd("BufEnter", {
  13. group = dir_picker_group,
  14. callback = function()
  15. local buf = vim.api.nvim_get_current_buf()
  16. if vim.api.nvim_buf_get_name(buf) ~= "" then
  17. for _, b in ipairs(vim.api.nvim_list_bufs()) do
  18. if vim.api.nvim_buf_get_name(b) == "" and vim.bo[b].buftype == "" then
  19. pcall(vim.api.nvim_buf_delete, b, { force = true })
  20. end
  21. end
  22. vim.api.nvim_del_augroup_by_id(dir_picker_group)
  23. end
  24. end,
  25. })
  26. local ts_builtin = require("telescope.builtin")
  27. vim.defer_fn(function()
  28. if is_git_dir() == 0 then
  29. ts_builtin.git_files({ show_untracked = true })
  30. else
  31. ts_builtin.find_files()
  32. end
  33. end, 10)
  34. end
  35. end
  36. end,
  37. })