initial commit for native-only neovim plugin configuration

This commit is contained in:
2026-06-24 03:14:04 +02:00
parent 6d7373aab4
commit 5929cd53d7
19 changed files with 266 additions and 898 deletions
+64 -43
View File
@@ -1,5 +1,6 @@
--[[
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣷⣦⣄⡀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⡀
@@ -25,65 +26,78 @@
| _/ /_____\__ \ || (_| | (__| <
|_|/___| |___/\__\__,_|\___|_|\_\
Neovim 0.12 configuration
(c) Frank Zechert 2026
Neovim v0.12 configuration
(C) Frank Zechert 2026
]]
-- UI
-- UI settings
vim.opt.background = vim.g.ui.background
-- Colored columns and rows
vim.opt.colorcolumn = "+1,+2"
vim.opt.textwidth = 120
vim.opt.cursorcolumn = true
vim.opt.cursorline = true
vim.opt.cursorlineopt = "both"
vim.opt.linebreak = true
vim.opt.list = true
vim.opt.listchars = vim.g.ui.listchars
vim.opt.number = true
vim.opt.numberwidth = 4
vim.opt.relativenumber = false
vim.opt.winborder = vim.g.ui.border
vim.opt.pumborder = vim.g.ui.border
vim.opt.cursorlineopt = "both" -- cursor line is displayed in line and in number
vim.opt.signcolumn = "yes"
vim.opt.termguicolors = true
-- Linebreak behaviour and scroll offset
vim.opt.linebreak = true -- visually line break at word boundary
vim.opt.showbreak = vim.g.ui.linebreak -- show line break indicator
vim.opt.scrolloff = 5
vim.opt.sidescrolloff = 3
vim.opt.showbreak = vim.g.ui.linebreak
vim.opt.signcolumn = "yes"
vim.opt.wrap = false -- by default, do not wrap long lines
vim.opt.wrapmargin = 3
-- Show special characters
vim.opt.list = true
vim.opt.listchars = vim.g.ui.listchars
-- show line numbers
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.numberwidth = 4
-- border settings
vim.opt.winborder = vim.g.ui.windowborder
vim.opt.pumborder = vim.g.ui.popupborder
-- window split behaviour
vim.opt.splitbelow = true
vim.opt.splitright = true
vim.opt.termguicolors = true
vim.opt.textwidth = 120
vim.opt.wrap = false
-- when no textwidth is specified, automatically add <EOL> at the end of a long line 3
-- characters before reaching the window edge. Will have no effect if textwidth is specified otherwise.
-- Set to 0 to disable.
vim.opt.wrapmargin = 3
-- hide mode and serch count (displayed in lualine instead)
vim.opt.showmode = false
-- hide mode, displayed in lualine
-- vim.opt.showmode = false
vim.opt.shortmess:append("S")
-- enable visual bell
vim.opt.visualbell = true
-- Editing
-- Editing settings
vim.opt.autoindent = true
vim.opt.backspace = {"indent", "eol", "start"}
vim.opt.expandtab = false
vim.opt.backspace = { "indent", "eol", "start" }
vim.opt.preserveindent = true
vim.opt.smartindent = true
vim.opt.breakindent = true
vim.opt.breakindentopt:append({ min = 20, shift = -2, sbr = ture, list = -1 })
-- tab settings
vim.opt.expandtab = false
vim.opt.shiftround = true
vim.opt.shiftwidth = 0
vim.opt.tabstop = 4
vim.opt.softtabstop = -1
vim.opt.smarttab = true
vim.opt.smartindent = true
vim.opt.breakindent = true
vim.opt.breakindentopt:append({ min = 20, shift = -2, sbr = true, list = -1 })
vim.opt.matchpairs:append({"<:>"})
-- matching pairs of symbols
vim.opt.matchpairs:append({ "<:>" })
-- Search settings
-- Search
vim.opt.hlsearch = true
vim.opt.ignorecase = true
vim.opt.inccommand = "split"
vim.opt.inccommand = split
vim.opt.incsearch = true
vim.opt.smartcase = true
-- Files
-- Files settings
vim.opt.backup = false
vim.opt.writebackup = false
vim.opt.fileformat = "unix"
@@ -91,25 +105,32 @@ vim.opt.fileencoding = "utf-8"
vim.opt.undofile = true
vim.opt.swapfile = true
-- Performance
vim.opt.updatetime = 1000
vim.opt.timeoutlen = 600
-- Mouse & Clipboard
-- Performance settings
vim.opt.updatetime = 1000
vim.opt.timeoutlen = 300
-- Mouse and Clipboard settings
vim.opt.mouse = "a"
vim.schedule(function() vim.opt.clipboard = "unnamedplus" end)
-- Folding
-- Folding settings
vim.opt.foldcolumn = "auto"
vim.opt.foldmethod = "expr"
vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()"
vim.opt.foldlevel = 99
vim.opt.foldlevel = 10 -- keep this many levels of folds open by default
-- Autocomplete settings
-- Autocompletion
vim.opt.autocomplete = false
vim.opt.autocompletedelay = 0
vim.opt.autocompletetimeout = 0
vim.opt.completeopt = {"menu", "menuone", "noinsert", "popup", "preview"}
vim.opt.completeitemalign = {"abbr", "kind", "menu"}
vim.opt.completeopt = { "menu", "menuone", "noinsert", "popup", "preview" }
vim.opt.completeitemalign = { "abbr", "kind", "menu" }
vim.opt.completetimeout = 0