aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/home/.config/nvim/lua/config/options.lua
diff options
context:
space:
mode:
authorLibravatar sommerfeld <[email protected]>2026-04-17 10:53:12 +0100
committerLibravatar sommerfeld <[email protected]>2026-04-17 10:53:12 +0100
commitd301dadc3fd279b0383eb0d37dc00dfdd17e9f2b (patch)
tree5ad0fc476b14cfc38c54447d31018b5fdef38a5a /home/.config/nvim/lua/config/options.lua
parent3e3d394d014dded76e3aac9a615f5efa93dd1c59 (diff)
downloaddotfiles-d301dadc3fd279b0383eb0d37dc00dfdd17e9f2b.tar.gz
dotfiles-d301dadc3fd279b0383eb0d37dc00dfdd17e9f2b.tar.bz2
dotfiles-d301dadc3fd279b0383eb0d37dc00dfdd17e9f2b.zip
refactor: move core config from after/plugin/ and cfg/ to lua/config/
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.
Diffstat (limited to 'home/.config/nvim/lua/config/options.lua')
-rw-r--r--home/.config/nvim/lua/config/options.lua103
1 files changed, 103 insertions, 0 deletions
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
+