From 493b91335d18e4a85700a98dc8a74101841174df Mon Sep 17 00:00:00 2001 From: Christian Nieves Date: Sat, 10 Dec 2022 19:41:28 -0600 Subject: [PATCH] rust LSP --- vim/.vim/lua/lsp.lua | 51 +++++++++++++++++++++++-------------- vim/.vim/lua/plugins.lua | 16 ++++++------ vim/.vim/lua/treesitter.lua | 10 +++++--- zsh/.bash_profile | 1 + 4 files changed, 48 insertions(+), 30 deletions(-) diff --git a/vim/.vim/lua/lsp.lua b/vim/.vim/lua/lsp.lua index 8f5af50..b7ce6b4 100644 --- a/vim/.vim/lua/lsp.lua +++ b/vim/.vim/lua/lsp.lua @@ -237,32 +237,29 @@ local on_attach = function(client, bufnr) vim.api.nvim_buf_set_option(bufnr, "tagfunc", "v:lua.vim.lsp.tagfunc") end - local opts = { noremap = true, silent = true } - vim.api.nvim_buf_set_keymap(bufnr, "n", "rn", "lua vim.lsp.buf.rename()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "ca", "lua vim.lsp.buf.code_action()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "L", "lua vim.lsp.buf.hover()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "g0", "lua vim.lsp.buf.document_symbol()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gW", "lua vim.lsp.buf.workspace_symbol()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "lua vim.lsp.buf.definition()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "tab split | lua vim.lsp.buf.definition()", opts) - -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "lua vim.lsp.buf.declaration()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gi", "lua vim.lsp.buf.implementation()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "grf", "lua vim.lsp.buf.references()", opts) -- diagnostics controls references - vim.api.nvim_buf_set_keymap(bufnr, "n", "", "lua vim.lsp.buf.signature_help()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "i", "", "lua vim.lsp.buf.signature_help()", opts) - - vim.api.nvim_buf_set_keymap(bufnr, "n", "gt", "lua vim.lsp.buf.type_definition()", opts) - - vim.api.nvim_command("augroup LSP") - vim.api.nvim_command("autocmd!") if client.server_capabilities.document_highlight then vim.api.nvim_command("autocmd CursorHold lua vim.lsp.buf.document_highlight()") vim.api.nvim_command("autocmd CursorHoldI lua vim.lsp.buf.document_highlight()") vim.api.nvim_command("autocmd CursorMoved lua vim.lsp.util.buf_clear_references()") end - vim.api.nvim_command("augroup END") end +local opts = { noremap = true, silent = true } +vim.api.nvim_set_keymap("n", "rn", "lua vim.lsp.buf.rename()", opts) +vim.api.nvim_set_keymap("n", "ca", "lua vim.lsp.buf.code_action()", opts) +vim.api.nvim_set_keymap("n", "L", "lua vim.lsp.buf.hover()", opts) +vim.api.nvim_set_keymap("n", "g0", "lua vim.lsp.buf.document_symbol()", opts) +vim.api.nvim_set_keymap("n", "gW", "lua vim.lsp.buf.workspace_symbol()", opts) +vim.api.nvim_set_keymap("n", "gd", "lua vim.lsp.buf.definition()", opts) +vim.api.nvim_set_keymap("n", "gD", "tab split | lua vim.lsp.buf.definition()", opts) +-- vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "lua vim.lsp.buf.declaration()", opts) +vim.api.nvim_set_keymap("n", "gi", "lua vim.lsp.buf.implementation()", opts) +vim.api.nvim_set_keymap("n", "grf", "lua vim.lsp.buf.references()", opts) -- diagnostics controls references +vim.api.nvim_set_keymap("n", "", "lua vim.lsp.buf.signature_help()", opts) +vim.api.nvim_set_keymap("i", "", "lua vim.lsp.buf.signature_help()", opts) + +vim.api.nvim_set_keymap("n", "gt", "lua vim.lsp.buf.type_definition()", opts) + local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities()) capabilities['codeLens'] = {dynamicRegistration=false} @@ -318,3 +315,19 @@ lspconfig.sumneko_lua.setup({ }, }, }) + +require("mason").setup() +require("mason-lspconfig").setup({ + ensure_installed = { "sumneko_lua", "rust_analyzer" } +}) + + +local lsp = require('lsp-zero') +lsp.preset('manual-setup') + +local rust_lsp = lsp.build_options('rust_analyzer', {}) + +lsp.setup() + +-- Initialize rust_analyzer with rust-tools +require('rust-tools').setup({server = rust_lsp}) diff --git a/vim/.vim/lua/plugins.lua b/vim/.vim/lua/plugins.lua index 3bd69cb..2c48e2e 100644 --- a/vim/.vim/lua/plugins.lua +++ b/vim/.vim/lua/plugins.lua @@ -39,13 +39,8 @@ require('packer').startup(function(use) use 'renerocksai/calendar-vim' use 'google/vim-searchindex' - - use { - 'filipdutescu/renamer.nvim', - branch = 'master', - requires = { {'nvim-lua/plenary.nvim'} } - } - + use 'ray-x/go.nvim' + use 'ray-x/guihua.lua' -- Pretty symbols use 'kyazdani42/nvim-web-devicons' @@ -60,7 +55,6 @@ require('packer').startup(function(use) 'hrsh7th/cmp-nvim-lsp', 'hrsh7th/cmp-buffer', 'lukas-reineke/cmp-under-comparator', - 'williamboman/nvim-lsp-installer', 'hrsh7th/cmp-cmdline', 'f3fora/cmp-spell', 'hrsh7th/cmp-nvim-lsp-document-symbol', @@ -73,6 +67,12 @@ require('packer').startup(function(use) -- config = [[require('lsp')]], -- event = 'InsertEnter', } + use { + "williamboman/mason.nvim", + "williamboman/mason-lspconfig.nvim", + 'VonHeikemen/lsp-zero.nvim', + } + use 'simrat39/rust-tools.nvim' use 'folke/trouble.nvim' use 'hrsh7th/vim-vsnip' diff --git a/vim/.vim/lua/treesitter.lua b/vim/.vim/lua/treesitter.lua index ce30b9d..37e86cb 100644 --- a/vim/.vim/lua/treesitter.lua +++ b/vim/.vim/lua/treesitter.lua @@ -6,9 +6,9 @@ ensure_installed = "all", -- Install parsers synchronously (only applied to `ensure_installed`) sync_install = false, -highlight = { - -- `false` will disable the whole extension - enable = true, + highlight = { + -- `false` will disable the whole extension + enable = true, indent = { enable = true }, @@ -21,4 +21,8 @@ highlight = { -- additional_vim_regex_highlighting = true, -- additional_vim_regex_highlighting = {"java"}, }, + rainbow = { + enable = true, + extended_mode = true, + } } diff --git a/zsh/.bash_profile b/zsh/.bash_profile index d408db4..9de89fa 100644 --- a/zsh/.bash_profile +++ b/zsh/.bash_profile @@ -3,6 +3,7 @@ export PATH=$PATH:$HOME/scripts export PATH=$PATH:. export GOPATH=$HOME/go +export PATH=$PATH:$GOPATH/bin export GO111MODULE=auto export CLOUDSDK_PYTHON=python2