diff options
| author | TJ DeVries <devries.timothyj@gmail.com> | 2020-10-19 22:46:36 -0400 |
|---|---|---|
| committer | TJ DeVries <devries.timothyj@gmail.com> | 2020-10-19 22:46:36 -0400 |
| commit | f95fe484f744426f0e192d6aa61cd27aedeaf15a (patch) | |
| tree | db0e39d847f33e977ae439d35bfbd8bda115f357 | |
| parent | 4cfab37541937cc4b5dac26277b799f7eaabdf1f (diff) | |
feat: Add ability to configure default sorters
| -rw-r--r-- | README.md | 11 | ||||
| -rw-r--r-- | lua/telescope/builtin.lua | 41 | ||||
| -rw-r--r-- | lua/telescope/config.lua | 10 |
3 files changed, 34 insertions, 28 deletions
@@ -115,12 +115,21 @@ nnoremap <Leader>en <cmd>lua require'telescope.builtin'.find_files{ cwd = "~/.co Find all the files in your nvim config. +### Available keys for `defaults` + +- `generic_sorter`: + - Description: The sorter to be used for generic searches. + - `default`: `require('telescope.sorters').get_generic_fuzzy_sorter +- `file_sorter`: + - Description: The sorter to be used for file based searches. + - `default`: `require('telescope.sorters').get_fuzzy_file + ### Full Example ```vim lua <<EOF -- totally optional to use setup -require('telescope').setup{ +require('telescope').setup { defaults = { shorten_path = false -- currently the default value is true } diff --git a/lua/telescope/builtin.lua b/lua/telescope/builtin.lua index 5261243..5e4a06f 100644 --- a/lua/telescope/builtin.lua +++ b/lua/telescope/builtin.lua @@ -52,18 +52,19 @@ builtin.git_files = function(opts) --- Find root of git directory and remove trailing newline characters opts.cwd = string.gsub(vim.fn.system("git rev-parse --show-toplevel"), '[\n\r]+', '') end + -- By creating the entry maker after the cwd options, -- we ensure the maker uses the cwd options when being created. opts.entry_maker = opts.entry_maker or make_entry.gen_from_file(opts) pickers.new(opts, { prompt_title = 'Git File', - finder = finders.new_oneshot_job( + finder = finders.new_oneshot_job( { "git", "ls-tree", "--full-tree", "-r", "--name-only", "HEAD" }, opts ), previewer = previewers.cat.new(opts), - sorter = sorters.get_fuzzy_file(), + sorter = conf.file_sorter(opts), }):find() end @@ -90,7 +91,7 @@ builtin.commands = function() } end }, - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(), attach_mappings = function(prompt_bufnr, map) local run_command = function() local selection = actions.get_selected_entry(prompt_bufnr) @@ -133,9 +134,9 @@ builtin.live_grep = function(opts) pickers.new(opts, { prompt_title = 'Live Grep', - finder = live_grepper, + finder = live_grepper, previewer = previewers.vimgrep.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), }):find() end @@ -165,7 +166,7 @@ builtin.lsp_references = function(opts) entry_maker = make_entry.gen_from_quickfix(opts), }, previewer = previewers.qflist.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), }):find() end @@ -196,7 +197,7 @@ builtin.lsp_document_symbols = function(opts) entry_maker = make_entry.gen_from_quickfix(opts) }, previewer = previewers.vim_buffer.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), }):find() end @@ -268,7 +269,7 @@ builtin.lsp_code_actions = function(opts) return true end, - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), }):find() end @@ -302,7 +303,7 @@ builtin.lsp_workspace_symbols = function(opts) entry_maker = make_entry.gen_from_quickfix(opts) }, previewer = previewers.qflist.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), }):find() end @@ -322,7 +323,7 @@ builtin.quickfix = function(opts) entry_maker = make_entry.gen_from_quickfix(opts), }, previewer = previewers.qflist.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), }):find() end @@ -345,7 +346,7 @@ builtin.loclist = function(opts) entry_maker = make_entry.gen_from_quickfix(opts), }, previewer = previewers.qflist.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), }):find() end @@ -367,7 +368,7 @@ builtin.grep_string = function(opts) opts ), previewer = previewers.vimgrep.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), }):find() end @@ -379,7 +380,7 @@ builtin.oldfiles = function(opts) finder = finders.new_table(vim.tbl_filter(function(val) return 0 ~= vim.fn.filereadable(val) end, vim.v.oldfiles)), - sorter = sorters.get_fuzzy_file(), + sorter = conf.file_sorter(opts), previewer = previewers.cat.new(opts), }):find() end @@ -433,7 +434,7 @@ builtin.help_tags = function(opts) }, -- TODO: previewer for Vim help previewer = previewers.help.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), attach_mappings = function(prompt_bufnr, map) local view_help = function() local selection = actions.get_selected_entry(prompt_bufnr) @@ -471,7 +472,7 @@ builtin.reloader = function(opts) entry_maker = make_entry.gen_from_packages(opts), }, -- previewer = previewers.vim_buffer.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), attach_mappings = function(prompt_bufnr, map) local reload_package = function() @@ -521,7 +522,7 @@ builtin.builtin = function(opts) entry_maker = make_entry.gen_from_quickfix(opts), }, previewer = previewers.qflist.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), }):find() end @@ -563,7 +564,7 @@ builtin.find_files = function(opts) opts ), previewer = previewers.cat.new(opts), - sorter = sorters.get_fuzzy_file(opts), + sorter = conf.file_sorter(opts), }):find() end @@ -597,7 +598,7 @@ builtin.buffers = function(opts) }, -- previewer = previewers.vim_buffer.new(opts), previewer = previewers.vimgrep.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), }):find() end @@ -655,7 +656,7 @@ builtin.treesitter = function(opts) entry_maker = make_entry.gen_from_treesitter(opts) }, previewer = previewers.vim_buffer.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), }):find() end @@ -688,7 +689,7 @@ builtin.planets = function(opts) end }, previewer = previewers.cat.new(opts), - sorter = sorters.get_generic_fuzzy_sorter(), + sorter = conf.generic_sorter(opts), attach_mappings = function(prompt_bufnr, map) map('i', '<CR>', function() local selection = actions.get_selected_entry(prompt_bufnr) diff --git a/lua/telescope/config.lua b/lua/telescope/config.lua index 51edbe6..b01b278 100644 --- a/lua/telescope/config.lua +++ b/lua/telescope/config.lua @@ -12,7 +12,7 @@ local function first_non_null(...) end end -local actions = require('telescope.actions') +local sorters = require('telescope.sorters') -- TODO: Add other major configuration points here. -- selection_strategy @@ -81,12 +81,8 @@ function config.set_defaults(defaults) set("mappings", {}) set("default_mappings", nil) - -- NOT STABLE. DO NOT USE - set("horizontal_config", { - get_preview_width = function(columns, _) - return math.floor(columns * 0.75) - end, - }) + set("generic_sorter", sorters.get_generic_fuzzy_sorter) + set("file_sorter", sorters.get_fuzzy_file) end function config.clear_defaults() |
