telescope.lua 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. return {
  2. {
  3. "nvim-telescope/telescope.nvim",
  4. enabled = true,
  5. lazy = false,
  6. cmd = "Telescope",
  7. dependencies = {
  8. "nvim-lua/plenary.nvim", "nvim-telescope/telescope-ui-select.nvim"
  9. },
  10. config = function(_, _)
  11. local builtin = require("telescope.builtin")
  12. require("telescope").setup({
  13. extensions = {
  14. ["ui-select"] = { require("telescope.themes").get_dropdown() }
  15. },
  16. defaults = {
  17. ["borderchars"] = {
  18. "-", "¦", "-", "¦", "⌌", "⌍", "⌏", "⌎"
  19. },
  20. layout_strategy = "horizontal",
  21. layout_config = {
  22. horizontal = { width = { padding = 0 }, height = 0.99 }
  23. },
  24. cache_picker = {
  25. num_pickers = 100,
  26. limit_entries = 100,
  27. ignore_empty_prompt = true
  28. }
  29. },
  30. pickers = {
  31. live_grep = {
  32. additional_args = function(_)
  33. return { "--hidden", "--glob=!**/.git/*" }
  34. end
  35. }
  36. }
  37. })
  38. vim.keymap.set("n", "sf", function()
  39. require("telescope").extensions.file_browser.file_browser({
  40. select_buffer = true,
  41. grouped = true,
  42. no_ignore = true,
  43. hidden = true,
  44. respect_gitignore = false,
  45. path = vim.fn.expand("%:p:h")
  46. })
  47. end, {})
  48. vim.keymap.set("n", "ss", builtin.resume)
  49. vim.keymap.set("n", "sS", builtin.pickers)
  50. vim.keymap.set("n", "sa", builtin.find_files)
  51. vim.keymap.set("n", "sg", builtin.git_files)
  52. vim.keymap.set("n", "sb", builtin.buffers)
  53. vim.keymap.set("n", "sj", builtin.jumplist)
  54. vim.keymap.set("n", "sw", builtin.grep_string)
  55. vim.keymap.set("n", "sld", builtin.lsp_definitions)
  56. vim.keymap.set("n", "slt", builtin.lsp_type_definitions)
  57. vim.keymap.set("n", "slr", builtin.lsp_references)
  58. vim.keymap.set("n", "sli", builtin.lsp_implementations)
  59. vim.keymap.set("n", "sls", builtin.lsp_dynamic_workspace_symbols)
  60. require("telescope").load_extension("ui-select")
  61. require("telescope").load_extension("file_browser")
  62. end
  63. }, {
  64. "nvim-telescope/telescope-file-browser.nvim",
  65. dependencies = { "nvim-telescope/telescope.nvim" },
  66. enabled = true,
  67. lazy = false,
  68. config = function(_, _)
  69. require("telescope").setup({
  70. extensions = {
  71. file_browser = {
  72. respect_gitignore = false,
  73. hidden = { file_browser = true, folder_browser = true },
  74. hijack_netrw = true,
  75. display_stat = { date = false, size = true, mode = false },
  76. mappings = {}
  77. }
  78. }
  79. })
  80. require("telescope").load_extension("file_browser")
  81. end
  82. }, {
  83. dir = "../custom/telescope-shroud",
  84. name = "telescope-shroud",
  85. dependencies = { "nvim-telescope/telescope.nvim",
  86. "command-palette",
  87. "nvim-lua/plenary.nvim" },
  88. enabled = true,
  89. config = function(_, _)
  90. local shroud = require("telescope-shroud")
  91. local palette = require("command-palette")
  92. palette.add({
  93. {
  94. "Telescope Shroud", "Telescope `grep` filter management", { {
  95. "Populate", "Reload the list of filter options", shroud.populate
  96. }, {
  97. "Clear default", "Reset the default filters", function()
  98. shroud.set_default({})
  99. end
  100. }, {
  101. "Set default", "Set the default filters", shroud.set_default }, {
  102. "Open default", "Set the default filters", shroud.open_default }, {
  103. "Open narrow", "Set the default filters", shroud.open_narrow } } }
  104. })
  105. vim.keymap.set("n", "si", shroud.open_default)
  106. vim.keymap.set("n", "sI", shroud.open_narrow)
  107. end
  108. }
  109. }