Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
87 lines
2.4 KiB
Lua
87 lines
2.4 KiB
Lua
local util = require("trouble.util")
|
|
|
|
local M = {}
|
|
|
|
M.results = {}
|
|
|
|
--- Turns a Telescope item into a Trouble item.
|
|
local function item_to_result(item)
|
|
local row = (item.lnum or 1) - 1
|
|
local col = (item.col or 1) - 1
|
|
|
|
if not item.bufnr then
|
|
local fname = vim.fn.fnamemodify(item.filename, ":p")
|
|
if vim.fn.filereadable(fname) == 0 and item.cwd then
|
|
fname = vim.fn.fnamemodify(item.cwd .. "/" .. item.filename, ":p")
|
|
end
|
|
item.bufnr = vim.fn.bufnr(fname, true)
|
|
end
|
|
|
|
local pitem = {
|
|
row = row,
|
|
col = col,
|
|
message = item.text,
|
|
severity = 0,
|
|
range = {
|
|
start = { line = row, character = col },
|
|
["end"] = { line = row, character = -1 },
|
|
},
|
|
}
|
|
|
|
return util.process_item(pitem, item.bufnr)
|
|
end
|
|
|
|
--- Shows all Telescope results in Trouble.
|
|
function M.open_with_trouble(prompt_bufnr, _mode)
|
|
local action_state = require("telescope.actions.state")
|
|
local actions = require("telescope.actions")
|
|
local picker = action_state.get_current_picker(prompt_bufnr)
|
|
local manager = picker.manager
|
|
|
|
M.results = {}
|
|
for item in manager:iter() do
|
|
table.insert(M.results, item_to_result(item))
|
|
end
|
|
|
|
actions.close(prompt_bufnr)
|
|
require("trouble").open("telescope")
|
|
end
|
|
|
|
--- Shows the selected Telescope results in Trouble.
|
|
function M.open_selected_with_trouble(prompt_bufnr, _mode)
|
|
local action_state = require("telescope.actions.state")
|
|
local actions = require("telescope.actions")
|
|
local picker = action_state.get_current_picker(prompt_bufnr)
|
|
|
|
M.results = {}
|
|
for _, item in ipairs(picker:get_multi_selection()) do
|
|
table.insert(M.results, item_to_result(item))
|
|
end
|
|
|
|
actions.close(prompt_bufnr)
|
|
require("trouble").open("telescope")
|
|
end
|
|
|
|
--- Shows the selected Telescope results in Trouble.
|
|
--- If no results are currently selected, shows all of them.
|
|
function M.smart_open_with_trouble(prompt_bufnr, _mode)
|
|
local action_state = require("telescope.actions.state")
|
|
local picker = action_state.get_current_picker(prompt_bufnr)
|
|
if #picker:get_multi_selection() > 0 then
|
|
M.open_selected_with_trouble(prompt_bufnr, _mode)
|
|
else
|
|
M.open_with_trouble(prompt_bufnr, _mode)
|
|
end
|
|
end
|
|
|
|
function M.telescope(_win, _buf, cb, _options)
|
|
if #M.results == 0 then
|
|
util.warn(
|
|
"No Telescope results found. Open Telescopen and send results to Trouble first. Refer to the documentation for more info."
|
|
)
|
|
end
|
|
cb(M.results)
|
|
end
|
|
|
|
return M
|