From c7cbe6a21fb71a274bca02991bd1b6a643d19682 Mon Sep 17 00:00:00 2001 From: z3rOR0ne Date: Sat, 10 Dec 2022 19:05:37 -0800 Subject: [PATCH] :sparkles: Created toggle function for viewing autocompletion --- .config/nvim/lua/config.lua | 42 ++++++++++++++++++++++++++------ .config/nvim/lua/keybindings.lua | 3 +++ nvim/lua/config.lua | 42 ++++++++++++++++++++++++++------ nvim/lua/keybindings.lua | 3 +++ 4 files changed, 74 insertions(+), 16 deletions(-) diff --git a/.config/nvim/lua/config.lua b/.config/nvim/lua/config.lua index 0eac6c22..3555819e 100644 --- a/.config/nvim/lua/config.lua +++ b/.config/nvim/lua/config.lua @@ -31,6 +31,7 @@ lsp_installer.on_server_ready(function(server) end) -- Setup nvim-cmp. local cmp = require'cmp' +vim.cmd[[set completeopt=menu,menuone,noselect]] cmp.setup({ snippet = { @@ -58,12 +59,19 @@ local cmp = require'cmp' }) -- 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 = 'buffer' }, - }) + -- cmp.setup.filetype('gitcommit', { + -- sources = cmp.config.sources({ + -- { name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it. + -- }, { + -- { name = 'buffer' }, + -- }) + -- }) + +-- auto completion doesn't apply to txt files + cmp.setup.filetype({ 'text' }, { + completion = { + autocomplete = false + } }) -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). @@ -84,6 +92,26 @@ local cmp = require'cmp' }) }) +-- function that is used with keybinding cm to toggle autocompletion +Mode = require('cmp.types').cmp.TriggerEvent.TextChanged +function SetAutoCmp(mode) + if mode then + cmp.setup({ + completion = { + autocomplete = { Mode } + } + }) + Mode = false + else + cmp.setup({ + completion = { + autocomplete = Mode + } + }) + Mode = require('cmp.types').cmp.TriggerEvent.TextChanged + end +end + local capabilities = require('cmp_nvim_lsp').default_capabilities() -- Replace with each lsp server you've enabled. @@ -339,8 +367,6 @@ vim.opt.splitright = true -- vim.cmd[[g:gitblame_enabled = 0]] vim.g.gitblame_enabled = 0 --- set up completion -vim.cmd[[set completeopt=menu,menuone,noselect]] -- Vertically center document when entering Insert mode vim.cmd[[autocmd InsertEnter * norm zz]] diff --git a/.config/nvim/lua/keybindings.lua b/.config/nvim/lua/keybindings.lua index d7abcda7..ab71abd9 100644 --- a/.config/nvim/lua/keybindings.lua +++ b/.config/nvim/lua/keybindings.lua @@ -20,6 +20,9 @@ keymap('n', '', ':FZFExplore', {}) -- vim.cmd[[nnoremap gb :silent :GitBlameToggle]] keymap('n', '', ':GitBlameToggle', {}) +--toggle autocompletion +vim.cmd[[nnoremap cm :silent lua SetAutoCmp(Mode)]] + -- pageup/pagedown autotmatically recenters vim.cmd[[:map zz]] vim.cmd[[:map zz]] diff --git a/nvim/lua/config.lua b/nvim/lua/config.lua index 0eac6c22..3555819e 100644 --- a/nvim/lua/config.lua +++ b/nvim/lua/config.lua @@ -31,6 +31,7 @@ lsp_installer.on_server_ready(function(server) end) -- Setup nvim-cmp. local cmp = require'cmp' +vim.cmd[[set completeopt=menu,menuone,noselect]] cmp.setup({ snippet = { @@ -58,12 +59,19 @@ local cmp = require'cmp' }) -- 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 = 'buffer' }, - }) + -- cmp.setup.filetype('gitcommit', { + -- sources = cmp.config.sources({ + -- { name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it. + -- }, { + -- { name = 'buffer' }, + -- }) + -- }) + +-- auto completion doesn't apply to txt files + cmp.setup.filetype({ 'text' }, { + completion = { + autocomplete = false + } }) -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). @@ -84,6 +92,26 @@ local cmp = require'cmp' }) }) +-- function that is used with keybinding cm to toggle autocompletion +Mode = require('cmp.types').cmp.TriggerEvent.TextChanged +function SetAutoCmp(mode) + if mode then + cmp.setup({ + completion = { + autocomplete = { Mode } + } + }) + Mode = false + else + cmp.setup({ + completion = { + autocomplete = Mode + } + }) + Mode = require('cmp.types').cmp.TriggerEvent.TextChanged + end +end + local capabilities = require('cmp_nvim_lsp').default_capabilities() -- Replace with each lsp server you've enabled. @@ -339,8 +367,6 @@ vim.opt.splitright = true -- vim.cmd[[g:gitblame_enabled = 0]] vim.g.gitblame_enabled = 0 --- set up completion -vim.cmd[[set completeopt=menu,menuone,noselect]] -- Vertically center document when entering Insert mode vim.cmd[[autocmd InsertEnter * norm zz]] diff --git a/nvim/lua/keybindings.lua b/nvim/lua/keybindings.lua index d7abcda7..ab71abd9 100644 --- a/nvim/lua/keybindings.lua +++ b/nvim/lua/keybindings.lua @@ -20,6 +20,9 @@ keymap('n', '', ':FZFExplore', {}) -- vim.cmd[[nnoremap gb :silent :GitBlameToggle]] keymap('n', '', ':GitBlameToggle', {}) +--toggle autocompletion +vim.cmd[[nnoremap cm :silent lua SetAutoCmp(Mode)]] + -- pageup/pagedown autotmatically recenters vim.cmd[[:map zz]] vim.cmd[[:map zz]]