Skip to content

Instantly share code, notes, and snippets.

@Hamid-K
Created December 19, 2023 03:53
Show Gist options
  • Save Hamid-K/3e26b3ea7c24e70c2af269a70bbe6059 to your computer and use it in GitHub Desktop.
Save Hamid-K/3e26b3ea7c24e70c2af269a70bbe6059 to your computer and use it in GitHub Desktop.
Fix for Neovim Telescope plugin to enable preview of binary contents.
local previewers = require('telescope.previewers')
local Job = require('plenary.job')
local new_maker = function(filepath, bufnr, opts)
filepath = vim.fn.expand(filepath)
Job:new({
command = 'cat',
args = { filepath },
on_exit = function(j)
local result = j:result()
vim.schedule(function()
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, result)
end)
end
}):sync()
end
local options = {
defaults = {
vimgrep_arguments = {
"rg",
"-L",
"--color=never",
"--no-heading",
"--with-filename",
"--line-number",
"--column",
"--smart-case",
},
prompt_prefix = "",
selection_caret = " ",
entry_prefix = " ",
initial_mode = "insert",
selection_strategy = "reset",
sorting_strategy = "ascending",
layout_strategy = "horizontal",
layout_config = {
horizontal = {
prompt_position = "top",
preview_width = 0.55,
results_width = 0.8,
},
vertical = {
mirror = false,
},
width = 0.87,
height = 0.80,
preview_cutoff = 120,
},
file_sorter = require("telescope.sorters").get_fuzzy_file,
file_ignore_patterns = { "node_modules" },
generic_sorter = require("telescope.sorters").get_generic_fuzzy_sorter,
path_display = { "truncate" },
winblend = 0,
border = {},
borderchars = { "", "", "", "", "", "", "", "" },
color_devicons = true,
set_env = { ["COLORTERM"] = "truecolor" }, -- default = nil,
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,
buffer_previewer_maker = new_maker,
mappings = {
n = { ["q"] = require("telescope.actions").close },
},
},
extensions_list = { "themes", "terms" },
}
require('telescope').setup(options)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment