diff --git a/symlinks/config/nvim/lua/init/plugins.lua b/symlinks/config/nvim/lua/init/plugins.lua index 1753b20..24bf293 100644 --- a/symlinks/config/nvim/lua/init/plugins.lua +++ b/symlinks/config/nvim/lua/init/plugins.lua @@ -69,8 +69,7 @@ return require('packer').startup { -- LSP -- use 'neovim/nvim-lspconfig' -- Easy LSP Config use 'alexaandru/nvim-lspupdate' -- Easy install and update for many LSP servers - use 'nvim-lua/completion-nvim' -- LSP completion integration - use 'nvim-treesitter/completion-treesitter' -- Treesitter completion integration + use 'hrsh7th/nvim-compe' -- LSP completion integration use 'nvim-lua/lsp_extensions.nvim' -- LSP extensions (like closing labels for Dart) -- LSP language specific diff --git a/symlinks/config/nvim/lua/lsp/completion.lua b/symlinks/config/nvim/lua/lsp/completion.lua index a9de9bd..81bc85d 100644 --- a/symlinks/config/nvim/lua/lsp/completion.lua +++ b/symlinks/config/nvim/lua/lsp/completion.lua @@ -1,13 +1,40 @@ ------------------------------------------------------------------------------- -- - LSP completion config - ------------------------------------------------------------------------------- --- Use and to navigate through popup menu -- Set completeopt to have a better completion experience -vim.o.completeopt = "menuone,noinsert,noselect" --- Avoid showing message extra message when using completion -vim.cmd('set shortmess+=c') -vim.cmd("autocmd BufEnter * lua require'completion'.on_attach()") -vim.g.completion_matching_strategy_list = {'exact', 'substring', 'fuzzy'} -vim.g.completion_confirm_key = '' -vim.g.completion_enable_snippet = 'UltiSnips' +vim.o.completeopt = "menuone,noselect" + +require'compe'.setup { + enabled = true; + autocomplete = true; + debug = false; + min_length = 1; + preselect = 'enable'; + throttle_time = 80; + source_timeout = 200; + incomplete_delay = 400; + max_abbr_width = 100; + max_kind_width = 100; + max_menu_width = 100; + documentation = true; + + source = { + path = true; + buffer = true; + calc = true; + nvim_lsp = true; + nvim_lua = true; + ultisnips = true; + }; +} + +local function set_keymap(...) vim.api.nvim_set_keymap(...) end + +local default_opts = {noremap = true, silent = true, expr = true} + +set_keymap('i', '', 'compe#complete()', default_opts) +set_keymap('i', '', "compe#confirm('')", default_opts) +set_keymap('i', '', "compe#close('')", default_opts) +set_keymap('i', '', "compe#scroll({ 'delta': +4 })", default_opts) +set_keymap('i', '', "compe#scroll({ 'delta': -4 })", default_opts) diff --git a/symlinks/config/nvim/lua/lsp/servers.lua b/symlinks/config/nvim/lua/lsp/servers.lua index cf0d291..e5187fe 100644 --- a/symlinks/config/nvim/lua/lsp/servers.lua +++ b/symlinks/config/nvim/lua/lsp/servers.lua @@ -5,8 +5,6 @@ local lspconfig = require("lspconfig") local on_attach = function(client, bufnr) - require'completion'.on_attach() - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end @@ -24,11 +22,6 @@ local on_attach = function(client, bufnr) buf_set_keymap('n', '', 'lua vim.lsp.buf.code_action()', default_opts) buf_set_keymap('n', 'ac', 'lua vim.lsp.buf.code_action()', default_opts) buf_set_keymap('n', 'a', 'lua vim.lsp.buf.code_action_range()', default_opts) - - local completion_opts = {silent = true} - - -- Completion keymaps - buf_set_keymap('i', '', '(completion_trigger)', completion_opts) end -- Lsp default language servers