Files
nvim/lua/options.lua
2025-08-25 03:10:43 +03:00

72 lines
1.7 KiB
Lua

-- Left column
vim.o.number = true
vim.o.relativenumber = true
vim.o.signcolumn = "yes"
-- Visuals
vim.o.showmode = false
vim.o.winborder = "single"
vim.o.breakindent = true
vim.o.cursorline = true
vim.o.scrolloff = 3
vim.o.list = true
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '' }
-- Folding
vim.o.foldmethod = "expr"
vim.o.foldlevel = 99
-- Experience
vim.o.confirm = true
vim.o.expandtab = true
vim.o.undofile = true
vim.o.swapfile = false
vim.g.mapleader = " "
-- Search
vim.o.inccommand = "split"
vim.o.ignorecase = true
vim.o.smartcase = true
-- Split
vim.o.splitright = true
vim.o.splitbelow = true
-- Highlights
vim.o.updatetime = 250
vim.o.timeoutlen = 300
vim.api.nvim_create_autocmd("TextYankPost", {
callback = function()
vim.hl.on_yank()
end,
})
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(event)
local highlight_augroup = vim.api.nvim_create_augroup("my.lsp-highlight", { clear = false })
vim.api.nvim_create_autocmd({ "CursorHold", "InsertLeave" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.document_highlight,
})
vim.api.nvim_create_autocmd({ "CursorMoved", "InsertEnter" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.clear_references,
})
vim.api.nvim_create_autocmd("LspDetach", {
group = vim.api.nvim_create_augroup("my.lsp-detach", { clear = true }),
callback = function(event2)
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds {
group = highlight_augroup,
buffer = event2.buf,
}
end,
})
end,
})