diff --git a/modules/common/neovim/config/completion.nix b/modules/common/neovim/config/completion.nix index 400ecce..0041f3f 100644 --- a/modules/common/neovim/config/completion.nix +++ b/modules/common/neovim/config/completion.nix @@ -26,10 +26,10 @@ # Basic completion keybinds mapping = { - "['']" = dsl.rawLua "require('cmp').mapping.select_next_item({ behavior = require('cmp').SelectBehavior.Insert })"; - "['']" = dsl.rawLua "require('cmp').mapping.select_prev_item({ behavior = require('cmp').SelectBehavior.Insert })"; - "['']" = dsl.rawLua "require('cmp').mapping.select_next_item({ behavior = require('cmp').SelectBehavior.Select })"; - "['']" = dsl.rawLua "require('cmp').mapping.select_prev_item({ behavior = require('cmp').SelectBehavior.Select })"; + "['']" = dsl.rawLua "require('cmp').mapping.select_next_item({ behavior = require('cmp').SelectBehavior.Insert }, { 'i', 'c' })"; + "['']" = dsl.rawLua "require('cmp').mapping.select_prev_item({ behavior = require('cmp').SelectBehavior.Insert }, { 'i', 'c' })"; + "['']" = dsl.rawLua "require('cmp').mapping.select_next_item({ behavior = require('cmp').SelectBehavior.Select }, { 'i', 'c' })"; + "['']" = dsl.rawLua "require('cmp').mapping.select_prev_item({ behavior = require('cmp').SelectBehavior.Select }, { 'i', 'c' })"; "['']" = dsl.rawLua "require('cmp').mapping.scroll_docs(-4)"; "['']" = dsl.rawLua "require('cmp').mapping.scroll_docs(4)"; "['']" = dsl.rawLua "require('cmp').mapping.abort()"; @@ -131,13 +131,41 @@ lua = '' -- Use buffer source for `/` require('cmp').setup.cmdline("/", { - sources = { - { name = "buffer", keyword_length = 5 }, + mapping = { + [''] = { + c = require('cmp').mapping.select_next_item({ behavior = require('cmp').SelectBehavior.Insert }, { 'i', 'c' }) + }, + [''] = { + c = require('cmp').mapping.select_prev_item({ behavior = require('cmp').SelectBehavior.Insert }, { 'i', 'c' }) + }, + [''] = { + c = require('cmp').mapping.confirm({ behavior = require('cmp').ConfirmBehavior.Insert, select = true, }, { 'i', 'c' }) + }, + [''] = { + c = require('cmp').mapping.confirm({ behavior = require('cmp').ConfirmBehavior.Replace, select = true, }, { 'i', 'c' }) + }, }, + sources = require('cmp').config.sources({ + { name = "buffer", keyword_length = 5 }, + }), }) -- Use cmdline & path source for ':' require('cmp').setup.cmdline(":", { + mapping = { + [''] = { + c = require('cmp').mapping.select_next_item({ behavior = require('cmp').SelectBehavior.Insert }, { 'i', 'c' }) + }, + [''] = { + c = require('cmp').mapping.select_prev_item({ behavior = require('cmp').SelectBehavior.Insert }, { 'i', 'c' }) + }, + [''] = { + c = require('cmp').mapping.confirm({ behavior = require('cmp').ConfirmBehavior.Insert, select = true, }, { 'i', 'c' }) + }, + [''] = { + c = require('cmp').mapping.confirm({ behavior = require('cmp').ConfirmBehavior.Replace, select = true, }, { 'i', 'c' }) + }, + }, sources = require('cmp').config.sources({ { name = "path" }, }, {