mirror of
https://github.com/pratiktri/dotfiles.git
synced 2026-02-04 08:41:43 +05:30
feat(neovim): Show codelens virtual text for implementations
- Rust: `rust-analyzer` enable `lens` - Rust: Refresh lens on LspAttach and subsequently on rust buffers - Use `LspSaga` for all other lsp types to show codelens
This commit is contained in:
@@ -7,8 +7,26 @@ if pcall(require, "rustaceanvim") then
|
|||||||
vim.keymap.set("n", "<leader>rh", "<cmd>RustLsp openDocs<cr>", { desc = "Open docs.rs Documentation" })
|
vim.keymap.set("n", "<leader>rh", "<cmd>RustLsp openDocs<cr>", { desc = "Open docs.rs Documentation" })
|
||||||
vim.keymap.set("n", "<leader>rM", "<cmd>RustLsp view mir<cr>", { desc = "View Mid-Level IR", buffer = bufnr })
|
vim.keymap.set("n", "<leader>rM", "<cmd>RustLsp view mir<cr>", { desc = "View Mid-Level IR", buffer = bufnr })
|
||||||
vim.keymap.set("n", "<leader>rH", "<cmd>RustLsp view hir<cr>", { desc = "View High-Level IR", buffer = bufnr })
|
vim.keymap.set("n", "<leader>rH", "<cmd>RustLsp view hir<cr>", { desc = "View High-Level IR", buffer = bufnr })
|
||||||
|
vim.keymap.set("n", "<leader>rL", vim.lsp.codelens.refresh, { desc = "Run CodeLens" })
|
||||||
end
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
|
callback = function(event)
|
||||||
|
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||||
|
if not client or client.name ~= "rust-analyzer" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
pcall(vim.lsp.codelens.refresh)
|
||||||
|
|
||||||
|
-- Setup ongoing refresh triggers
|
||||||
|
vim.api.nvim_create_autocmd({ "InsertLeave", "BufWritePost", "BufEnter" }, {
|
||||||
|
buffer = event.buf,
|
||||||
|
callback = vim.lsp.codelens.refresh,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
local function run_tests_with_coverage()
|
local function run_tests_with_coverage()
|
||||||
-- Run tests through neotest
|
-- Run tests through neotest
|
||||||
require("neotest").run.run(vim.fn.expand("%"))
|
require("neotest").run.run(vim.fn.expand("%"))
|
||||||
|
|||||||
@@ -156,12 +156,16 @@ return {
|
|||||||
ui = {
|
ui = {
|
||||||
-- kind = require("config.util").icons.kind_lspsaga,
|
-- kind = require("config.util").icons.kind_lspsaga,
|
||||||
kind = require("catppuccin.groups.integrations.lsp_saga").custom_kind(),
|
kind = require("catppuccin.groups.integrations.lsp_saga").custom_kind(),
|
||||||
|
devicon = true,
|
||||||
|
title = true,
|
||||||
},
|
},
|
||||||
implement = { enabled = true },
|
implement = {
|
||||||
symbol_in_winbar = {
|
|
||||||
enable = true,
|
enable = true,
|
||||||
hide_keyword = true,
|
virtual_text = true,
|
||||||
|
sign = true,
|
||||||
|
priority = 100,
|
||||||
},
|
},
|
||||||
|
symbol_in_winbar = { enable = true, hide_keyword = true },
|
||||||
lightbulb = { virtual_text = false },
|
lightbulb = { virtual_text = false },
|
||||||
outline = { auto_preview = false },
|
outline = { auto_preview = false },
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -94,33 +94,38 @@ return {
|
|||||||
postfix = { enable = true },
|
postfix = { enable = true },
|
||||||
autoimport = { enable = true },
|
autoimport = { enable = true },
|
||||||
},
|
},
|
||||||
},
|
lens = {
|
||||||
inlayHints = {
|
|
||||||
bindingModeHints = { enable = false },
|
|
||||||
chainingHints = { enable = true },
|
|
||||||
closingBraceHints = { enable = true, minLines = 25 },
|
|
||||||
closureReturnTypeHints = { enable = "never" },
|
|
||||||
lifetimeElisionHints = { enable = "never", useParameterNames = false },
|
|
||||||
maxLength = 25,
|
|
||||||
parameterHints = { enable = true },
|
|
||||||
reborrowHints = { enable = "never" },
|
|
||||||
renderColons = true,
|
|
||||||
typeHints = {
|
|
||||||
enable = true,
|
enable = true,
|
||||||
hideClosureInitialization = false,
|
implementations = { enable = true },
|
||||||
hideNamedConstructor = false,
|
run = { enable = false },
|
||||||
},
|
},
|
||||||
},
|
inlayHints = {
|
||||||
procMacro = {
|
bindingModeHints = { enable = false },
|
||||||
enable = true,
|
chainingHints = { enable = true },
|
||||||
ignored = {
|
closingBraceHints = { enable = true, minLines = 25 },
|
||||||
["async-trait"] = { "async_trait" },
|
closureReturnTypeHints = { enable = "never" },
|
||||||
["napi-derive"] = { "napi" },
|
lifetimeElisionHints = { enable = "never", useParameterNames = false },
|
||||||
["async-recursion"] = { "async_recursion" },
|
maxLength = 25,
|
||||||
|
parameterHints = { enable = true },
|
||||||
|
reborrowHints = { enable = "never" },
|
||||||
|
renderColons = true,
|
||||||
|
typeHints = {
|
||||||
|
enable = true,
|
||||||
|
hideClosureInitialization = false,
|
||||||
|
hideNamedConstructor = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
procMacro = {
|
||||||
|
enable = true,
|
||||||
|
ignored = {
|
||||||
|
["async-trait"] = { "async_trait" },
|
||||||
|
["napi-derive"] = { "napi" },
|
||||||
|
["async-recursion"] = { "async_recursion" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
files = {
|
||||||
|
excludeDirs = { ".direnv", ".git", ".github", ".gitlab", "bin", "node_modules", "target", "venv", ".venv" },
|
||||||
},
|
},
|
||||||
},
|
|
||||||
files = {
|
|
||||||
excludeDirs = { ".direnv", ".git", ".github", ".gitlab", "bin", "node_modules", "target", "venv", ".venv" },
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user