Skip to content

Commit 5728068

Browse files
committed
Pretty mcuh ideal tab-complete behavior AFAICT
1 parent 7466664 commit 5728068

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

init.lua

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,22 @@ vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagn
143143
-- or just use <C-\><C-n> to exit terminal mode
144144
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
145145

146+
-- Use tab to select completion candidate
147+
-- TODO: This breaks snippets completion when performed inside of lazy's blink
148+
-- config() hmm... also reloading blink.cmp every time the tab is performed might
149+
-- not be great?
150+
vim.keymap.set('i', '<Tab>', function()
151+
local col = vim.fn.col '.' - 1
152+
if require('blink.cmp').is_visible() then
153+
require('blink.cmp').accept()
154+
return ''
155+
elseif col == 0 or vim.fn.getline('.'):sub(col, col):match '%s' then
156+
return '<Tab>'
157+
else
158+
return '<C-x><C-o>' -- Or "<C-n>" or your preferred completion trigger
159+
end
160+
end, { expr = true, noremap = true })
161+
146162
-- TIP: Disable arrow keys in normal mode
147163
-- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
148164
-- vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')

0 commit comments

Comments
 (0)