From 9d5f4047ca83a89ba310fdbcfed4510f77acde98 Mon Sep 17 00:00:00 2001 From: Markus Date: Thu, 13 Oct 2022 23:53:00 +0200 Subject: [PATCH 1/5] add new completion plugins --- nvim/lua/cmp_config.lua | 132 +++++++++++++++++++++++----------------- nvim/lua/plugins.lua | 4 ++ 2 files changed, 80 insertions(+), 56 deletions(-) diff --git a/nvim/lua/cmp_config.lua b/nvim/lua/cmp_config.lua index b0b038f..a4bcaed 100644 --- a/nvim/lua/cmp_config.lua +++ b/nvim/lua/cmp_config.lua @@ -2,64 +2,84 @@ local cmp = require("cmp") local luasnip = require("luasnip") local has_words_before = function() - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 and vim.api.nvim_buf_get_lines(0, line -1, line, true)[1]:sub(col,col):match("%s") == nil + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil end cmp.setup({ - snippet = { - expand = function(args) - require('luasnip').lsp_expand(args.body) -- For `luasnip` users. - end, - }, - mapping = { - [''] = cmp.mapping.select_prev_item(), - [''] = cmp.mapping.select_next_item(), - [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), - [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), - [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), - [''] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. - [''] = cmp.mapping({ - i = cmp.mapping.abort(), - c = cmp.mapping.close(), - }), - [''] = cmp.mapping.confirm({ select = true }), - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end,{"i","s"}), - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.jumpable(-1) then - luasnip.jump(-1) - else - fallback() - end - end,{"i","s"}) - }, - sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - { name = 'luasnip' }, -- For luasnip users. - }, { - { name = 'buffer' }, - }) - }) - -cmp.setup.cmdline('/',{ -sources = { - { name = 'buffer' } - } + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) -- For `luasnip` users. + end, + }, + mapping = { + [''] = cmp.mapping.select_prev_item(), + [''] = cmp.mapping.select_prev_item(), + [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), + [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), + [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), + [''] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. + [''] = cmp.mapping({ + i = cmp.mapping.abort(), + c = cmp.mapping.close(), + }), + [''] = cmp.mapping.confirm({ select = true }), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, { "i", "s" }), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }) + }, + sources = cmp.config.sources({ + { name = 'path' }, + { name = 'nvim_lsp', keyword_length = 3 }, + { name = 'nvim_lsp_signature_help' }, + { name = 'nvim_lua', keyword_length = 2 }, + { name = 'nvim_lua', keyword_length = 2 }, + { name = 'buffer' }, + { name = 'luasnip' }, -- For luasnip users. + }), + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + formatting = { + fields = { 'menu', 'abbr', 'kind' }, + format = function(entry, item) + local menu_icon = { + nvim_lsp = 'λ', + buffer = 'Ω' + } + item.menu = menu_icon[entry.source.name] + return item + end + } }) -cmp.setup.cmdline(':',{ -sources = cmp.config.sources({ -{name = 'path'} -},{{name='cmdline'}}) +cmp.setup.cmdline('/', { + sources = { + { name = 'buffer' } + } +}) + +cmp.setup.cmdline(':', { + sources = cmp.config.sources({ + { name = 'path' } + }, { { name = 'cmdline' } }) }) diff --git a/nvim/lua/plugins.lua b/nvim/lua/plugins.lua index 890fb8b..fafbef6 100644 --- a/nvim/lua/plugins.lua +++ b/nvim/lua/plugins.lua @@ -25,8 +25,12 @@ require("packer").startup(function(use) "kosayoda/nvim-lightbulb", }) use("hrsh7th/cmp-nvim-lsp") + use("hrsh7th/cmp-nvim-lsp-signature-help") + use("hrsh7th/cmp-nvim-lua") use("hrsh7th/cmp-buffer") use("hrsh7th/cmp-path") + use("hrsh7th/cmp-vsnip") + use("hrsh7th/vim-vsnip") use("hrsh7th/nvim-cmp") use("hrsh7th/cmp-cmdline") use("saadparwaiz1/cmp_luasnip") From 9555ab88a1ce0ee5e8ebf216b522a5c5e2e63253 Mon Sep 17 00:00:00 2001 From: Markus Date: Thu, 13 Oct 2022 23:53:23 +0200 Subject: [PATCH 2/5] add new toggleterm interactions --- nvim/lua/keymap.lua | 6 ++++++ nvim/lua/toggleterm_config.lua | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/nvim/lua/keymap.lua b/nvim/lua/keymap.lua index a3ac307..85ef1a7 100644 --- a/nvim/lua/keymap.lua +++ b/nvim/lua/keymap.lua @@ -18,6 +18,12 @@ end nmap("","") +nmap("",":ToggleTerm direction=float") +imap("",":ToggleTerm direction=float") + +nmap("",":ToggleTerm direction=horizontal size=10") +imap("",":ToggleTerm direction=horizontal size=10") + xmap("p",'\"_dP') nmap("fg", "lua require('telescope.builtin').live_grep()") nmap("fb", "lua require('telescope.builtin').buffers()") diff --git a/nvim/lua/toggleterm_config.lua b/nvim/lua/toggleterm_config.lua index c61ade2..56000a5 100644 --- a/nvim/lua/toggleterm_config.lua +++ b/nvim/lua/toggleterm_config.lua @@ -1,7 +1,7 @@ require"toggleterm".setup{ open_mapping = [[]], hide_numbers = true, - direction = 'float', + --direction = 'float', float_opts = { border = 'curved' }, @@ -9,3 +9,5 @@ require"toggleterm".setup{ enabled = false } } + + From 6e3fdd2efed29e0f251149b32ae1dc27f92b34b7 Mon Sep 17 00:00:00 2001 From: mightypanders Date: Thu, 13 Oct 2022 23:54:46 +0200 Subject: [PATCH 3/5] changes to rust lsp --- nvim/lua/new_lsp_conf.lua | 51 ++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/nvim/lua/new_lsp_conf.lua b/nvim/lua/new_lsp_conf.lua index d3161f6..dda0c02 100644 --- a/nvim/lua/new_lsp_conf.lua +++ b/nvim/lua/new_lsp_conf.lua @@ -36,17 +36,50 @@ local lsp_flags = { -- This is the default in Nvim 0.7+ debounce_text_changes = 150, } +local capabilities = require('cmp_nvim_lsp').update_capabilities( + vim.lsp.protocol.make_client_capabilities() +) require('mason-lspconfig').setup_handlers { function(server_name) require('lspconfig')[server_name].setup { on_attach = on_attach, flags = lsp_flags, + capabilities = capabilities } end, ['rust_analyzer'] = function() - require('rust-tools').setup { + local rustToolsOpts = { + tools = { + inlay_hints = { + auto = true, + only_current_line = false, + show_parameter_hints = true, + parameter_hints_prefix = "<-", + } + }, + server = { + on_attach = on_attach, + capabilities = capabilities, + flags = lsp_flags, + settings = { + ["rust_analyzer"] = { + checkOnSave = { + command = "clippy" + } + } + } + } + } + require('rust-tools').setup(rustToolsOpts) + --on_attach = on_attach, + --flags = lsp_flags, + require('lspconfig')['rust_analyzer'].setup { on_attach = on_attach, flags = lsp_flags, + -- server-specific settings... + settings = { + ["rust-analyzer"] = {} + } } end, ['sumneko_lua'] = function() @@ -63,11 +96,11 @@ require('mason-lspconfig').setup_handlers { } end, } -require('lspconfig')['rust_analyzer'].setup { - on_attach = on_attach, - flags = lsp_flags, - -- Server-specific settings... - settings = { - ["rust-analyzer"] = {} - } -} +--require('lspconfig')['rust_analyzer'].setup { +-- on_attach = on_attach, +-- flags = lsp_flags, +-- -- Server-specific settings... +-- settings = { +-- ["rust-analyzer"] = {} +-- } +--} From db798ec1e56f77fa0921ba3383feb2a2fed9d599 Mon Sep 17 00:00:00 2001 From: mightypanders Date: Wed, 19 Oct 2022 23:41:44 +0200 Subject: [PATCH 4/5] update lsp conf for nvim 0.9.0 --- nvim/lua/new_lsp_conf.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvim/lua/new_lsp_conf.lua b/nvim/lua/new_lsp_conf.lua index dda0c02..6df73a6 100644 --- a/nvim/lua/new_lsp_conf.lua +++ b/nvim/lua/new_lsp_conf.lua @@ -29,14 +29,14 @@ local on_attach = function(client, bufnr) vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) - vim.keymap.set('n', 'f', vim.lsp.buf.formatting, bufopts) + vim.keymap.set('n', 'f', vim.lsp.buf.format, bufopts) end local lsp_flags = { -- This is the default in Nvim 0.7+ debounce_text_changes = 150, } -local capabilities = require('cmp_nvim_lsp').update_capabilities( +local capabilities = require('cmp_nvim_lsp').default_capabilities( vim.lsp.protocol.make_client_capabilities() ) require('mason-lspconfig').setup_handlers { From 94a11fc4d4f075f73b2d501e06c3f1e10622e054 Mon Sep 17 00:00:00 2001 From: mightypanders Date: Wed, 19 Oct 2022 23:42:00 +0200 Subject: [PATCH 5/5] make suggestions quicker and easier --- nvim/lua/cmp_config.lua | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/nvim/lua/cmp_config.lua b/nvim/lua/cmp_config.lua index a4bcaed..7434d7c 100644 --- a/nvim/lua/cmp_config.lua +++ b/nvim/lua/cmp_config.lua @@ -48,10 +48,9 @@ cmp.setup({ }, sources = cmp.config.sources({ { name = 'path' }, - { name = 'nvim_lsp', keyword_length = 3 }, + { name = 'nvim_lsp' }, { name = 'nvim_lsp_signature_help' }, - { name = 'nvim_lua', keyword_length = 2 }, - { name = 'nvim_lua', keyword_length = 2 }, + { name = 'nvim_lua' }, { name = 'buffer' }, { name = 'luasnip' }, -- For luasnip users. }),