feat: All buffer previewers are now async and more config options (#354)

Configure preview window with:
autocmd User TelescopePreviewerLoaded setlocal wrap
autocmd User TelescopePreviewerLoaded setlocal number

file_maker example: Use regex highlighting for certain filetype like `*min.js` because they slow
down things with treesitter highlighter. Just a snippet for tests. We will do an extension :)

local previewers = require('telescope.previewers')
local putils = require('telescope.previewers.utils')
local pfiletype = require('plenary.filetype')

local _bad = { '.*%.min%.js' }
local bad_files = function(filepath)
  for _, v in ipairs(_bad) do
    if filepath:match(v) then
      return true
    end
  end

  return false
end

local new_maker = function(filepath, bufnr, bufname, use_ft_detect, callback)
  if use_ft_detect == nil then use_ft_detect = true end

  if bad_files(filepath) then
    previewers.buffer_previewer_maker(filepath, bufnr, bufname, false, callback)
    local ft = pfiletype.detect(filepath)
    putils.regex_highlighter(bufnr, ft)
  else
    previewers.buffer_previewer_maker(filepath, bufnr, bufname, use_ft_detect, callback)
  end
end

require('telescope').setup {
  defaults = {
    buffer_previewer_maker = new_maker,
  }
}
This commit is contained in:
Simon Hauser
2020-12-29 21:05:59 +01:00
committed by GitHub
parent e555cd375f
commit 1d40ab5ccd
8 changed files with 296 additions and 148 deletions

View File

@@ -9,24 +9,25 @@ previewers.new = function(...)
end
previewers.new_termopen_previewer = term_previewer.new_termopen_previewer
previewers.git_commit_diff = term_previewer.git_commit_diff
previewers.git_branch_log = term_previewer.git_branch_log
previewers.git_file_diff = term_previewer.git_file_diff
previewers.cat = term_previewer.cat
previewers.vimgrep = term_previewer.vimgrep
previewers.qflist = term_previewer.qflist
previewers.new_buffer_previewer = buffer_previewer.new_buffer_previewer
previewers.vim_buffer_cat = buffer_previewer.cat
previewers.vim_buffer_vimgrep = buffer_previewer.vimgrep
previewers.vim_buffer_qflist = buffer_previewer.qflist
previewers.ctags = buffer_previewer.ctags
previewers.builtin = buffer_previewer.builtin
previewers.help = buffer_previewer.help
previewers.man = buffer_previewer.man
previewers.autocommands = buffer_previewer.autocommands
previewers.highlights = buffer_previewer.highlights
previewers.display_content = buffer_previewer.display_content
previewers.new_buffer_previewer = buffer_previewer.new_buffer_previewer
previewers.buffer_previewer_maker = buffer_previewer.file_maker
previewers.vim_buffer_cat = buffer_previewer.cat
previewers.vim_buffer_vimgrep = buffer_previewer.vimgrep
previewers.vim_buffer_qflist = buffer_previewer.qflist
previewers.git_branch_log = buffer_previewer.git_branch_log
previewers.git_commit_diff = buffer_previewer.git_commit_diff
previewers.git_file_diff = buffer_previewer.git_file_diff
previewers.ctags = buffer_previewer.ctags
previewers.builtin = buffer_previewer.builtin
previewers.help = buffer_previewer.help
previewers.man = buffer_previewer.man
previewers.autocommands = buffer_previewer.autocommands
previewers.highlights = buffer_previewer.highlights
previewers.display_content = buffer_previewer.display_content
previewers.Previewer = Previewer