From 3c2e5fb23e9f6ca1aa682ae16bac3319bfe03e38 Mon Sep 17 00:00:00 2001 From: zbq Date: Tue, 29 Nov 2022 05:41:37 +0800 Subject: feat: add configuration to fix encoding of output of find_command in find_files (#2232) --- lua/telescope/builtin/init.lua | 1 + lua/telescope/make_entry.lua | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'lua') diff --git a/lua/telescope/builtin/init.lua b/lua/telescope/builtin/init.lua index 23f3e4e..eef35b6 100644 --- a/lua/telescope/builtin/init.lua +++ b/lua/telescope/builtin/init.lua @@ -74,6 +74,7 @@ builtin.grep_string = require_on_exported_call("telescope.builtin.__files").grep ---@param opts table: options to pass to the picker ---@field cwd string: root dir to search from (default: cwd, use utils.buffer_dir() to search relative to open buffer) ---@field find_command function|table: cmd to use for the search. Can be a fn(opts) -> tbl (default: autodetect) +---@field file_entry_encoding string: encoding of output of `find_command` ---@field follow boolean: if true, follows symlinks (i.e. uses `-L` flag for the `find` command) ---@field hidden boolean: determines whether to show hidden files or not (default: false) ---@field no_ignore boolean: show files ignored by .gitignore, .ignore, etc. (default: false) diff --git a/lua/telescope/make_entry.lua b/lua/telescope/make_entry.lua index 699145c..19e3674 100644 --- a/lua/telescope/make_entry.lua +++ b/lua/telescope/make_entry.lua @@ -192,8 +192,15 @@ do return rawget(t, rawget(lookup_keys, k)) end - return function(line) - return setmetatable({ line }, mt_file_entry) + if opts.file_entry_encoding then + return function(line) + line = vim.iconv(line, opts.file_entry_encoding, "utf8") + return setmetatable({ line }, mt_file_entry) + end + else + return function(line) + return setmetatable({ line }, mt_file_entry) + end end end end -- cgit v1.2.3