summary refs log tree commit diff
path: root/.vim/lua/plugins/_telescope.lua
blob: 4841862088f8d450402ee4f905a97679a60b128d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
-- telescope.nvim et al config

local nnoremap = require('astronauta.keymap').nnoremap

local M = {}

-- TELESCOPE config -- {{{
require('telescope').setup{
  defaults = {
    initial_mode = 'normal',
    prompt_prefix = '> ',
    selection_caret = '* ',

    -- copied from dropdown theme
    sorting_strategy = 'ascending',
    layout_strategy = 'center',
    results_title = false,
    preview_title = 'P',
    preview_cutoff = 1,
    width = 0.88,
    results_height = 15,
    borderchars = {
      { '─', '│', '─', '│', '┌', '┐', '┘', '└'},
      prompt = {'─', '│', ' ', '│', '┌', '┐', '│', '│'},
      results = {'─', '│', '─', '│', '├', '┤', '┘', '└'},
      preview = { '─', '│', '─', '│', '┌', '┐', '┘', '└'},
    },

    file_previewer   = require('telescope.previewers').vim_buffer_cat.new,
    grep_previewer   = require('telescope.previewers').vim_buffer_vimgrep.new,
    qflist_previewer = require('telescope.previewers').vim_buffer_qflist.new,

    extensions = {
      fzf_writer = {
        use_highlighter = true,
        minimum_grep_characters = 4,
        shorten_path = true,
      }
    }
  }
}
-- }}}

-- MAPPINGS -- {{{

nnoremap { ';g', function()
    require('telescope').extensions.fzf_writer.staged_grep()
end }

nnoremap { ';w', function()
    local wr = require('lspconfig.util').root_pattern('.git')(vim.fn.expand('%:p'))
    require('telescope').extensions.fzf_writer.files({
      previewer = false,
      cwd = wr,
    })
end }

nnoremap { ';q', function()
    local ids = vim.fn.getqflist({winid = 1})
    if ids and not (ids.winid == 0) then
      vim.api.nvim_win_close(ids.winid, true)
    end
    require('telescope.builtin').quickfix()
end }

nnoremap { ';l', function()
    local ids = vim.fn.getloclist(0, {winid = 1})
    if ids and not (ids.winid == 0) then
      vim.api.nvim_win_close(ids.winid, true)
    end
    require('telescope.builtin').loclist()
end }

nnoremap { ';f', function()
    require('telescope.builtin').fd()
end }

nnoremap { ';b', function()
    require('telescope.builtin').buffers()
end }

nnoremap { ';t', function()
    require('telescope.builtin').tags()
end }

nnoremap { ';h', function()
    require('telescope.builtin').command_history()
end }

nnoremap { ';c', function()
    require('telescope.builtin').commands()
end }

-- LSP stuff

nnoremap { 'gA', function()
    require('telescope.builtin').lsp_code_actions()
end }

nnoremap { 'gA', function()
    require('telescope.builtin').lsp_code_actions()
end }

nnoremap { 'g0', function()
    require('telescope.builtin').lsp_document_symbols()
end }

nnoremap { 'gr', function()
    require('telescope.builtin').lsp_references()
end }

-- }}}

return M