nvim: plugins: Drop rust-tools & use lsp-inlayhints

We do not use any of the other features provided by rust-tools and
only ever needed the inlay hints. Now that there is a plugin for
that which also allows us to use inlay hints for other languages
use that.

There are two options
https://github.com/lvimuser/lsp-inlayhints.nvim
https://github.com/simrat39/inlay-hints.nvim

The second one is from the rust-tools author himself but we could
not get that to work.
This commit is contained in:
Sanchayan Maity 2022-08-06 11:06:25 +05:30
parent eecc7b4021
commit 490fe4e853
3 changed files with 49 additions and 48 deletions

View file

@ -1,18 +1,6 @@
compiler cargo compiler cargo
setlocal makeprg=cargo\ build\ --all setlocal makeprg=cargo\ build\ --all
nnoremap <buffer> <Leader>rD :RustDisableInlayHints<CR>
nnoremap <buffer> <Leader>rt :RustToggleInlayHints<CR>
nnoremap <buffer> <Leader>rr :RustRunnables<CR>
nnoremap <buffer> <Leader>rm :RustExpandMacro<CR>
nnoremap <buffer> <Leader>rc :RustOpenCargo<CR>
nnoremap <buffer> <Leader>rp :RustParentModule<CR>
nnoremap <buffer> <Leader>rj :RustJoinLines<CR>
nnoremap <buffer> <Leader>rh :RustHoverActions<CR>
nnoremap <buffer> <Leader>rd :RustMoveItemDown<CR>
nnoremap <buffer> <Leader>ru :RustMoveItemUp<CR>
nnoremap <buffer> <Leader>rs :RustStartStandaloneServerForBuffer<CR>
nnoremap <buffer> cbb :Dispatch! cargo build<CR> nnoremap <buffer> cbb :Dispatch! cargo build<CR>
nnoremap <buffer> cbc :Dispatch! cargo clean<CR> nnoremap <buffer> cbc :Dispatch! cargo clean<CR>
nnoremap <buffer> cbd :Dispatch! cargo doc<CR> nnoremap <buffer> cbd :Dispatch! cargo doc<CR>

View file

@ -2,6 +2,14 @@ local nvim_lsp = require 'lspconfig'
local protocol = require 'vim.lsp.protocol' local protocol = require 'vim.lsp.protocol'
local util = require 'lspconfig/util' local util = require 'lspconfig/util'
local lightbulb = require 'nvim-lightbulb' local lightbulb = require 'nvim-lightbulb'
local inlay_hint = require 'lsp-inlayhints'
-- Set up inlay hints
inlay_hint.setup({
inlay_hints = {
highlight = "Hint"
}
})
-- https://github.com/neovim/nvim-lspconfig/wiki/User-contributed-tips -- https://github.com/neovim/nvim-lspconfig/wiki/User-contributed-tips
function FormatRangeOperator() function FormatRangeOperator()
@ -147,6 +155,8 @@ local on_attach = function(client, bufnr)
}) })
end end
end end
inlay_hint.on_attach(bufnr, client)
end end
local on_init = function(client) local on_init = function(client)
@ -162,40 +172,6 @@ capabilities.textDocument.completion.completionItem.resolveSupport = {
properties = { 'documentation', 'detail', 'additionalTextEdits', } properties = { 'documentation', 'detail', 'additionalTextEdits', }
} }
local rust_tool_opts = {
tools = {
autoSetHints = true,
hover_with_actions = false,
runnables = { use_telescope = false },
debuggables = { use_telescope = false },
inlay_hints = {
only_current_line = false,
only_current_line_autocmd = "CursorHold",
show_parameter_hints = true,
parameter_hints_prefix = "<- ",
other_hints_prefix = "=> ",
highlight = "Hint",
},
hover_actions = {
auto_focus = true
},
},
server = {
on_init = on_init,
on_attach = on_attach,
capabilities = capabilities,
settings = {
["rust-analyzer"] = {
checkOnSave = {
command = "clippy"
},
}
}
},
}
require('rust-tools').setup(rust_tool_opts)
local servers = { local servers = {
clangd = { clangd = {
default_config = { default_config = {
@ -227,7 +203,44 @@ local servers = {
}, },
}, },
}, },
tsserver = {}, rust_analyzer = {
settings = {
["rust-analyzer"] = {
procMacro = {
enable = true
},
checkOnSave = {
command = "clippy"
},
}
}
},
tsserver = {
settings = {
typescript = {
inlayHints = {
includeInlayParameterNameHints = 'all',
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
includeInlayFunctionParameterTypeHints = true,
includeInlayVariableTypeHints = true,
includeInlayPropertyDeclarationTypeHints = true,
includeInlayFunctionLikeReturnTypeHints = true,
includeInlayEnumMemberValueHints = true,
}
},
javascript = {
inlayHints = {
includeInlayParameterNameHints = 'all',
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
includeInlayFunctionParameterTypeHints = true,
includeInlayVariableTypeHints = true,
includeInlayPropertyDeclarationTypeHints = true,
includeInlayFunctionLikeReturnTypeHints = true,
includeInlayEnumMemberValueHints = true,
}
}
}
},
} }
for client, config in pairs(servers) do for client, config in pairs(servers) do

View file

@ -69,7 +69,7 @@ local init = function ()
} }
-- Language support & syntax highlighting -- Language support & syntax highlighting
use 'mfussenegger/nvim-lint' use 'mfussenegger/nvim-lint'
use 'simrat39/rust-tools.nvim' use 'lvimuser/lsp-inlayhints.nvim'
-- treesitter based syntax highlighting -- treesitter based syntax highlighting
use { use {
'nvim-treesitter/nvim-treesitter', 'nvim-treesitter/nvim-treesitter',