From 0d29ba524aa2a7d1850346b36cf66fb427b51d1d Mon Sep 17 00:00:00 2001 From: Ben Kyd Date: Tue, 7 Mar 2023 11:48:56 +0000 Subject: [PATCH] updated rust support --- common/.config/nvim/init.lua | 1 - common/.config/nvim/lua/keymappings.lua | 11 --- common/.config/nvim/lua/lsp-general.lua | 35 ++++++- .../nvim/lua/plugin-config/ministarter.lua | 33 ++++--- .../nvim/lua/plugin-config/nvim-cmp.lua | 54 +++++----- common/.config/nvim/lua/plugins.lua | 4 + .../.config/nvim/plugin/packer_compiled.lua | 98 ++++++++++--------- 7 files changed, 134 insertions(+), 102 deletions(-) diff --git a/common/.config/nvim/init.lua b/common/.config/nvim/init.lua index 87defa0..6097637 100644 --- a/common/.config/nvim/init.lua +++ b/common/.config/nvim/init.lua @@ -2,6 +2,5 @@ require('basics') require('globals') require('keymappings') require('plugins') -require('lsp-general') require('post-plugin-basics') diff --git a/common/.config/nvim/lua/keymappings.lua b/common/.config/nvim/lua/keymappings.lua index 8464fbf..f19cd37 100644 --- a/common/.config/nvim/lua/keymappings.lua +++ b/common/.config/nvim/lua/keymappings.lua @@ -39,14 +39,3 @@ vim.api.nvim_set_keymap('', '', '', opts) vim.api.nvim_set_keymap('', '', '', opts) vim.api.nvim_set_keymap('', '', '', opts) --- LSP -vim.api.nvim_set_keymap('n', 'gD', 'lua vim.lsp.buf.definition()', opts) -vim.api.nvim_set_keymap('n', 'gT', 'lua vim.lsp.buf.type_definition()', opts) -vim.api.nvim_set_keymap('n', 'gI', 'lua vim.lsp.buf.implementation()', opts) -vim.api.nvim_set_keymap('n', 'gR', 'lua vim.lsp.buf.references()', opts) --- Glance LSP -vim.api.nvim_set_keymap('n', 'gd', 'Glance definitions', opts) -vim.api.nvim_set_keymap('n', 'gt', 'Glance type_definitions', opts) -vim.api.nvim_set_keymap('n', 'gi', 'Glance implementations', opts) -vim.api.nvim_set_keymap('n', 'gr', 'Glance references', opts) - diff --git a/common/.config/nvim/lua/lsp-general.lua b/common/.config/nvim/lua/lsp-general.lua index b54c003..4956c40 100644 --- a/common/.config/nvim/lua/lsp-general.lua +++ b/common/.config/nvim/lua/lsp-general.lua @@ -5,12 +5,39 @@ require('mason-lspconfig').setup({ ensure_installed = {'clangd'} }) +local opts = { noremap = true, silent = true, buffer = bufnr } +vim.keymap.set('n', 'gD', 'lua vim.lsp.buf.definition()', opts) +vim.keymap.set('n', 'gT', 'lua vim.lsp.buf.type_definition()', opts) +vim.keymap.set('n', 'gI', 'lua vim.lsp.buf.implementation()', opts) +vim.keymap.set('n', 'gR', 'lua vim.lsp.buf.references()', opts) +-- Glance LSP +vim.keymap.set('n', 'gd', 'Glance definitions', opts) +vim.keymap.set('n', 'gt', 'Glance type_definitions', opts) +vim.keymap.set('n', 'gi', 'Glance implementations', opts) +vim.keymap.set('n', 'gr', 'Glance references', opts) + +local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities()) + +local on_attatch = function(_, bufnr) + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') +end + require('mason-lspconfig').setup_handlers({ - function(server) - lspconfig[server].setup({}) - end, + function(server) + lspconfig[server].setup({ + on_attatch = on_attatch, + capabilities = capabilities, + }) + end, }) +require('rust-tools').setup { + server = { + on_attatch = on_attach, + capabilities = capabilities, + } +} + -- diagnostic symbols local signs = { Error = "", Warn = "", Hint = "", Info = ""} for type, icon in pairs(signs) do @@ -46,3 +73,5 @@ vim.lsp.protocol.CompletionItemKind = { "  (Operator)", "  (TypeParameter)" } + +vim.api.nvim_create_autocmd("BufWritePre", { command = "lua vim.lsp.buf.format()" }); diff --git a/common/.config/nvim/lua/plugin-config/ministarter.lua b/common/.config/nvim/lua/plugin-config/ministarter.lua index 0a8337f..f192964 100644 --- a/common/.config/nvim/lua/plugin-config/ministarter.lua +++ b/common/.config/nvim/lua/plugin-config/ministarter.lua @@ -1,30 +1,31 @@ local status, starter = pcall(require, "mini.starter") if not status then - return + return end starter.setup({ - content_hooks = { - starter.gen_hook.adding_bullet(""), - starter.gen_hook.aligning("center", "center"), - }, - evaluate_single = true, - footer = os.date(), - header = table.concat({ + content_hooks = { + starter.gen_hook.adding_bullet(""), + starter.gen_hook.aligning("center", "center"), + }, + evaluate_single = true, + footer = os.date(), + header = table.concat({ [[██████╗ ███████╗███╗ ██╗██╗ ██╗██╗███╗ ███╗]], [[██╔══██╗██╔════╝████╗ ██║██║ ██║██║████╗ ████║]], [[██████╔╝█████╗ ██╔██╗ ██║██║ ██║██║██╔████╔██║]], [[██╔══██╗██╔══╝ ██║╚██╗██║╚██╗ ██╔╝██║██║╚██╔╝██║]], [[██████╔╝███████╗██║ ╚████║ ╚████╔╝ ██║██║ ╚═╝ ██║]], [[╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═══╝ ╚═╝╚═╝ ╚═╝]], - [[─────────────────────────────────────────────────]], - }, "\n"), - query_updaters = [[abcdefghilmoqrstuvwxyz0123456789_-,.ABCDEFGHIJKLMOQRSTUVWXYZ]], - items = { - { action = "PackerSync", name = "U: Update Plugins", section = "Plugins" }, - { action = "enew", name = "E: New Buffer", section = "Builtin actions" }, - { action = "qall!", name = "Q: Quit Neovim", section = "Builtin actions" }, - }, + [[─────────────────────────────────────────────────]], + }, "\n"), + query_updaters = [[abcdefghilmoqrstuvwxyz0123456789_-,.ABCDEFGHIJKLMOQRSTUVWXYZ]], + items = { + { action = "PackerSync", name = "U: Update Plugins", section = "Plugins" }, + { action = "PackerCompile", name = "R: Recompile Packer", section = "Plugins" }, + { action = "enew", name = "E: New Buffer", section = "Builtin actions" }, + { action = "qall!", name = "Q: Quit Neovim", section = "Builtin actions" }, + }, }) vim.cmd([[ diff --git a/common/.config/nvim/lua/plugin-config/nvim-cmp.lua b/common/.config/nvim/lua/plugin-config/nvim-cmp.lua index cb71674..f8c2e65 100644 --- a/common/.config/nvim/lua/plugin-config/nvim-cmp.lua +++ b/common/.config/nvim/lua/plugin-config/nvim-cmp.lua @@ -1,36 +1,37 @@ -local cmp = require'cmp' +local cmp = require 'cmp' cmp.setup({ - snippet = { - expand = function(args) - vim.fn["vsnip#anonymous"](args.body) - end, - }, - mapping = { - [""] = cmp.mapping.select_prev_item(), - [""] = cmp.mapping.select_next_item(), - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.complete(), - [""] = cmp.mapping.close(), - [""] = cmp.mapping.confirm({ - behavior = cmp.ConfirmBehavior.Replace, - select = true, - }), - [""] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "s" }), - [""] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "s" }), - }, - sources = { - { name = "nvim_lsp" }, - { name = "vsnip" }, - { name = "path" }, - }, + snippet = { + expand = function(args) + vim.fn["vsnip#anonymous"](args.body) + end, + }, + mapping = { + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.close(), + [""] = cmp.mapping.confirm({ + behavior = cmp.ConfirmBehavior.Replace, + select = true, + }), + [""] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "s" }), + [""] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "s" }), + }, + sources = { + { name = "nvim_lsp" }, + { name = "vsnip" }, + { name = "path" }, + { name = "buffer" }, + }, }) -- Set configuration for specific filetype. cmp.setup.filetype('gitcommit', { sources = cmp.config.sources({ - { name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it. + { name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it. }, { { name = 'buffer' }, }) @@ -51,4 +52,3 @@ cmp.setup.cmdline(':', { { name = 'cmdline' } }) }) - diff --git a/common/.config/nvim/lua/plugins.lua b/common/.config/nvim/lua/plugins.lua index c881abc..769056a 100644 --- a/common/.config/nvim/lua/plugins.lua +++ b/common/.config/nvim/lua/plugins.lua @@ -179,7 +179,11 @@ local packer = require('packer').startup(function(use) requires = { "williamboman/mason-lspconfig.nvim", "neovim/nvim-lspconfig", + 'simrat39/rust-tools.nvim', }, + config = function () + require('lsp-general') + end } -- for LSP autocompletion diff --git a/common/.config/nvim/plugin/packer_compiled.lua b/common/.config/nvim/plugin/packer_compiled.lua index ae80cb8..0e58d85 100644 --- a/common/.config/nvim/plugin/packer_compiled.lua +++ b/common/.config/nvim/plugin/packer_compiled.lua @@ -147,6 +147,7 @@ _G.packer_plugins = { url = "https://github.com/williamboman/mason-lspconfig.nvim" }, ["mason.nvim"] = { + config = { "\27LJ\2\n+\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\16lsp-general\frequire\0" }, loaded = true, path = "/home/ben/.local/share/nvim/site/pack/packer/start/mason.nvim", url = "https://github.com/williamboman/mason.nvim" @@ -238,6 +239,11 @@ _G.packer_plugins = { path = "/home/ben/.local/share/nvim/site/pack/packer/start/plenary.nvim", url = "https://github.com/nvim-lua/plenary.nvim" }, + ["rust-tools.nvim"] = { + loaded = true, + path = "/home/ben/.local/share/nvim/site/pack/packer/start/rust-tools.nvim", + url = "https://github.com/simrat39/rust-tools.nvim" + }, ["smart-splits.nvim"] = { config = { "\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31plugin-config/smart-splits\frequire\0" }, loaded = true, @@ -274,6 +280,34 @@ _G.packer_plugins = { } time([[Defining packer_plugins]], false) +-- Config for: nvim-cmp +time([[Config for nvim-cmp]], true) +try_loadstring("\27LJ\2\n6\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\27plugin-config/nvim-cmp\frequire\0", "config", "nvim-cmp") +time([[Config for nvim-cmp]], false) +-- Config for: gitsigns.nvim +time([[Config for gitsigns.nvim]], true) +try_loadstring("\27LJ\2\n6\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\27plugin-config/gitsigns\frequire\0", "config", "gitsigns.nvim") +time([[Config for gitsigns.nvim]], false) +-- Config for: nvim-hardline +time([[Config for nvim-hardline]], true) +try_loadstring("\27LJ\2\n:\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\rhardline\frequire\0", "config", "nvim-hardline") +time([[Config for nvim-hardline]], false) +-- Config for: mason.nvim +time([[Config for mason.nvim]], true) +try_loadstring("\27LJ\2\n+\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\16lsp-general\frequire\0", "config", "mason.nvim") +time([[Config for mason.nvim]], false) +-- Config for: glance.nvim +time([[Config for glance.nvim]], true) +try_loadstring("\27LJ\2\n8\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\vglance\frequire\0", "config", "glance.nvim") +time([[Config for glance.nvim]], false) +-- Config for: indent-blankline.nvim +time([[Config for indent-blankline.nvim]], true) +try_loadstring("\27LJ\2\n\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\21filetype_exclude\1\a\0\0\thelp\nalpha\14dashboard\rneo-tree\fTrouble\tlazy\1\0\1\tchar\b│\nsetup\21indent_blankline\frequire\0", "config", "indent-blankline.nvim") +time([[Config for indent-blankline.nvim]], false) +-- Config for: mini.indentscope +time([[Config for mini.indentscope]], true) +try_loadstring("\27LJ\2\nr\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\foptions\1\0\1\18try_as_border\2\1\0\1\vsymbol\b│\nsetup\21mini.indentscope\frequire\0", "config", "mini.indentscope") +time([[Config for mini.indentscope]], false) -- Config for: mini.starter time([[Config for mini.starter]], true) try_loadstring("\27LJ\2\n9\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\30plugin-config/ministarter\frequire\0", "config", "mini.starter") @@ -282,10 +316,6 @@ time([[Config for mini.starter]], false) time([[Config for nvim-treesitter]], true) try_loadstring("\27LJ\2\n=\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\"plugin-config/nvim-treesitter\frequire\0", "config", "nvim-treesitter") time([[Config for nvim-treesitter]], false) --- Config for: glance.nvim -time([[Config for glance.nvim]], true) -try_loadstring("\27LJ\2\n8\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\vglance\frequire\0", "config", "glance.nvim") -time([[Config for glance.nvim]], false) -- Config for: noice.nvim time([[Config for noice.nvim]], true) try_loadstring("\27LJ\2\n3\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\24plugin-config/noice\frequire\0", "config", "noice.nvim") @@ -294,42 +324,6 @@ time([[Config for noice.nvim]], false) time([[Config for dressing.nvim]], true) try_loadstring("\27LJ\2\n6\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\27plugin-config/dressing\frequire\0", "config", "dressing.nvim") time([[Config for dressing.nvim]], false) --- Config for: gitsigns.nvim -time([[Config for gitsigns.nvim]], true) -try_loadstring("\27LJ\2\n6\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\27plugin-config/gitsigns\frequire\0", "config", "gitsigns.nvim") -time([[Config for gitsigns.nvim]], false) --- Config for: leap.nvim -time([[Config for leap.nvim]], true) -try_loadstring("\27LJ\2\nA\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\25add_default_mappings\tleap\frequire\0", "config", "leap.nvim") -time([[Config for leap.nvim]], false) --- Config for: smart-splits.nvim -time([[Config for smart-splits.nvim]], true) -try_loadstring("\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31plugin-config/smart-splits\frequire\0", "config", "smart-splits.nvim") -time([[Config for smart-splits.nvim]], false) --- Config for: lsp_signature.nvim -time([[Config for lsp_signature.nvim]], true) -try_loadstring("\27LJ\2\nS\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\16hint_prefix\t🚀\nsetup\18lsp_signature\frequire\0", "config", "lsp_signature.nvim") -time([[Config for lsp_signature.nvim]], false) --- Config for: telescope.nvim -time([[Config for telescope.nvim]], true) -try_loadstring("\27LJ\2\nc\0\0\3\0\4\0\n6\0\0\0'\2\1\0B\0\2\0016\0\0\0'\2\2\0B\0\2\0029\0\3\0004\2\0\0B\0\2\1K\0\1\0\nsetup\18todo-comments\28plugin-config/telescope\frequire\0", "config", "telescope.nvim") -time([[Config for telescope.nvim]], false) --- Config for: nvim-hardline -time([[Config for nvim-hardline]], true) -try_loadstring("\27LJ\2\n:\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\rhardline\frequire\0", "config", "nvim-hardline") -time([[Config for nvim-hardline]], false) --- Config for: nvim-autopairs -time([[Config for nvim-autopairs]], true) -try_loadstring("\27LJ\2\n@\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") -time([[Config for nvim-autopairs]], false) --- Config for: mini.indentscope -time([[Config for mini.indentscope]], true) -try_loadstring("\27LJ\2\nr\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\foptions\1\0\1\18try_as_border\2\1\0\1\vsymbol\b│\nsetup\21mini.indentscope\frequire\0", "config", "mini.indentscope") -time([[Config for mini.indentscope]], false) --- Config for: indent-blankline.nvim -time([[Config for indent-blankline.nvim]], true) -try_loadstring("\27LJ\2\n\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\21filetype_exclude\1\a\0\0\thelp\nalpha\14dashboard\rneo-tree\fTrouble\tlazy\1\0\1\tchar\b│\nsetup\21indent_blankline\frequire\0", "config", "indent-blankline.nvim") -time([[Config for indent-blankline.nvim]], false) -- Config for: trouble.nvim time([[Config for trouble.nvim]], true) try_loadstring("\27LJ\2\n9\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\30plugin-config/lsp-trouble\frequire\0", "config", "trouble.nvim") @@ -338,10 +332,26 @@ time([[Config for trouble.nvim]], false) time([[Config for codewindow.nvim]], true) try_loadstring("\27LJ\2\nW\0\0\3\0\4\0\b6\0\0\0'\2\1\0B\0\2\0029\1\2\0B\1\1\0019\1\3\0B\1\1\1K\0\1\0\27apply_default_keybinds\nsetup\15codewindow\frequire\0", "config", "codewindow.nvim") time([[Config for codewindow.nvim]], false) --- Config for: nvim-cmp -time([[Config for nvim-cmp]], true) -try_loadstring("\27LJ\2\n6\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\27plugin-config/nvim-cmp\frequire\0", "config", "nvim-cmp") -time([[Config for nvim-cmp]], false) +-- Config for: smart-splits.nvim +time([[Config for smart-splits.nvim]], true) +try_loadstring("\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31plugin-config/smart-splits\frequire\0", "config", "smart-splits.nvim") +time([[Config for smart-splits.nvim]], false) +-- Config for: telescope.nvim +time([[Config for telescope.nvim]], true) +try_loadstring("\27LJ\2\nc\0\0\3\0\4\0\n6\0\0\0'\2\1\0B\0\2\0016\0\0\0'\2\2\0B\0\2\0029\0\3\0004\2\0\0B\0\2\1K\0\1\0\nsetup\18todo-comments\28plugin-config/telescope\frequire\0", "config", "telescope.nvim") +time([[Config for telescope.nvim]], false) +-- Config for: nvim-autopairs +time([[Config for nvim-autopairs]], true) +try_loadstring("\27LJ\2\n@\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") +time([[Config for nvim-autopairs]], false) +-- Config for: lsp_signature.nvim +time([[Config for lsp_signature.nvim]], true) +try_loadstring("\27LJ\2\nS\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\1\16hint_prefix\t🚀\nsetup\18lsp_signature\frequire\0", "config", "lsp_signature.nvim") +time([[Config for lsp_signature.nvim]], false) +-- Config for: leap.nvim +time([[Config for leap.nvim]], true) +try_loadstring("\27LJ\2\nA\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\25add_default_mappings\tleap\frequire\0", "config", "leap.nvim") +time([[Config for leap.nvim]], false) _G._packer.inside_compile = false if _G._packer.needs_bufread == true then