summaryrefslogtreecommitdiff
path: root/lua/telescope/init.lua
blob: 76abb5ade9e530a79c02db3af3fcf884134e9796 (plain)
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
-- TODO: Debounce preview window maybe
-- TODO: Make filters
--          "fzf --filter"
--           jobstart() -> | fzf --filter "input on prompt"

local finders = require('telescope.finders')
local pickers = require('telescope.pickers')
local previewers = require('telescope.previewers')
local state = require('telescope.state')

local telescope = {
  finders = finders,
  pickers = pickers,
  previewers = previewers,
  state = state,
}

function __TelescopeOnLeave(prompt_bufnr)
  local status = state.get_status(prompt_bufnr)
  local picker = status.picker

  picker:close_windows(status)
end

-- TODO: Probably could attach this with nvim_buf_attach, and then I don't have to do the ugly global function stuff
function __TelescopeOnChange(prompt_bufnr, prompt, results_bufnr, results_win)
  local line = vim.api.nvim_buf_get_lines(prompt_bufnr, 0, -1, false)[1]
  local prompt_input = string.sub(line, #prompt + 1)

  local status = state.get_status(prompt_bufnr)
  local finder = status.finder

  vim.api.nvim_buf_set_lines(results_bufnr, 0, -1, false, {})
  local results = finder:get_results(results_win, results_bufnr, prompt_input)
end

return telescope