[Feature] better code action prompt and auto show codelens actions (#1698)

This commit is contained in:
Abouzar Parvan 2021-10-06 02:07:23 +03:30 committed by GitHub
parent 5fe7b7ad4d
commit 0ad60e90a9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 43 additions and 1 deletions

View file

@ -159,6 +159,26 @@ function M.view_lunarvim_changelog()
}):find()
end
function M.code_actions()
local opts = {
winblend = 15,
layout_config = {
prompt_position = "top",
width = 80,
height = 12,
},
borderchars = {
prompt = { "", "", " ", "", "", "", "", "" },
results = { "", "", "", "", "", "", "", "" },
preview = { "", "", "", "", "", "", "", "" },
},
border = {},
previewer = false,
shorten_path = false,
}
require("telescope.builtin").lsp_code_actions(require("telescope.themes").get_dropdown(opts))
end
function M.setup()
local telescope = require "telescope"

View file

@ -139,7 +139,7 @@ M.config = function()
l = {
name = "LSP",
a = { "<cmd>lua vim.lsp.buf.code_action()<cr>", "Code Action" },
a = { "<cmd>lua require('core.telescope').code_actions()<cr>", "Code Action" },
d = {
"<cmd>Telescope lsp_document_diagnostics<cr>",
"Document Diagnostics",
@ -159,6 +159,7 @@ M.config = function()
"<cmd>lua vim.lsp.diagnostic.goto_prev({popup_opts = {border = lvim.lsp.popup_border}})<cr>",
"Prev Diagnostic",
},
l = { "<cmd>lua vim.lsp.codelens.run()<cr>", "CodeLens Action" },
p = {
name = "Peek",
d = { "<cmd>lua require('lsp.peek').Peek('definition')<cr>", "Definition" },

View file

@ -17,6 +17,7 @@ return {
},
override = {},
document_highlight = true,
code_lens_refresh = true,
popup_border = "single",
on_attach_callback = nil,
on_init_callback = nil,

View file

@ -21,6 +21,25 @@ local function lsp_highlight_document(client)
end
end
local function lsp_code_lens_refresh(client)
if lvim.lsp.code_lens_refresh == false then
return
end
if client.resolved_capabilities.code_lens then
vim.api.nvim_exec(
[[
augroup lsp_code_lens_refresh
autocmd! * <buffer>
autocmd InsertLeave <buffer> lua vim.lsp.codelens.refresh()
autocmd InsertLeave <buffer> lua vim.lsp.codelens.display()
augroup END
]],
false
)
end
end
local function add_lsp_buffer_keybindings(bufnr)
local mappings = {
normal_mode = "n",
@ -99,6 +118,7 @@ function M.common_on_attach(client, bufnr)
Log:debug "Called lsp.on_attach_callback"
end
lsp_highlight_document(client)
lsp_code_lens_refresh(client)
add_lsp_buffer_keybindings(bufnr)
end