From ddca0b45040d8f5c9302e1be8c9c403ced2809a7 Mon Sep 17 00:00:00 2001 From: MN-nagy Date: Sun, 13 Jul 2025 23:21:21 +0300 Subject: [PATCH 1/4] Added blink.cmp buffer completions for markdown/text + some useful options/autocommands --- init.lua | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index b98ffc61..80361d87 100644 --- a/init.lua +++ b/init.lua @@ -166,6 +166,15 @@ vim.o.scrolloff = 10 -- See `:help 'confirm'` vim.o.confirm = true +-- Enable undo/redo changes even after closing and reopening a file +vim.opt.undofile = true + +-- Enable smooth scrolling +vim.opt.smoothscroll = true + +-- Highlight max chars per line +-- vim.opt.colorcolumn = '100' + -- [[ Basic Keymaps ]] -- See `:help vim.keymap.set()` @@ -184,6 +193,9 @@ vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagn -- or just use to exit terminal mode vim.keymap.set('t', '', '', { desc = 'Exit terminal mode' }) +-- Close current buffer +vim.keymap.set('n', 'Q', ':bd', { desc = 'Close current buffer' }) + -- TIP: Disable arrow keys in normal mode -- vim.keymap.set('n', '', 'echo "Use h to move!!"') -- vim.keymap.set('n', '', 'echo "Use l to move!!"') @@ -215,10 +227,46 @@ vim.api.nvim_create_autocmd('TextYankPost', { desc = 'Highlight when yanking (copying) text', group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }), callback = function() - vim.hl.on_yank() + vim.hl.on_yank { timeout = 200 } end, }) +-- Restore cursor position on file open +vim.api.nvim_create_autocmd('BufReadPost', { + desc = 'Restore cursor position on file open', + group = vim.api.nvim_create_augroup('kickstart-restore-cursor', { clear = true }), + pattern = '*', + callback = function() + local line = vim.fn.line '\'"' + if line > 1 and line <= vim.fn.line '$' then + vim.cmd 'normal! g\'"' + end + end, +}) + +-- auto-create missing dirs when saving a file +vim.api.nvim_create_autocmd('BufWritePre', { + desc = 'Auto-create missing dirs when saving a file', + group = vim.api.nvim_create_augroup('kickstart-auto-create-dir', { clear = true }), + pattern = '*', + callback = function() + local dir = vim.fn.expand ':p:h' + if vim.fn.isdirectory(dir) == 0 then + vim.fn.mkdir(dir, 'p') + end + end, +}) + +-- disable automatic comment on newline +-- vim.api.nvim_create_autocmd('FileType', { +-- desc = 'Disable automatic comment on newline', +-- group = vim.api.nvim_create_augroup('kickstart-disable-auto-comment', { clear = true }), +-- pattern = '*', +-- callback = function() +-- vim.opt_local.formatoptions:remove { 'c', 'r', 'o' } +-- end, +-- }) + -- [[ Install `lazy.nvim` plugin manager ]] -- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' @@ -854,9 +902,21 @@ require('lazy').setup({ }, sources = { - default = { 'lsp', 'path', 'snippets', 'lazydev' }, + default = { 'lsp', 'path', 'snippets', 'lazydev', 'buffer' }, providers = { lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 }, + buffer = { + score_offset = -1, + filter = function(buffer) + -- Filetypes for which buffer completions are enabled; add filetypes to extend + local enabled_filetypes = { + 'markdown', + 'text', + } + local filetype = vim.bo[buffer].filetype + return vim.tbl_contains(enabled_filetypes, filetype) + end, + }, }, }, From 13ba71f90ab2eb241e81eb4f9941d3829b752ed9 Mon Sep 17 00:00:00 2001 From: MN-nagy Date: Mon, 14 Jul 2025 00:11:44 +0300 Subject: [PATCH 2/4] Updated filter files func in blink.cmp --- init.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/init.lua b/init.lua index 80361d87..80e8ca88 100644 --- a/init.lua +++ b/init.lua @@ -906,14 +906,15 @@ require('lazy').setup({ providers = { lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 }, buffer = { - score_offset = -1, - filter = function(buffer) - -- Filetypes for which buffer completions are enabled; add filetypes to extend + -- Make buffer compeletions appear at the end. + score_offset = -100, + enabled = function() + -- Filetypes for which buffer completions are enabled; add filetypes to extend: local enabled_filetypes = { 'markdown', 'text', } - local filetype = vim.bo[buffer].filetype + local filetype = vim.bo.filetype return vim.tbl_contains(enabled_filetypes, filetype) end, }, From 87d4ff8a7472f241718eea3869d6487be6f387cd Mon Sep 17 00:00:00 2001 From: MN-nagy Date: Tue, 15 Jul 2025 15:42:06 +0300 Subject: [PATCH 3/4] Refactor: Use vim.o and adjust scrolling/wrapping options --- init.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/init.lua b/init.lua index 80e8ca88..47d7f12a 100644 --- a/init.lua +++ b/init.lua @@ -167,13 +167,13 @@ vim.o.scrolloff = 10 vim.o.confirm = true -- Enable undo/redo changes even after closing and reopening a file -vim.opt.undofile = true +vim.o.undofile = true --- Enable smooth scrolling -vim.opt.smoothscroll = true +-- Disable line wrapping +vim.o.wrap = false -- Highlight max chars per line --- vim.opt.colorcolumn = '100' +-- vim.o.colorcolumn = '100' -- [[ Basic Keymaps ]] -- See `:help vim.keymap.set()` From c2347a5ec6369346d187ddf1d3a5606e3f93593f Mon Sep 17 00:00:00 2001 From: MN-nagy Date: Wed, 16 Jul 2025 16:36:46 +0300 Subject: [PATCH 4/4] Refactor: Removed duplicated opt; improve clarity with description --- init.lua | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/init.lua b/init.lua index 47d7f12a..42c1fca5 100644 --- a/init.lua +++ b/init.lua @@ -121,7 +121,7 @@ end) -- Enable break indent vim.o.breakindent = true --- Save undo history +-- Enable undo/redo changes even after closing and reopening a file vim.o.undofile = true -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term @@ -166,9 +166,6 @@ vim.o.scrolloff = 10 -- See `:help 'confirm'` vim.o.confirm = true --- Enable undo/redo changes even after closing and reopening a file -vim.o.undofile = true - -- Disable line wrapping vim.o.wrap = false