aboutsummaryrefslogtreecommitdiff
path: root/Common/nvim/lua/lsp-conf.lua
diff options
context:
space:
mode:
authorjakobst1n <jakob.stendahl@outlook.com>2024-01-12 16:14:27 +0100
committerjakobst1n <jakob.stendahl@outlook.com>2024-01-12 16:14:27 +0100
commited3495dcbe3e6da94f9fcb94288d76bf86af51cd (patch)
treecdaf4f89859ecd3b126b33a5662bb19275132e49 /Common/nvim/lua/lsp-conf.lua
parentd4d96a8fcaa895e45b537bcc8600b0d8a86fa15b (diff)
downloaddotfiles-ed3495dcbe3e6da94f9fcb94288d76bf86af51cd.tar.gz
dotfiles-ed3495dcbe3e6da94f9fcb94288d76bf86af51cd.zip
Disable autocomplete
Diffstat (limited to 'Common/nvim/lua/lsp-conf.lua')
-rw-r--r--Common/nvim/lua/lsp-conf.lua32
1 files changed, 25 insertions, 7 deletions
diff --git a/Common/nvim/lua/lsp-conf.lua b/Common/nvim/lua/lsp-conf.lua
index 18a8f12..20ffcc5 100644
--- a/Common/nvim/lua/lsp-conf.lua
+++ b/Common/nvim/lua/lsp-conf.lua
@@ -76,6 +76,18 @@ autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
-- Completion Plugin Setup
local cmp = require'cmp'
+
+local has_words_before = function()
+ unpack = unpack or table.unpack
+ 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({
-- Enable LSP snippets
snippet = {
@@ -85,13 +97,15 @@ cmp.setup({
},
mapping = {
['<C-p>'] = cmp.mapping.select_prev_item(),
- ['<C-n>'] = cmp.mapping.select_next_item(),
- -- Add tab support
- ['<S-Tab>'] = cmp.mapping.select_prev_item(),
- ['<Tab>'] = cmp.mapping.select_next_item(),
- ['<C-S-f>'] = cmp.mapping.scroll_docs(-4),
- ['<C-f>'] = cmp.mapping.scroll_docs(4),
- ['<C-Space>'] = cmp.mapping.complete(),
+ ["<C-n>"] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_next_item()
+ elseif has_words_before() then
+ cmp.complete()
+ else
+ fallback()
+ end
+ end, { "i", "s" }),
['<C-e>'] = cmp.mapping.close(),
['<CR>'] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Insert,
@@ -112,6 +126,10 @@ cmp.setup({
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
+ completion = {
+ autocomplete = false,
+ completeopt = "menu,menuone,preview",
+ },
formatting = {
fields = {'menu', 'abbr', 'kind'},
format = function(entry, item)