feat(nvim): replace rust-tools with rustaceanvim

This commit is contained in:
Maciej Jur 2024-01-09 19:41:47 +01:00
parent e11b1728c5
commit f93e7ce6ce
Signed by: kamov
GPG key ID: 191CBFF5F72ECAFD
3 changed files with 32 additions and 43 deletions

View file

@ -27,7 +27,7 @@
"nvim-web-devicons": { "branch": "master", "commit": "db0c864375c198cacc171ff373e76bfce2a85045" }, "nvim-web-devicons": { "branch": "master", "commit": "db0c864375c198cacc171ff373e76bfce2a85045" },
"plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" }, "plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" },
"presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" }, "presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
"rust-tools.nvim": { "branch": "master", "commit": "676187908a1ce35ffcd727c654ed68d851299d3e" }, "rustaceanvim": { "branch": "master", "commit": "c8856f9ab078976422a04e857da3b6eadce7cd3d" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" },
"telescope.nvim": { "branch": "0.1.x", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }, "telescope.nvim": { "branch": "0.1.x", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" } "which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }

View file

@ -247,18 +247,20 @@ return {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
}, },
config = function() config = function()
local config = require "mason-lspconfig" local config = require "mason-lspconfig"
local lsp = require "lspconfig" local lsp = require "lspconfig"
local cmp = require "cmp_nvim_lsp" local cmp = require "cmp_nvim_lsp"
local noop = function() end
config.setup { config.setup {
automatic_installation = true, automatic_installation = true,
-- NOTE -- NOTE
-- Haskell: Use GHCup installation instead of hls -- Haskell: Managed by GHCup
ensure_installed = { ensure_installed = {
"lua_ls", -- Lua "lua_ls", -- Lua
"bashls", -- Bash
"rust_analyzer", -- Rust "rust_analyzer", -- Rust
"bashls", -- Bash
"html", -- HTML "html", -- HTML
"cssls", -- CSS / SCSS "cssls", -- CSS / SCSS
"tsserver", -- TypeScript "tsserver", -- TypeScript
@ -273,12 +275,13 @@ return {
} }
config.setup_handlers { config.setup_handlers {
function(server) function(name)
lsp[server].setup { lsp[name].setup {
single_file_support = true, single_file_support = true,
capabilities = cmp.default_capabilities(), capabilities = cmp.default_capabilities(),
} }
end, end,
['rust_analyzer'] = noop,
} }
end, end,
}, },
@ -323,9 +326,13 @@ return {
}, },
-- Tools for Rust -- Tools for Rust
require "plugins.rust-tools" { {
"simrat39/rust-tools.nvim", "mrcjkb/rustaceanvim",
ft = "rust", version = "^3",
ft = { "rust" },
init = function()
require 'plugins.rust-tools'
end
}, },
-- Tools for Haskell -- Tools for Haskell

View file

@ -1,44 +1,26 @@
local nmap = require("utility").keymap('n') local util = require 'utility'
local M = {} local n = util.keymap 'n'
function M.config() vim.g.rustaceanvim = function()
local tools = require "rust-tools" local mason = require 'mason-registry'
local mason = require "mason-registry" local tools = require 'rustaceanvim'
local capabilities = require("cmp_nvim_lsp").default_capabilities() local config = require 'rustaceanvim.config'
local lsp_root = mason.get_package("codelldb"):get_install_path() .. "/extension/" local lsp_root = mason.get_package('codelldb'):get_install_path() .. '/extension/'
local lsp_path = lsp_root .. "adapter/codelldb" local lsp_path = lsp_root .. 'adapter/codelldb'
local lib_path = lsp_root .. "lldb/lib/liblldb.so" local lib_path = lsp_root .. 'lldb/lib/liblldb.so'
local opts = { ---@type RustaceanOpts
return {
server = { server = {
standalone = true,
capabilities = capabilities,
on_attach = function(_, bufnr) on_attach = function(_, bufnr)
nmap "<C-b>" (tools.hover_actions.hover_actions) {buffer=bufnr} n '<C-b>' (tools.hover_actions.hover_actions) {buffer=bufnr}
nmap "<Leader>a" (tools.code_action_group.code_action_group) {buffer=bufnr} n '<Leader>a' (tools.code_action_group.code_action_group) {buffer=bufnr}
end, end,
["rust-analyzer"] = {
cargo = { allFeatures = true },
checkOnSave = {
-- default = "cargo check",
command = "clippy",
allFeatures = true,
}
}
}, },
dap = { dap = {
adapter = require("rust-tools.dap").get_codelldb_adapter(lsp_path, lib_path), adapter = config.get_codelldb_adapter(lsp_path, lib_path),
}, },
} }
tools.setup(opts)
end
---@param config table
---@return table
return function(config)
return vim.tbl_extend("keep", config, M)
end end