fix: a lot of small things and adds more customization for caret (#554)

Attention:
prompt_prefix will no longer add a space at the end. So if you still want a space at the end make sure your configuration has one.
The default should not be changed. So if you haven't copied prompt_prefix in your config this doesn't affect you.

Feat:
- prompt prefix does no longer always end with space
- selection_caret configurable. Default: `> `
- result_prefix configurable. Default: `  `
- more actions for git_branches
  - <c-t> does track the branch
  - <c-r> does rebase branch
  - also added delete branch action but not configured. See readme on how to do that

Fixes:
- fix docgen ci
- Better error for lsp_workspace_symbols
- better formatting for CONTRIBUTING.md
- move from systemlist to plenary.job
- git branch now supports checkout on remote branches
This commit is contained in:
Simon Hauser
2021-02-27 16:26:25 +01:00
committed by GitHub
parent 84732d1d78
commit ca92ec1a83
12 changed files with 209 additions and 112 deletions

View File

@@ -79,20 +79,15 @@ end
git.branches = function(opts)
local output = utils.get_os_command_output({ 'git', 'branch', '--all' }, opts.cwd)
local tmp_results = {}
local results = {}
for _, v in ipairs(output) do
if not string.match(v, 'HEAD') and v ~= '' then
v = string.gsub(v, '.* ', '')
v = string.gsub(v, '^remotes/[^/]*/', '')
tmp_results[v] = true
v = string.gsub(v, '^remotes/', '')
table.insert(results, v)
end
end
local results = {}
for k, _ in pairs(tmp_results) do
table.insert(results, k)
end
pickers.new(opts, {
prompt_title = 'Git Branches',
finder = finders.new_table {
@@ -103,8 +98,13 @@ git.branches = function(opts)
},
previewer = previewers.git_branch_log.new(opts),
sorter = conf.file_sorter(opts),
attach_mappings = function()
attach_mappings = function(_, map)
actions.select_default:replace(actions.git_checkout)
map('i', '<c-t>', actions.git_track_branch)
map('n', '<c-t>', actions.git_track_branch)
map('i', '<c-r>', actions.git_rebase_branch)
map('n', '<c-r>', actions.git_rebase_branch)
return true
end
}):find()
@@ -155,14 +155,14 @@ local set_opts_cwd = function(opts)
end
-- Find root of git directory and remove trailing newline characters
local git_root = vim.fn.systemlist("git -C " .. opts.cwd .. " rev-parse --show-toplevel")[1]
local git_root, ret = utils.get_os_command_output({ "git", "rev-parse", "--show-toplevel" }, opts.cwd)
local use_git_root = utils.get_default(opts.use_git_root, true)
if vim.v.shell_error ~= 0 then
if ret ~= 0 then
error(opts.cwd .. ' is not a git directory')
else
if use_git_root then
opts.cwd = git_root
opts.cwd = git_root[1]
end
end
end

View File

@@ -151,8 +151,11 @@ lsp.workspace_symbols = function(opts)
local params = {query = opts.query or ''}
local results_lsp = vim.lsp.buf_request_sync(0, "workspace/symbol", params, opts.timeout or 10000)
if not results_lsp or vim.tbl_isempty(results_lsp) then
print("No results from workspace/symbol")
-- Clangd returns { { result = {} } } for query=''
if not results_lsp or vim.tbl_isempty(results_lsp) or
vim.tbl_isempty(results_lsp[1]) or vim.tbl_isempty(results_lsp[1].result) then
print("No results from workspace/symbol. Maybe try a different query: " ..
"Telescope lsp_workspace_symbols query=example")
return
end
@@ -167,7 +170,6 @@ lsp.workspace_symbols = function(opts)
return
end
opts.ignore_filename = utils.get_default(opts.ignore_filename, false)
opts.hide_filename = utils.get_default(opts.hide_filename, false)