From d301dadc3fd279b0383eb0d37dc00dfdd17e9f2b Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Fri, 17 Apr 2026 10:53:12 +0100 Subject: refactor: move core config from after/plugin/ and cfg/ to lua/config/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit after/plugin/ runs after ALL plugins with unpredictable ordering. Explicit require() from init.lua after lazy.setup() is more predictable and standard. - after/plugin/autocmds.lua → lua/config/autocmds.lua - after/plugin/mappings.lua → lua/config/keymaps.lua - cfg/options.lua → config/options.lua - cfg/utils.lua → config/utils.lua Creates a consistent lua/config/ namespace for all non-plugin configuration. --- home/.config/nvim/lua/config/options.lua | 103 +++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 home/.config/nvim/lua/config/options.lua (limited to 'home/.config/nvim/lua/config/options.lua') diff --git a/home/.config/nvim/lua/config/options.lua b/home/.config/nvim/lua/config/options.lua new file mode 100644 index 0000000..4b6d588 --- /dev/null +++ b/home/.config/nvim/lua/config/options.lua @@ -0,0 +1,103 @@ +local opt = vim.o + +opt.undofile = true +opt.swapfile = false +opt.shadafile = "NONE" + +opt.number = true +opt.cursorline = true +opt.signcolumn = "auto:2" +opt.laststatus = 3 + +opt.expandtab = true +opt.shiftround = true +opt.shiftwidth = 0 +opt.softtabstop = -1 +opt.tabstop = 4 + +opt.gdefault = true +opt.ignorecase = true +opt.smartcase = true + +opt.splitbelow = true +opt.splitright = true +opt.splitkeep = "screen" + +opt.linebreak = true +opt.breakindent = true +opt.textwidth = 80 +opt.colorcolumn = "+1" +vim.opt.formatoptions:remove("t") + +opt.messagesopt = "wait:5000,history:500" + +vim.opt.shortmess:append({ a = true }) + +opt.updatetime = 250 +opt.timeoutlen = 300 + +vim.opt.completeopt = { "menuone", "noselect", "popup", "fuzzy", "nearest" } +opt.scrolloff = 999 +opt.sidescrolloff = 5 + +vim.schedule(function() + opt.clipboard = vim.env.SSH_TTY and "" or "unnamedplus" +end) + +opt.mouse = "a" + +vim.opt.wildmode = { "longest", "full" } + +vim.opt.cpoptions:remove({ "_" }) + +vim.opt.listchars = { + tab = "> ", + space = "·", + extends = ">", + precedes = "<", + nbsp = "+", +} +opt.list = true + +opt.confirm = true + +opt.virtualedit = "block" +opt.spelloptions = "camel" + +vim.g.loaded_node_provider = 0 +vim.g.loaded_perl_provider = 0 +vim.g.loaded_python3_provider = 0 + +vim.opt.diffopt:append({ + hiddenoff = true, + iblank = true, + iwhiteall = true, + algorithm = "histogram", +}) + +if vim.fn.executable("rg") then + opt.grepprg = "rg\\ --vimgrep" + opt.grepformat = "%f:%l:%c:%m" +end + +opt.pumblend = 20 +opt.pumborder = "rounded" + +opt.winborder = "rounded" + +vim.o.foldmethod = "expr" +vim.o.foldenable = false + +vim.g.mapleader = " " +vim.g.maplocalleader = "," + +vim.diagnostic.config({ + virtual_text = false, + virtual_lines = false, +}) + +opt.sessionoptions = + "blank,buffers,curdir,help,tabpages,winsize,winpos,terminal,localoptions" + +vim.o.exrc = true + -- cgit v1.2.3-70-g09d2