nvim/lua/plugins/telescope.lua 5.8 K raw
1
return {
2
  "nvim-telescope/telescope.nvim",
3
  tag = "0.1.5",
4
  config = function()
5
    local builtin = require('telescope.builtin')
6
    vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
7
    vim.keymap.set('n', '<leader>/', builtin.live_grep, {})
8
    vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
9
    vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
10
    vim.keymap.set('n', '<leader>sd', ":Telescope diagnostics bufnr=0<cr>", {})
11
    vim.keymap.set('n', "<leader>sD", "<cmd>Telescope diagnostics<cr>", {})
12
    vim.keymap.set('n', "<Leader>o", ":Telescope buffers theme=dropdown<CR>", {})
13
    vim.keymap.set('n', "<leader><leader>", ":Telescope smart_open<CR>", {})
14
    vim.keymap.set('n', "<leader>gc", "<cmd>Telescope git_commits<CR>", {})
15
    vim.keymap.set('n', "<leader>gs", "<cmd>Telescope git_status<CR>", {})
16
    vim.keymap.set('n', "<leader>sb", "<cmd>Telescope current_buffer_fuzzy_find<cr>", {})
17
18
19
20
    local telescope = require("telescope")
21
    local actions = require("telescope.actions")
22
    telescope.setup({
23
      file_ignore_patterns = { "%.git/.", "node_modules" },
24
      defaults = {
25
        mappings = {
26
          i = {
27
            ["<esc>"] = actions.close,
28
          },
29
        },
30
        previewer = false,
31
        hidden = true,
32
        prompt_prefix = "   ",
33
        file_ignore_patterns = { "node_modules", "package-lock.json" },
34
        initial_mode = "insert",
35
        select_strategy = "reset",
36
        sorting_strategy = "ascending",
37
        -- layout_strategy = "horizontal",
38
        layout_config = {
39
          --   width = 0.5,
40
          --   height = 0.4,
41
          prompt_position = "top",
42
          preview_cutoff = 120,
43
        },
44
      },
45
      pickers = {
46
        find_files = {
47
          -- theme = "dropdown",
48
          previewer = true,
49
          layout_config = {
50
            -- width = 0.5,
51
            height = 0.8,
52
            prompt_position = "top",
53
            preview_cutoff = 120,
54
          },
55
        },
56
        git_files = {
57
          previewer = true,
58
          layout_config = {
59
            height = 0.8,
60
            prompt_position = "top",
61
            preview_cutoff = 120,
62
          },
63
        },
64
        buffers = {
65
          mappings = {
66
            i = {
67
              ["<c-d>"] = actions.delete_buffer,
68
              ["<c-j>"] = actions.move_selection_next,
69
              ["<c-k>"] = actions.move_selection_previous,
70
            },
71
            n = {
72
              ["<c-d>"] = actions.delete_buffer,
73
              ["<c-j>"] = actions.move_selection_next,
74
              ["<c-k>"] = actions.move_selection_previous,
75
            },
76
          },
77
          previewer = false,
78
          initial_mode = "insert",
79
          theme = "dropdown",
80
          layout_config = {
81
            width = 0.5,
82
            height = 0.4,
83
            prompt_position = "top",
84
            preview_cutoff = 120,
85
          },
86
        },
87
        current_buffer_fuzzy_find = {
88
          previewer = true,
89
          -- theme = "dropdown",
90
          layout_config = {
91
            -- width = 0.5,
92
            height = 0.8,
93
            prompt_position = "top",
94
            preview_cutoff = 120,
95
          },
96
        },
97
        live_grep = {
98
          file_ignore_patterns = { "node_modules", "package-lock.json" },
99
          only_sort_text = true,
100
          previewer = true,
101
          layout_config = {
102
            horizontal = {
103
              width = 0.9,
104
              height = 0.75,
105
              preview_width = 0.6,
106
            },
107
          },
108
        },
109
        grep_string = {
110
          only_sort_text = true,
111
          previewer = true,
112
          layout_config = {
113
            horizontal = {
114
              width = 0.9,
115
              height = 0.75,
116
              preview_width = 0.6,
117
            },
118
          },
119
        },
120
        lsp_references = {
121
          show_line = false,
122
          previewer = true,
123
          layout_config = {
124
            horizontal = {
125
              width = 0.9,
126
              height = 0.75,
127
              preview_width = 0.6,
128
            },
129
          },
130
        },
131
        treesitter = {
132
          show_line = false,
133
          previewer = true,
134
          layout_config = {
135
            horizontal = {
136
              width = 0.9,
137
              height = 0.75,
138
              preview_width = 0.6,
139
            },
140
          },
141
        },
142
      },
143
      extensions = {
144
        fzf = {
145
          fuzzy = true,                   -- false will only do exact matching
146
          override_generic_sorter = true, -- override the generic sorter
147
          override_file_sorter = true,    -- override the file sorter
148
          case_mode = "smart_case",       -- or "ignore_case" or "respect_case"
149
        },
150
        ["ui-select"] = {
151
          require("telescope.themes").get_dropdown({
152
            previewer = false,
153
            initial_mode = "normal",
154
            sorting_strategy = "ascending",
155
            layout_strategy = "horizontal",
156
            layout_config = {
157
              horizontal = {
158
                width = 0.5,
159
                height = 0.4,
160
                preview_width = 0.6,
161
              },
162
            },
163
          }),
164
        },
165
        frecency = {
166
          default_workspace = "CWD",
167
          show_scores = true,
168
          show_unindexed = true,
169
          disable_devicons = false,
170
          ignore_patterns = {
171
            "*.git/*",
172
            "*/tmp/*",
173
            "*/lua-language-server/*",
174
          },
175
        },
176
        -- file_browser = {
177
        --   -- theme = "",
178
        --   previewer = true,
179
        --   -- disables netrw and use telescope-file-browser in its place
180
        --   hijack_netrw = true,
181
        --   -- mappings = {
182
        --   --   ["i"] = {
183
        --   --     -- your custom insert mode mappings
184
        --   --   },
185
        --   --   ["n"] = {
186
        --   --     -- your custom normal mode mappings
187
        --   --   },
188
        --   -- },
189
        -- },
190
      },
191
    })
192
    -- telescope.load_extension("file_browser")
193
  end,
194
}