mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
LSP: window/showMessageRequest (#13641)
Another 3.16 compatibility. Solves Vue crashing currently. Currently not handling the return result, but would allow opening web browser in this case.
This commit is contained in:
parent
e256777b5a
commit
fd507e2788
@ -77,6 +77,30 @@ M['window/workDoneProgress/create'] = function(_, _, params, client_id)
|
|||||||
return vim.NIL
|
return vim.NIL
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--@see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#window_showMessageRequest
|
||||||
|
M['window/showMessageRequest'] = function(_, _, params)
|
||||||
|
|
||||||
|
local actions = params.actions
|
||||||
|
print(params.message)
|
||||||
|
local option_strings = {params.message, "\nRequest Actions:"}
|
||||||
|
for i, action in ipairs(actions) do
|
||||||
|
local title = action.title:gsub('\r\n', '\\r\\n')
|
||||||
|
title = title:gsub('\n', '\\n')
|
||||||
|
table.insert(option_strings, string.format("%d. %s", i, title))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- window/showMessageRequest can return either MessageActionItem[] or null.
|
||||||
|
local choice = vim.fn.inputlist(option_strings)
|
||||||
|
if choice < 1 or choice > #actions then
|
||||||
|
return vim.NIL
|
||||||
|
else
|
||||||
|
local action_chosen = actions[choice]
|
||||||
|
return {
|
||||||
|
title = action_chosen;
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
--@see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_codeAction
|
--@see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_codeAction
|
||||||
M['textDocument/codeAction'] = function(_, _, actions)
|
M['textDocument/codeAction'] = function(_, _, actions)
|
||||||
if actions == nil or vim.tbl_isempty(actions) then
|
if actions == nil or vim.tbl_isempty(actions) then
|
||||||
|
Loading…
Reference in New Issue
Block a user