aboutsummaryrefslogtreecommitdiff
path: root/nvim
diff options
context:
space:
mode:
Diffstat (limited to 'nvim')
-rw-r--r--nvim/dot-config/nvim-final/after/ftplugin/lua.lua3
-rw-r--r--nvim/dot-config/nvim-final/colors/solarized.lua490
-rw-r--r--nvim/dot-config/nvim-final/init.lua719
-rw-r--r--nvim/dot-config/nvim-final/lua/mo/zen.lua89
-rw-r--r--nvim/dot-config/nvim-final/nvim-pack-lock.json12
-rw-r--r--nvim/dot-config/nvim-final/plugin/autocommands.lua7
-rw-r--r--nvim/dot-config/nvim-final/plugin/treesitter.lua42
-rw-r--r--nvim/dot-config/nvim-final/stylua.toml12
8 files changed, 0 insertions, 1374 deletions
diff --git a/nvim/dot-config/nvim-final/after/ftplugin/lua.lua b/nvim/dot-config/nvim-final/after/ftplugin/lua.lua
deleted file mode 100644
index 53dd1d2..0000000
--- a/nvim/dot-config/nvim-final/after/ftplugin/lua.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-vim.cmd([[
-setlocal keywordprg=:help
-]])
diff --git a/nvim/dot-config/nvim-final/colors/solarized.lua b/nvim/dot-config/nvim-final/colors/solarized.lua
deleted file mode 100644
index 090090b..0000000
--- a/nvim/dot-config/nvim-final/colors/solarized.lua
+++ /dev/null
@@ -1,490 +0,0 @@
-local function oklab_to_linear_rgb(L, a, b)
- -- Oklab to LMS conversion
- -- Reference: Björn Ottosson, "A perceptual color space for image processing"
- local l = L + 0.3963377774 * a + 0.2158037573 * b
- local m = L - 0.1055613458 * a - 0.0638541728 * b
- local s = L - 0.0894841775 * a - 1.2914855480 * b
-
- -- LMS to linear RGB
- -- Cube the LMS values (inverse of cube root)
- local l3, m3, s3 = l * l * l, m * m * m, s * s * s
-
- -- Linear RGB transformation matrix
- local r = 4.0767416621 * l3 - 3.3077115913 * m3 + 0.2309699292 * s3
- local g = -1.2684380046 * l3 + 2.6097574011 * m3 - 0.3413193965 * s3
- local b_out = -0.0041960863 * l3 - 0.7034186147 * m3 + 1.7076147010 * s3
-
- return r, g, b_out
-end
-
-local function linear_to_srgb_component(c)
- -- sRGB gamma correction (companding)
- -- Reference: IEC 61966-2-1:1999
- if c <= 0.0031308 then
- return c * 12.92 -- Linear segment
- else
- return 1.055 * (c ^ (1 / 2.4)) - 0.055 -- Power function (gamma ≈ 2.2)
- end
-end
-
-local function oklab_to_srgb(L, a, b)
- local r, g, b_comp = oklab_to_linear_rgb(L, a, b)
-
- r = linear_to_srgb_component(r)
- g = linear_to_srgb_component(g)
- b_comp = linear_to_srgb_component(b_comp)
-
- -- Clamp and convert to 8-bit
- r = math.floor(math.max(0, math.min(1, r)) * 255 + 0.5)
- g = math.floor(math.max(0, math.min(1, g)) * 255 + 0.5)
- b_comp = math.floor(math.max(0, math.min(1, b_comp)) * 255 + 0.5)
-
- return string.format('#%02x%02x%02x', r, g, b_comp)
-end
-
--- ═══════════════════════════════════════════════════════════════════════════
--- MONOTONE COLORS
--- ═══════════════════════════════════════════════════════════════════════════
-local base03 = oklab_to_srgb(0.267337, -0.037339, -0.031128)
-local base02 = oklab_to_srgb(0.309207, -0.039852, -0.033029)
-local base01 = oklab_to_srgb(0.523013, -0.021953, -0.017864)
-local base00 = oklab_to_srgb(0.568165, -0.021219, -0.019038)
-
-local base0 = oklab_to_srgb(0.709236, -0.023223, -0.013451)
-local base1 = oklab_to_srgb(0.697899, -0.015223, -0.004594)
-local base2 = oklab_to_srgb(0.930609, -0.001091, 0.026010)
-local base3 = oklab_to_srgb(0.973528, -0.000043, 0.026053)
-
--- ═══════════════════════════════════════════════════════════════════════════
--- ACCENT COLORS
--- ═══════════════════════════════════════════════════════════════════════════
-local yellow = oklab_to_srgb(0.654479, 0.010005, 0.133641)
-local orange = oklab_to_srgb(0.63, 0.133661 * 0.69, 0.110183 * 0.69)
-local red = oklab_to_srgb(0.63, 0.183749 * 0.72, 0.094099 * 0.72)
-local magenta = oklab_to_srgb(0.592363, 0.201958, -0.014497)
-local violet = oklab_to_srgb(0.582316, 0.019953, -0.124557)
-local blue = oklab_to_srgb(0.614879, -0.059069, -0.126255)
-local cyan = oklab_to_srgb(0.643664, -0.101063, -0.013097)
-local green = oklab_to_srgb(0.644391, -0.072203, 0.132448)
-
--- ═══════════════════════════════════════════════════════════════════════════
--- MODE SELECTION
--- ═══════════════════════════════════════════════════════════════════════════
-
--- Set to 'dark' or 'light'
-local mode = vim.o.background or 'dark'
-
-local colors = {}
-
-if mode == 'dark' then
- -- Dark mode: dark background, light text
- colors.bg = base03
- colors.bg_highlight = base02
- colors.fg_comment = base01
- colors.fg = base0
- colors.fg_emphasis = base1
-else
- colors.bg = base3
- colors.bg_highlight = base2
- colors.fg_comment = base1
- colors.fg = base00
- colors.fg_emphasis = base01
-end
-
--- Accent colors are the same in both modes
-colors.yellow = yellow
-colors.orange = orange
-colors.red = red
-colors.magenta = magenta
-colors.violet = violet
-colors.blue = blue
-colors.cyan = cyan
-colors.green = green
-
-colors.cursorline_bg = colors.bg_highlight
-colors.selection_bg = base02
-colors.visual_bg = base02
-
-vim.g.colors_name = 'dicom'
-
-local function h(group, properties)
- vim.api.nvim_set_hl(0, group, properties)
-end
-
-local function hex_to_rgb(hex)
- hex = hex:gsub('#', '')
- return {
- tonumber(hex:sub(1, 2), 16),
- tonumber(hex:sub(3, 4), 16),
- tonumber(hex:sub(5, 6), 16),
- }
-end
-
-local function rgb_to_hex(c)
- return string.format('#%02x%02x%02x', c[1], c[2], c[3])
-end
-
-local function blend(fg, t, target_bg)
- local a, b = hex_to_rgb(fg), hex_to_rgb(target_bg or colors.bg)
- local c = {
- math.floor(a[1] * (1 - t) + b[1] * t + 0.5),
- math.floor(a[2] * (1 - t) + b[2] * t + 0.5),
- math.floor(a[3] * (1 - t) + b[3] * t + 0.5),
- }
- return rgb_to_hex(c)
-end
-
--- =============================================================================
--- Research-Driven Syntax Highlighting Strategy
--- Based on: Hannebauer et al. (2018), Tonsky (2025), Schloss (2023)
--- =============================================================================
-
--- 1. Core Editor Surface
-h('Normal', { fg = colors.fg, bg = colors.bg })
-h('EndOfBuffer', { fg = colors.bg })
-h('CursorLine', { bg = colors.cursorline_bg })
-h('CursorLineNr', { fg = colors.yellow, bold = true })
-h('LineNr', { fg = colors.fg_comment })
-h('WinSeparator', { fg = colors.bg_highlight, bg = colors.bg })
-
--- 2. Visual & Search (High Arousal)
-h('Visual', { bg = colors.selection_bg })
-h('Search', { fg = colors.bg, bg = colors.yellow })
-h('IncSearch', { fg = colors.bg, bg = colors.orange })
-
-h('Keyword', { fg = colors.green })
-h('Statement', { fg = colors.green })
-h('Conditional', { fg = colors.green })
-h('Repeat', { fg = colors.green })
-
-h('Function', { fg = colors.blue })
-
--- Types
-h('Type', { fg = colors.yellow })
-h('StorageClass', { fg = colors.yellow })
-h('Structure', { fg = colors.yellow })
-h('Typedef', { fg = colors.yellow })
-
--- Constants
-h('Constant', { fg = colors.cyan })
-h('String', { fg = colors.cyan })
-h('Character', { fg = colors.cyan })
-h('Number', { fg = colors.cyan })
-h('Boolean', { fg = colors.cyan })
-h('Float', { fg = colors.cyan })
-
--- PreProc
-h('PreProc', { fg = colors.orange })
-h('Include', { fg = colors.orange })
-h('Define', { fg = colors.orange })
-h('Macro', { fg = colors.orange })
-h('PreCondit', { fg = colors.orange })
-
--- Special Characters - Cyan (escape/special)
-h('Special', { fg = colors.cyan })
-
-h('Identifier', { fg = colors.fg })
-h('Variable', { fg = colors.fg })
-h('Operator', { fg = colors.fg })
-
-h('Delimiter', { fg = colors.fg })
-h('NonText', { fg = colors.bg_highlight })
-
--- -----------------------------------------------------------------------------
--- Layer 6: COMMENTS
--- Luminance: L=comment (dimmest)
--- -----------------------------------------------------------------------------
-
-h('Comment', { fg = colors.fg_comment, italic = true })
-
--- =============================================================================
--- 4. UI Components
--- =============================================================================
-
-h('StatusLine', { bg = colors.fg, fg = colors.bg_highlight })
-h('StatusLineNC', { bg = colors.fg_comment, fg = colors.bg_highlight })
-h('WildMenu', { fg = colors.bg, bg = colors.blue })
-h('ColorColumn', { bg = colors.bg_highlight })
-
--- Popup Menu
-h('Pmenu', { fg = colors.fg, bg = colors.bg_highlight })
-h('PmenuSel', { fg = colors.fg_emphasis, bg = colors.selection, reverse = true })
-h('PmenuSbar', { bg = colors.bg_highlight })
-h('PmenuThumb', { bg = colors.fg_comment })
-h('PmenuMatch', { fg = colors.cyan, bold = true })
-h('PmenuMatchSel', { bg = colors.selection, bold = true, fg = colors.fg_emphasis })
-
--- Float & Borders
-h('NormalFloat', { bg = colors.bg_highlight })
-h('FloatBorder', { fg = colors.comment })
-h('Title', { fg = colors.bg_highlight, bold = true })
-
--- =============================================================================
--- 5. Diagnostics - Semantic Consistency
--- =============================================================================
---
--- Research basis (Schloss 2023):
--- Color-concept associations are universal:
--- Red → danger/anger (cross-cultural consistency)
--- Orange → warning/caution
--- Blue → information/calm
--- Cyan → hint/auxiliary
---
--- This mapping perfectly aligns with research! ✓
---
-
-h('ErrorMsg', { fg = colors.red, bold = true })
-h('WarningMsg', { fg = colors.orange })
-h('ModeMsg', { fg = colors.cyan, bold = true })
-h('Todo', { fg = colors.violet, bold = true, reverse = true })
-h('MatchParen', { bg = colors.selection_bg, bold = true })
-
--- QuickFix & List
-h('qfFileName', { fg = colors.blue })
-h('qfLineNr', { fg = colors.cyan })
-h('qfSeparator', { fg = colors.bg_highlight })
-h('QuickFixLine', { bg = colors.cursorline_bg, bold = true })
-h('qfText', { link = 'Normal' })
-
--- Underlined/Directory
-h('Underlined', { fg = colors.violet, underline = true })
-h('Directory', { fg = colors.blue })
-
--- sync to terminal
-h('Magenta', { fg = colors.magenta })
-h('Violet', { fg = colors.violet })
-
--- =============================================================================
--- 6. Treesitter Highlights (Optimized)
--- =============================================================================
-
--- Neutral Layer ⭐️ KEY OPTIMIZATION
-h('@variable', { link = 'Identifier' }) -- Neutral
-h('@variable.builtin', { link = '@variable' }) -- Neutral
-h('@variable.parameter', { link = '@variable' }) -- Neutral
-h('@variable.parameter.builtin', { link = '@variable.builtin' })
-h('@variable.member', { link = '@variable' }) -- Neutral
-h('@parameter', { fg = colors.fg }) -- Neutral
-h('@property', { fg = colors.fg }) -- Neutral
-
--- Constants Layer ⭐️ OPTIMIZED
-h('@constant', { fg = colors.cyan }) -- Constants = frozen
-h('@constant.builtin', { fg = colors.cyan })
-h('@constant.macro', { fg = colors.cyan })
-
--- Modules/Namespaces
-h('@module', { link = 'Identifier' })
-h('@module.builtin', { link = '@module' })
-
--- Labels
-h('@label', { link = 'Label' })
-
--- Strings Layer
-h('@string', { link = 'String' })
-h('@string.documentation', { link = 'Comment' })
-h('@string.regexp', { link = '@string' })
-h('@string.escape', { link = 'Special' })
-h('@string.special', { link = '@string' })
-h('@string.special.symbol', { link = '@string' })
-h('@string.special.path', { link = '@string' })
-h('@string.special.url', { link = 'Underlined' })
-
-h('@character', { link = 'String' })
-h('@character.special', { link = '@character' })
-
--- Numbers Layer
-h('@boolean', { link = 'Constant' })
-h('@number', { link = 'Number' })
-h('@number.float', { link = 'Float' })
-
--- Types Layer
-h('@type', { link = 'Type' })
-h('@type.builtin', { link = 'Type' })
-h('@type.definition', { link = 'Type' })
-
--- Attributes/Decorators
-h('@attribute', { link = 'Macro' })
-h('@attribute.builtin', { link = 'Special' })
-
--- Functions Layer
-h('@function', { link = 'Function' })
-h('@function.builtin', { link = 'Function' })
-h('@function.call', { link = '@function' })
-h('@function.macro', { link = '@function' })
-h('@function.method', { link = '@function' })
-h('@function.method.call', { link = '@function' })
-h('@constructor', { link = 'Function' })
-
--- Operators - Neutral
-h('@operator', { link = 'Operator' })
-
--- Keywords Layer
-h('@keyword', { link = 'Keyword' })
-h('@keyword.coroutine', { link = '@keyword' })
-h('@keyword.function', { link = 'Keyword' })
-h('@keyword.operator', { link = '@keyword' })
-h('@keyword.import', { link = 'PreProc' })
-h('@keyword.type', { link = '@keyword' })
-h('@keyword.modifier', { link = '@keyword' })
-h('@keyword.repeat', { link = 'Repeat' })
-h('@keyword.return', { link = '@keyword' })
-h('@keyword.debug', { link = '@keyword' })
-h('@keyword.exception', { link = '@keyword' })
-h('@keyword.conditional', { link = 'Conditional' })
-h('@keyword.conditional.ternary', { link = '@operator' })
-h('@keyword.directive', { link = '@keyword' })
-h('@keyword.directive.define', { link = '@keyword' })
-
--- Punctuation
-h('@punctuation', { fg = colors.fg })
-h('@punctuation.delimiter', { link = '@punctuation' })
-h('@punctuation.bracket', { link = '@punctuation' })
-h('@punctuation.special', { link = '@punctuation' })
-
--- Comments Layer
-h('@comment', { link = 'Comment' })
-h('@comment.documentation', { link = '@comment' })
-h('@comment.error', { fg = colors.red, bold = true })
-h('@comment.warning', { fg = colors.yellow, bold = true })
-h('@comment.todo', { link = 'Special' })
-h('@comment.note', { link = 'Special' })
-
--- Markup (Markdown, etc.)
-h('@markup', { link = 'Comment' })
-h('@markup.strong', { bold = true })
-h('@markup.italic', { italic = true })
-h('@markup.strikethrough', { strikethrough = true })
-h('@markup.underline', { link = 'Underlined' })
-h('@markup.heading', { link = 'Title' })
-h('@markup.heading.1', { link = '@markup.heading' })
-h('@markup.heading.2', { link = '@markup.heading' })
-h('@markup.heading.3', { link = '@markup.heading' })
-h('@markup.heading.4', { link = '@markup.heading' })
-h('@markup.heading.5', { link = '@markup.heading' })
-h('@markup.heading.6', { link = '@markup.heading' })
-h('@markup.quote', {})
-h('@markup.math', { link = 'String' })
-h('@markup.link', { link = 'Underlined' })
-h('@markup.link.label', { link = '@markup.link' })
-h('@markup.link.url', { link = '@markup.link' })
-h('@markup.raw', {})
-h('@markup.raw.block', { link = '@markup.raw' })
-h('@markup.list', {})
-h('@markup.list.checked', { fg = colors.green })
-h('@markup.list.unchecked', { link = '@markup.list' })
-
--- Diff
-h('@diff.plus', { fg = blend(colors.green, 0.5, colors.statusline_bg) })
-h('@diff.minus', { fg = blend(colors.red, 0.5, colors.statusline_bg) })
-h('@diff.delta', { fg = blend(colors.yellow, 0.5, colors.statusline_bg) })
-
--- HTML/XML
-h('@tag', { fg = colors.green })
-h('@tag.attribute', { fg = colors.fg })
-h('@tag.delimiter', { fg = colors.fg })
-h('@tag.builtin', { link = 'Special' })
-
--- Vimdoc Special Handling
-h('@constant.comment', { link = 'SpecialComment' })
-h('@number.comment', { link = 'Comment' })
-h('@punctuation.bracket.comment', { link = 'SpecialComment' })
-h('@punctuation.delimiter.comment', { link = 'SpecialComment' })
-h('@label.vimdoc', { link = 'String' })
-h('@markup.heading.1.delimiter.vimdoc', { link = '@markup.heading.1' })
-h('@markup.heading.2.delimiter.vimdoc', { link = '@markup.heading.2' })
-
--- Semantic Aliases
-h('@class', { fg = colors.yellow })
-h('@method', { fg = colors.blue })
-h('@interface', { fg = colors.yellow })
-h('@namespace', { fg = colors.fg })
-
--- =============================================================================
--- 7. LSP Semantic Highlights
--- =============================================================================
-
-h('@lsp.type.class', { link = '@type' })
-h('@lsp.type.comment', { link = '@comment' })
-h('@lsp.type.decorator', { link = '@attribute' })
-h('@lsp.type.enum', { link = '@type' })
-h('@lsp.type.enumMember', { link = '@constant' })
-h('@lsp.type.event', { link = '@type' })
-h('@lsp.type.function', { link = '@function' })
-h('@lsp.type.interface', { link = '@type' })
-h('@lsp.type.keyword', { link = '@keyword' })
-h('@lsp.type.macro', { link = 'Macro' })
-h('@lsp.type.method', { link = '@function.method' })
-h('@lsp.type.modifier', { link = '@type.qualifier' })
-h('@lsp.type.namespace', { link = '@module' })
-h('@lsp.type.number', { link = '@number' })
-h('@lsp.type.operator', { link = '@operator' })
-h('@lsp.type.parameter', { fg = colors.fg })
-h('@lsp.type.property', { fg = colors.fg })
-h('@lsp.type.regexp', { link = '@string.regexp' })
-h('@lsp.type.string', { link = '@string' })
-h('@lsp.type.struct', { link = '@type' })
-h('@lsp.type.type', { link = '@type' })
-h('@lsp.type.typeParameter', { link = '@type.definition' })
-h('@lsp.type.variable', { link = '@variable' })
-
--- LSP Modifiers
-h('@lsp.mod.abstract', {})
-h('@lsp.mod.async', {})
-h('@lsp.mod.declaration', {})
-h('@lsp.mod.defaultLibrary', {})
-h('@lsp.mod.definition', {})
-h('@lsp.mod.deprecated', { link = 'DiagnosticDeprecated' })
-h('@lsp.mod.documentation', {})
-h('@lsp.mod.modification', {})
-h('@lsp.mod.readonly', {})
-h('@lsp.mod.static', {})
-
--- =============================================================================
--- 8. Diagnostics - Semantic Consistency (Schloss 2023)
--- =============================================================================
-
-h('DiagnosticError', { fg = colors.red })
-h('DiagnosticWarn', { fg = colors.yellow })
-h('DiagnosticInfo', { fg = colors.blue })
-h('DiagnosticHint', { fg = colors.cyan })
-
-h('DiagnosticVirtualTextError', { bg = blend(colors.red, 0.4) })
-h('DiagnosticVirtualTextWarn', { bg = blend(colors.yellow, 0.4) })
-h('DiagnosticVirtualTextInfo', { bg = blend(colors.blue, 0.4) })
-h('DiagnosticVirtualTextHint', { bg = blend(colors.cyan, 0.4) })
-
-h('DiagnosticPrefixError', { fg = colors.red, bg = blend(colors.red, 0.25) })
-h('DiagnosticPrefixWarn', { fg = colors.yellow, bg = blend(colors.yellow, 0.25) })
-h('DiagnosticPrefixInfo', { fg = colors.blue, bg = blend(colors.blue, 0.25) })
-h('DiagnosticPrefixHint', { fg = colors.cyan, bg = blend(colors.cyan, 0.25) })
-
-h('DiagnosticUnderlineError', { undercurl = true, sp = colors.red })
-h('DiagnosticUnderlineWarn', { undercurl = true, sp = colors.yellow })
-h('DiagnosticUnderlineInfo', { undercurl = true, sp = colors.blue })
-h('DiagnosticUnderlineHint', { undercurl = true, sp = colors.cyan })
-h('YankHighlight', { fg = colors.bg, bg = colors.fg })
-
--- =============================================================================
--- 9. LSP & Other Plugin Support
--- =============================================================================
-
-h('LspReferenceText', { bg = colors.selection_bg })
-h('LspReferenceRead', { bg = colors.selection_bg })
-h('LspReferenceWrite', { bg = colors.selection_bg })
-h('LspReferenceTarget', { link = 'LspReferenceText' })
-h('LspInlayHint', { link = 'NonText' })
-h('LspCodeLens', { link = 'NonText' })
-h('LspCodeLensSeparator', { link = 'NonText' })
-h('LspSignatureActiveParameter', { link = 'LspReferenceText' })
-
--- Indentmini
-h('IndentLine', { link = 'Comment' })
-h('IndentLineCurrent', { link = 'Comment' })
-
--- GitSigns
-h('GitSignsAdd', { fg = colors.green })
-h('GitSignsChange', { fg = colors.orange })
-h('GitSignsDelete', { fg = colors.red })
-
--- Dashboard
-h('DashboardHeader', { fg = colors.green })
diff --git a/nvim/dot-config/nvim-final/init.lua b/nvim/dot-config/nvim-final/init.lua
deleted file mode 100644
index eb9074d..0000000
--- a/nvim/dot-config/nvim-final/init.lua
+++ /dev/null
@@ -1,719 +0,0 @@
-vim.loader.enable(true)
-
-vim.pack.add({
- "https://github.com/nvim-treesitter/nvim-treesitter",
-}, { confirm = false })
-
-vim.pack.add({
- "https://github.com/zenbones-theme/zenbones.nvim",
-}, { load = false })
-
-require("mo.zen").setup("seoulbones")
-
-require("vim._extui").enable({})
-vim.cmd([[ packadd! nvim.undotree ]])
-
-vim.cmd([[
-nnoremap - <Cmd>Ex<CR>
-
-nnoremap <expr> [e '<Cmd>.move --' . v:count1 . '<CR>'
-nnoremap <expr> ]e '<Cmd>.move +' . v:count1 . '<CR>'
-xnoremap <expr> [e ':move --' . v:count1 . '<CR>gv'
-xnoremap <expr> ]e ':move +' . (v:count1 + line('''>') - line('''<')) . '<CR>gv'
-
-function! Sort(type, ...) abort
- '[,']sort
- call setpos('.', getpos("''"))
-endfunction
-nnoremap gs m'<Cmd>set operatorfunc=Sort<CR>g@
-xnoremap gs :sort<CR>
-]])
-
-vim.keymap.set("n", "gK", "K")
-
-vim.o.expandtab = true
-vim.o.shiftwidth = 4
-vim.o.tabstop = 4
-
-vim.o.breakindent = true
--- Every wrapped line will continue visually indented (same amount of
--- space as the beginning of that line), thus preserving horizontal
--- blocks of text.
-
-vim.o.cinoptions = "l1,:0,g0,E-s,N-s,t0,(s,J1,j1"
--- The 'cinoptions' affect the way 'cindent' reindents lines in a C
--- program.
-
-vim.o.colorcolumn = "+1"
--- 'colorcolumn' is a comma-separated list of screen columns that are
--- highlighted with ColorColumn |hl-ColorColumn|. Useful to align
--- text. Will make screen redrawing slower.
--- The screen column can be an absolute number, or a number preceded with
--- '+' or '-', which is added to or subtracted from 'textwidth'.
--- When 'textwidth' is zero then the items with '-' and '+' are not used.
-
-vim.o.completeopt = "menu,menuone,preview,noselect,fuzzy"
--- 'completeopt' 'cot' string (default "menu,popup")
--- global or local to buffer |global-local|
--- A comma-separated list of options for Insert mode completion
--- |ins-completion|. The supported values are:
---
--- fuzzy Enable |fuzzy-matching| for completion candidates. This
--- allows for more flexible and intuitive matching, where
--- characters can be skipped and matches can be found even
--- if the exact sequence is not typed.
---
--- longest
--- When 'autocomplete' is not active, only the longest common
--- prefix of the matches is inserted. If the popup menu is
--- displayed, you can use CTRL-L to add more characters.
--- Whether case is ignored depends on the type of completion.
--- For buffer text the 'ignorecase' option applies.
---
--- When 'autocomplete' is active and no completion item is
--- selected, the longest common prefix of the matches is
--- inserted after the cursor. The prefix is taken either
--- from all displayed items or only from items in the current
--- buffer. The inserted text is highlighted with
--- |hl-PreInsert|, and the cursor position does not change
--- (similar to `"preinsert"`). Press CTRL-Y to accept.
--- See also |preinserted()|.
---
--- menu Use a popup menu to show the possible completions. The
--- menu is only shown when there is more than one match and
--- sufficient colors are available. |ins-completion-menu|
---
--- menuone Use the popup menu also when there is only one match.
--- Useful when there is additional information about the
--- match, e.g., what file it comes from.
---
--- nearest Matches are listed based on their proximity to the cursor
--- position, unlike the default behavior, which only
--- considers proximity for matches appearing below the
--- cursor. This applies only to matches from the current
--- buffer. No effect if "fuzzy" is present.
---
--- noinsert Do not insert any text for a match until the user selects
--- a match from the menu. Only works in combination with
--- "menu" or "menuone". No effect if "longest" is present.
---
--- noselect Same as "noinsert", except that no menu item is
--- pre-selected. If both "noinsert" and "noselect" are
--- present, "noselect" takes precedence. This is enabled
--- automatically when 'autocomplete' is on, unless
--- "preinsert" is also enabled.
---
--- nosort Disable sorting of completion candidates based on fuzzy
--- scores when "fuzzy" is enabled. Candidates will appear
--- in their original order.
---
--- popup Show extra information about the currently selected
--- completion in a popup window. Only works in combination
--- with "menu" or "menuone". Overrides "preview".
---
--- preinsert
--- Inserts the text of the first completion candidate beyond
--- the current leader, highlighted with |hl-PreInsert|.
--- The cursor does not move.
--- Requires "fuzzy" to be unset, and either "menuone" in
--- 'completeopt' or 'autocomplete' enabled. When
--- 'autocomplete' is enabled, this does not work if
--- 'ignorecase' is set without 'infercase'.
--- See also |preinserted()|.
---
--- preview Show extra information about the currently selected
--- completion in the preview window. Only works in
--- combination with "menu" or "menuone".
---
--- Only "fuzzy", "longest", "popup", "preinsert" and "preview" have an
--- effect when 'autocomplete' is enabled.
---
--- This option does not apply to |cmdline-completion|. See 'wildoptions'
--- for that.
-vim.opt.cpoptions:remove("~")
--- 'cpoptions' 'cpo' string (default "aABceFs_")
--- global
--- A sequence of single character flags. When a character is present
--- this indicates Vi-compatible behavior. This is used for things where
--- not being Vi-compatible is mostly or sometimes preferred.
--- 'cpoptions' stands for "compatible-options".
--- Commas can be added for readability.
--- To avoid problems with flags that are added in the future, use the
--- "+=" and "-=" feature of ":set" |add-option-flags|.
-vim.o.cursorline = true
-vim.o.cursorlineopt = "number"
-vim.o.foldlevelstart = 99
--- 'foldlevelstart' 'fdls' number (default -1)
--- global
--- Sets 'foldlevel' when starting to edit another buffer in a window.
--- Useful to always start editing with all folds closed (value zero),
--- some folds closed (one) or no folds closed (99).
--- This is done before reading any modeline, thus a setting in a modeline
--- overrules this option. Starting to edit a file for |diff-mode| also
--- ignores this option and closes all folds.
--- It is also done before BufReadPre autocommands, to allow an autocmd to
--- overrule the 'foldlevel' value for specific files.
--- When the value is negative, it is not used.
-vim.o.foldtext = ""
--- 'foldtext' 'fdt' string (default "foldtext()")
--- local to window
--- An expression which is used to specify the text displayed for a closed
--- fold. The context is set to the script where 'foldexpr' was set,
--- script-local items can be accessed. See |fold-foldtext| for the
--- usage.
---
--- The expression will be evaluated in the |sandbox| if set from a
--- modeline, see |sandbox-option|.
--- This option cannot be set in a modeline when 'modelineexpr' is off.
---
--- It is not allowed to change text or jump to another window while
--- evaluating 'foldtext' |textlock|.
---
--- When set to an empty string, foldtext is disabled, and the line
--- is displayed normally with highlighting and no line wrapping.
-vim.o.ignorecase = true
--- 'ignorecase' 'ic' boolean (default off)
--- global
--- Ignore case in search patterns, |cmdline-completion|, when
--- searching in the tags file, |expr-==| and for Insert-mode completion
--- |ins-completion|.
--- Also see 'smartcase' and 'tagcase'.
--- Can be overruled by using "\c" or "\C" in the pattern, see
--- |/ignorecase|.
-vim.o.smartcase = true
--- Override the 'ignorecase' option if the search pattern contains upper
--- case characters. Only used when the search pattern is typed and
--- 'ignorecase' option is on. Used for the commands "/", "?", "n", "N",
--- ":g" and ":s" and when filtering matches for the completion menu
--- |compl-states|.
--- Not used for "*", "#", "gd", tag search, etc. After "*" and "#" you
--- can make 'smartcase' used by doing a "/" command, recalling the search
--- pattern from history and hitting <Enter>.
-vim.o.jumpoptions = "view,clean"
--- 'jumpoptions' 'jop' string (default "clean")
--- global
--- List of words that change the behavior of the |jumplist|.
--- stack Make the jumplist behave like the tagstack.
--- Relative location of entries in the jumplist is
--- preserved at the cost of discarding subsequent entries
--- when navigating backwards in the jumplist and then
--- jumping to a location. |jumplist-stack|
---
--- view When moving through the jumplist, |changelist|,
--- |alternate-file|, using |mark-motions| or when popping
--- the |tagstack| try to restore the |mark-view| in which
--- the action occurred.
---
--- clean Remove unloaded buffers from the jumplist.
--- EXPERIMENTAL: this flag may change in the future.
-vim.o.linebreak = true
--- 'linebreak' 'lbr' boolean (default off)
--- local to window
--- If on, Vim will wrap long lines at a character in 'breakat' rather
--- than at the last character that fits on the screen. Unlike
--- 'wrapmargin' and 'textwidth', this does not insert <EOL>s in the file,
--- it only affects the way the file is displayed, not its contents.
--- If 'breakindent' is set, line is visually indented. Then, the value
--- of 'showbreak' is used to put in front of wrapped lines. This option
--- is not used when the 'wrap' option is off.
--- Note that <Tab> characters after an <EOL> are mostly not displayed
--- with the right amount of white space.
-vim.o.list = true
--- 'list' boolean (default off)
--- local to window
--- List mode: By default, show tabs as ">", trailing spaces as "-", and
--- non-breakable space characters as "+". Useful to see the difference
--- between tabs and spaces and for trailing blanks. Further changed by
--- the 'listchars' option.
---
--- When 'listchars' does not contain "tab" field, tabs are shown as "^I"
--- or "<09>", like how unprintable characters are displayed.
---
--- The cursor is displayed at the start of the space a Tab character
--- occupies, not at the end as usual in Normal mode. To get this cursor
--- position while displaying Tabs with spaces, use: >vim
--- set list lcs=tab:\ \
--- <
--- Note that list mode will also affect formatting (set with 'textwidth'
--- or 'wrapmargin') when 'cpoptions' includes 'L'. See 'listchars' for
--- changing the way tabs are displayed.
-vim.opt.listchars:append("precedes:<", "extends:>")
--- 'listchars' 'lcs' string (default "tab:> ,trail:-,nbsp:+")
--- global or local to window |global-local|
--- Strings to use in 'list' mode and for the |:list| command. It is a
--- comma-separated list of string settings. *E1511*
---
--- *lcs-eol*
--- eol:c Character to show at the end of each line. When
--- omitted, there is no extra character at the end of the
--- line.
--- *lcs-tab*
--- tab:xy[z] Two or three characters to be used to show a tab.
--- The third character is optional.
---
--- tab:xy The 'x' is always used, then 'y' as many times as will
--- fit. Thus "tab:>-" displays: >
--- >
--- >-
--- >--
--- etc.
--- <
--- tab:xyz The 'z' is always used, then 'x' is prepended, and
--- then 'y' is used as many times as will fit. Thus
--- "tab:<->" displays: >
--- >
--- <>
--- <->
--- <-->
--- etc.
--- <
--- When "tab:" is omitted, a tab is shown as ^I.
--- *lcs-space*
--- space:c Character to show for a space. When omitted, spaces
--- are left blank.
--- *lcs-multispace*
--- multispace:c...
--- One or more characters to use cyclically to show for
--- multiple consecutive spaces. Overrides the "space"
--- setting, except for single spaces. When omitted, the
--- "space" setting is used. For example,
--- `:set listchars=multispace:---+` shows ten consecutive
--- spaces as: >
--- ---+---+--
--- <
--- *lcs-lead*
--- lead:c Character to show for leading spaces. When omitted,
--- leading spaces are blank. Overrides the "space" and
--- "multispace" settings for leading spaces. You can
--- combine it with "tab:", for example: >vim
--- set listchars+=tab:>-,lead:.
--- <
--- *lcs-leadmultispace*
--- leadmultispace:c...
--- Like the |lcs-multispace| value, but for leading
--- spaces only. Also overrides |lcs-lead| for leading
--- multiple spaces.
--- `:set listchars=leadmultispace:---+` shows ten
--- consecutive leading spaces as: >
--- ---+---+--XXX
--- <
--- Where "XXX" denotes the first non-blank characters in
--- the line.
--- *lcs-trail*
--- trail:c Character to show for trailing spaces. When omitted,
--- trailing spaces are blank. Overrides the "space" and
--- "multispace" settings for trailing spaces.
--- *lcs-extends*
--- extends:c Character to show in the last column, when 'wrap' is
--- off and the line continues beyond the right of the
--- screen.
--- *lcs-precedes*
--- precedes:c Character to show in the first visible column of the
--- physical line, when there is text preceding the
--- character visible in the first column.
--- *lcs-conceal*
--- conceal:c Character to show in place of concealed text, when
--- 'conceallevel' is set to 1. A space when omitted.
--- *lcs-nbsp*
--- nbsp:c Character to show for a non-breakable space character
--- (0xA0 (160 decimal) and U+202F). Left blank when
--- omitted.
---
--- The characters ':' and ',' should not be used. UTF-8 characters can
--- be used. All characters must be single width. *E1512*
---
--- Each character can be specified as hex: >vim
--- set listchars=eol:\\x24
--- set listchars=eol:\\u21b5
--- set listchars=eol:\\U000021b5
--- < Note that a double backslash is used. The number of hex characters
--- must be exactly 2 for \\x, 4 for \\u and 8 for \\U.
---
--- Examples: >vim
--- set lcs=tab:>-,trail:-
--- set lcs=tab:>-,eol:<,nbsp:%
--- set lcs=extends:>,precedes:<
--- < |hl-NonText| highlighting will be used for "eol", "extends" and
--- "precedes". |hl-Whitespace| for "nbsp", "space", "tab", "multispace",
--- "lead" and "trail".
-vim.o.number = true
-vim.o.pumheight = 10
--- 'pumheight' 'ph' number (default 0)
--- global
--- Maximum number of items to show in the popup menu
--- (|ins-completion-menu|). Zero means "use available screen space".
-vim.o.scrolloff = 2
--- 'scrolloff' 'so' number (default 0)
--- global or local to window |global-local|
--- Minimal number of screen lines to keep above and below the cursor.
--- This will make some context visible around where you are working. If
--- you set it to a very large value (999) the cursor line will always be
--- in the middle of the window (except at the start or end of the file or
--- when long lines wrap).
--- After using the local value, go back the global value with one of
--- these two: >vim
--- setlocal scrolloff<
--- setlocal scrolloff=-1
--- < For scrolling horizontally see 'sidescrolloff'.
-vim.o.shada =
- "'100,<50,s10,:100,/100,h,r/tmp/,r/private/,rfugitive:,rzipfile:,rterm:"
--- 'shada' 'sd' string (default for
--- Win32: !,'100,<50,s10,h,rA:,rB:
--- others: !,'100,<50,s10,h)
--- global
--- When non-empty, the shada file is read upon startup and written
--- when exiting Vim (see |shada-file|). The string should be a comma-
--- separated list of parameters, each consisting of a single character
--- identifying the particular parameter, followed by a number or string
--- which specifies the value of that parameter. If a particular
--- character is left out, then the default value is used for that
--- parameter. The following is a list of the identifying characters and
--- the effect of their value.
--- CHAR VALUE ~
--- *shada-!*
--- ! When included, save and restore global variables that start
--- with an uppercase letter, and don't contain a lowercase
--- letter. Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
--- and "_K_L_M" are not. Nested List and Dict items may not be
--- read back correctly, you end up with an empty item.
--- *shada-quote*
--- " Maximum number of lines saved for each register. Old name of
--- the '<' item, with the disadvantage that you need to put a
--- backslash before the ", otherwise it will be recognized as the
--- start of a comment!
--- *shada-%*
--- % When included, save and restore the buffer list. If Vim is
--- started with a file name argument, the buffer list is not
--- restored. If Vim is started without a file name argument, the
--- buffer list is restored from the shada file. Quickfix
--- ('buftype'), unlisted ('buflisted'), unnamed and buffers on
--- removable media (|shada-r|) are not saved.
--- When followed by a number, the number specifies the maximum
--- number of buffers that are stored. Without a number all
--- buffers are stored.
--- *shada-'*
--- ' Maximum number of previously edited files for which the marks
--- are remembered. This parameter must always be included when
--- 'shada' is non-empty.
--- If non-zero, then the |jumplist| and the |changelist| are also
--- stored in the shada file.
--- *shada-/*
--- / Maximum number of items in the search pattern history to be
--- saved. If non-zero, then the previous search and substitute
--- patterns are also saved. When not included, the value of
--- 'history' is used.
--- *shada-:*
--- : Maximum number of items in the command-line history to be
--- saved. When not included, the value of 'history' is used.
--- *shada-<*
--- < Maximum number of lines saved for each register. If zero then
--- registers are not saved. When not included, all lines are
--- saved. '"' is the old name for this item.
--- Also see the 's' item below: limit specified in KiB.
--- *shada-@*
--- @ Maximum number of items in the input-line history to be
--- saved. When not included, the value of 'history' is used.
--- *shada-c*
--- c Dummy option, kept for compatibility reasons. Has no actual
--- effect: ShaDa always uses UTF-8 and 'encoding' value is fixed
--- to UTF-8 as well.
--- *shada-f*
--- f Whether file marks need to be stored. If zero, file marks ('0
--- to '9, 'A to 'Z) are not stored. When not present or when
--- non-zero, they are all stored. '0 is used for the current
--- cursor position (when exiting or when doing |:wshada|).
--- *shada-h*
--- h Disable the effect of 'hlsearch' when loading the shada
--- file. When not included, it depends on whether ":nohlsearch"
--- has been used since the last search command.
--- *shada-n*
--- n Name of the shada file. The name must immediately follow
--- the 'n'. Must be at the end of the option! If the
--- 'shadafile' option is set, that file name overrides the one
--- given here with 'shada'. Environment variables are
--- expanded when opening the file, not when setting the option.
--- *shada-r*
--- r Removable media. The argument is a string (up to the next
--- ','). This parameter can be given several times. Each
--- specifies the start of a path for which no marks will be
--- stored. This is to avoid removable media. For Windows you
--- could use "ra:,rb:". You can also use it for temp files,
--- e.g., for Unix: "r/tmp". Case is ignored.
--- *shada-s*
--- s Maximum size of an item contents in KiB. If zero then nothing
--- is saved. Unlike Vim this applies to all items, except for
--- the buffer list and header. Full item size is off by three
--- unsigned integers: with `s10` maximum item size may be 1 byte
--- (type: 7-bit integer) + 9 bytes (timestamp: up to 64-bit
--- integer) + 3 bytes (item size: up to 16-bit integer because
--- 2^8 < 10240 < 2^16) + 10240 bytes (requested maximum item
--- contents size) = 10253 bytes.
---
--- Example: >vim
--- set shada='50,<1000,s100,:0,n~/nvim/shada
--- <
--- '50 Marks will be remembered for the last 50 files you
--- edited.
--- <1000 Contents of registers (up to 1000 lines each) will be
--- remembered.
--- s100 Items with contents occupying more then 100 KiB are
--- skipped.
--- :0 Command-line history will not be saved.
--- n~/nvim/shada The name of the file to use is "~/nvim/shada".
--- no / Since '/' is not specified, the default will be used,
--- that is, save all of the search history, and also the
--- previous search and substitute patterns.
--- no % The buffer list will not be saved nor read back.
--- no h 'hlsearch' highlighting will be restored.
---
--- When setting 'shada' from an empty value you can use |:rshada| to
--- load the contents of the file, this is not done automatically.
---
--- This option cannot be set from a |modeline| or in the |sandbox|, for
--- security reasons.
-vim.o.sidescrolloff = 5
--- 'sidescrolloff' 'siso' number (default 0)
--- global or local to window |global-local|
--- The minimal number of screen columns to keep to the left and to the
--- right of the cursor if 'nowrap' is set. Setting this option to a
--- value greater than 0 while having 'sidescroll' also at a non-zero
--- value makes some context visible in the line you are scrolling in
--- horizontally (except at beginning of the line). Setting this option
--- to a large value (like 999) has the effect of keeping the cursor
--- horizontally centered in the window, as long as one does not come too
--- close to the beginning of the line.
--- After using the local value, go back the global value with one of
--- these two: >vim
--- setlocal sidescrolloff<
--- setlocal sidescrolloff=-1
--- <
--- Example: Try this together with 'sidescroll' and 'listchars' as in the
--- following example to never allow the cursor to move onto the
--- "extends" character: >vim
---
--- set nowrap sidescroll=1 listchars=extends:>,precedes:<
--- set sidescrolloff=1
--- <
-vim.o.smartcase = true
--- 'smartcase' 'scs' boolean (default off)
--- global
--- Override the 'ignorecase' option if the search pattern contains upper
--- case characters. Only used when the search pattern is typed and
--- 'ignorecase' option is on. Used for the commands "/", "?", "n", "N",
--- ":g" and ":s" and when filtering matches for the completion menu
--- |compl-states|.
--- Not used for "*", "#", "gd", tag search, etc. After "*" and "#" you
--- can make 'smartcase' used by doing a "/" command, recalling the search
--- pattern from history and hitting <Enter>.
-vim.o.smoothscroll = true
--- 'smoothscroll' 'sms' boolean (default off)
--- local to window
--- Scrolling works with screen lines. When 'wrap' is set and the first
--- line in the window wraps part of it may not be visible, as if it is
--- above the window. "<<<" is displayed at the start of the first line,
--- highlighted with |hl-NonText|.
--- You may also want to add "lastline" to the 'display' option to show as
--- much of the last line as possible.
--- NOTE: partly implemented, doesn't work yet for |gj| and |gk|.
-vim.o.splitright = true
--- 'splitright' 'spr' boolean (default off)
--- global
--- When on, splitting a window will put the new window right of the
--- current one. |:vsplit|
-vim.o.statuscolumn = "%s%=%l%{%&nu||&rnu?'%#WinSeparator#│':''%}"
--- 'statuscolumn' 'stc' string (default "")
--- local to window
--- When non-empty, this option determines the content of the area to the
--- side of a window, normally containing the fold, sign and number columns.
--- The format of this option is like that of 'statusline'.
---
--- Some of the items from the 'statusline' format are different for
--- 'statuscolumn':
---
--- %l line number column for currently drawn line
--- %s sign column for currently drawn line
--- %C fold column for currently drawn line
---
--- The 'statuscolumn' width follows that of the default columns and
--- adapts to the 'numberwidth', 'signcolumn' and 'foldcolumn' option values
--- (regardless of whether the sign and fold items are present).
--- Additionally, the 'statuscolumn' grows with the size of the evaluated
--- format string, up to a point (following the maximum size of the default
--- fold, sign and number columns). Shrinking only happens when the number
--- of lines in a buffer changes, or the 'statuscolumn' option is set.
---
--- The |v:lnum| variable holds the line number to be drawn.
--- The |v:relnum| variable holds the relative line number to be drawn.
--- The |v:virtnum| variable is negative when drawing virtual lines, zero
--- when drawing the actual buffer line, and positive when
--- drawing the wrapped part of a buffer line.
---
--- When using |v:relnum|, keep in mind that cursor movement by itself will
--- not cause the 'statuscolumn' to update unless 'relativenumber' is set.
---
--- NOTE: The %@ click execute function item is supported as well but the
--- specified function will be the same for each row in the same column.
--- It cannot be switched out through a dynamic 'statuscolumn' format, the
--- handler should be written with this in mind.
---
--- Examples: >vim
--- " Line number with bar separator and click handlers:
--- set statuscolumn=%@SignCb@%s%=%T%@NumCb@%l│%T
---
--- " Line numbers in hexadecimal for non wrapped part of lines:
--- let &stc='%=%{v:virtnum>0?"":printf("%x",v:lnum)} '
---
--- " Human readable line numbers with thousands separator:
--- let &stc='%{substitute(v:lnum,"\\d\\zs\\ze\\'
--- . '%(\\d\\d\\d\\)\\+$",",","g")}'
---
--- " Both relative and absolute line numbers with different
--- " highlighting for odd and even relative numbers:
--- let &stc='%#NonText#%{&nu?v:lnum:""}' .
--- '%=%{&rnu&&(v:lnum%2)?"\ ".v:relnum:""}' .
--- '%#LineNr#%{&rnu&&!(v:lnum%2)?"\ ".v:relnum:""}'
---
--- < WARNING: this expression is evaluated for each screen line so defining
--- an expensive expression can negatively affect render performance.
---
-vim.o.tagcase = "match"
--- 'tagcase' 'tc' string (default "followic")
--- global or local to buffer |global-local|
--- This option specifies how case is handled when searching the tags
--- file:
--- followic Follow the 'ignorecase' option
--- followscs Follow the 'smartcase' and 'ignorecase' options
--- ignore Ignore case
--- match Match case
--- smart Ignore case unless an upper case letter is used
-vim.o.title = true
--- 'title' boolean (default off)
--- global
--- When on, the title of the window will be set to the value of
--- 'titlestring' (if it is not empty), or to:
--- filename [+=-] (path) - Nvim
--- Where:
--- filename the name of the file being edited
--- - indicates the file cannot be modified, 'ma' off
--- + indicates the file was modified
--- = indicates the file is read-only
--- =+ indicates the file is read-only and modified
--- (path) is the path of the file being edited
--- - Nvim the server name |v:servername| or "Nvim"
-vim.o.undofile = true
--- 'undofile' 'udf' boolean (default off)
--- local to buffer
--- When on, Vim automatically saves undo history to an undo file when
--- writing a buffer to a file, and restores undo history from the same
--- file on buffer read.
--- The directory where the undo file is stored is specified by 'undodir'.
--- For more information about this feature see |undo-persistence|.
--- The undo file is not read when 'undoreload' causes the buffer from
--- before a reload to be saved for undo.
--- When 'undofile' is turned off the undo file is NOT deleted.
-vim.o.updatetime = 250
--- 'updatetime' 'ut' number (default 4000)
--- global
--- If this many milliseconds nothing is typed the swap file will be
--- written to disk (see |crash-recovery|). Also used for the
--- |CursorHold| autocommand event.
-vim.opt.wildignore:append({ "*.pyc", "__pycache__", "*~", "#*#", "*.o" })
--- 'wildignore' 'wig' string (default "")
--- global
--- A list of file patterns. A file that matches with one of these
--- patterns is ignored when expanding |wildcards|, completing file or
--- directory names, and influences the result of |expand()|, |glob()| and
--- |globpath()| unless a flag is passed to disable this.
--- The pattern is used like with |:autocmd|, see |autocmd-pattern|.
--- Also see 'suffixes'.
--- Example: >vim
--- set wildignore=*.o,*.obj
--- < The use of |:set+=| and |:set-=| is preferred when adding or removing
--- a pattern from the list. This avoids problems when a future version
--- uses another default.
-vim.o.wildignorecase = true
--- 'wildignorecase' 'wic' boolean (default off)
--- global
--- When set case is ignored when completing file names and directories.
--- Has no effect when 'fileignorecase' is set.
--- Does not apply when the shell is used to expand wildcards, which
--- happens when there are special characters.
-vim.o.wildmode = "longest:full,full"
--- 'wildmode' 'wim' string (default "full")
--- global
--- Completion mode used for the character specified with 'wildchar'.
--- This option is a comma-separated list of up to four parts,
--- corresponding to the first, second, third, and fourth presses of
--- 'wildchar'. Each part is a colon-separated list of completion
--- behaviors, which are applied simultaneously during that phase.
---
--- The possible behavior values are:
--- "" Only complete (insert) the first match. No further
--- matches are cycled or listed.
--- "full" Complete the next full match. Cycles through all
--- matches, returning to the original input after the
--- last match. If 'wildmenu' is enabled, it will be
--- shown.
--- "longest" Complete to the longest common substring. If this
--- doesn't extend the input, the next 'wildmode' part is
--- used.
--- "list" If multiple matches are found, list all of them.
--- "lastused" When completing buffer names, sort them by most
--- recently used (excluding the current buffer). Only
--- applies to buffer name completion.
--- "noselect" If 'wildmenu' is enabled, show the menu but do not
--- preselect the first item.
--- If only one match exists, it is completed fully, unless "noselect" is
--- specified.
---
--- Some useful combinations of colon-separated values:
--- "longest:full" Start with the longest common string and show
--- 'wildmenu' (if enabled). Does not cycle
--- through full matches.
--- "list:full" List all matches and complete first match.
--- "list:longest" List all matches and complete till the longest
--- common prefix.
--- "list:lastused" List all matches. When completing buffers,
--- sort them by most recently used (excluding the
--- current buffer).
--- "noselect:lastused" Do not preselect the first item in 'wildmenu'
--- if it is active. When completing buffers,
--- sort them by most recently used (excluding the
--- current buffer).
---
--- Examples: >vim
--- set wildmode=full
--- < Complete full match on every press (default behavior) >vim
--- set wildmode=longest,full
--- < First press: longest common substring
--- Second press: cycle through full matches >vim
--- set wildmode=list:full
--- < First press: list all matches and complete the first one >vim
--- set wildmode=list,full
--- < First press: list matches only
--- Second press: complete full matches >vim
--- set wildmode=longest,list
--- < First press: longest common substring
--- Second press: list all matches >vim
--- set wildmode=noselect:full
--- < First press: show 'wildmenu' without completing or selecting
--- Second press: cycle full matches >vim
--- set wildmode=noselect:lastused,full
--- < Same as above, but buffer matches are sorted by time last used
--- More info here: |cmdline-completion|.
-vim.o.winborder = "none"
--- 'winborder' string (default "")
--- global
--- Defines the default border style of floating windows. The default value
--- is empty, which is equivalent to "none". Valid values include:
--- - "bold": Bold line box.
--- - "double": Double-line box.
--- - "none": No border.
--- - "rounded": Like "single", but with rounded corners ("╭" etc.).
--- - "shadow": Drop shadow effect, by blending with the background.
--- - "single": Single-line box.
--- - "solid": Adds padding by a single whitespace cell.
--- - custom: comma-separated list of exactly 8 characters in clockwise
--- order starting from topleft. Example: >lua
--- vim.o.winborder='+,-,+,|,+,-,+,|'
--- <
diff --git a/nvim/dot-config/nvim-final/lua/mo/zen.lua b/nvim/dot-config/nvim-final/lua/mo/zen.lua
deleted file mode 100644
index eb674ba..0000000
--- a/nvim/dot-config/nvim-final/lua/mo/zen.lua
+++ /dev/null
@@ -1,89 +0,0 @@
-local M = {}
-M.themes = {
- dark = {
- "seoulbones",
- "rosebones",
- "forestbones",
- "zenwritten",
- },
- light = {
- "seoulbones",
- "vimbones",
- "rosebones",
- "forestbones",
- },
-}
-M.current = {
- dark = 1,
- light = 1,
-}
-M.bg = "dark"
-
-M.cycle = function()
- M.current[M.bg] = M.current[M.bg] + 1
- if M.current[M.bg] > #M.themes[M.bg] then M.current[M.bg] = 1 end
- M.set()
-end
-
-M.set = function()
- vim.o.background = M.bg
- local theme = M.themes[M.bg][M.current[M.bg]]
- vim.print("Switching to " .. theme)
-
- vim.g[theme .. "_compat"] = 1
- vim.cmd.colorscheme(theme)
-
- -- make strings nonitalic
- local str_highlight =
- vim.api.nvim_get_hl(0, { name = "String", link = false })
- vim.api.nvim_set_hl(
- 0,
- "String",
- { fg = str_highlight.fg, italic = false, force = true }
- )
-
- -- make booleans nonitalic and bold
- local bool_highlight =
- vim.api.nvim_get_hl(0, { name = "Boolean", link = false })
- vim.api.nvim_set_hl(
- 0,
- "Boolean",
- { fg = bool_highlight.fg, italic = false, bold = true, force = true }
- )
-
- -- make normals in seoulbones darker
- if theme == "seoulbones" and M.bg == "dark" then
- local norm_highlight =
- vim.api.nvim_get_hl(0, { name = "Normal", link = false })
- vim.api.nvim_set_hl(
- 0,
- "Normal",
- { fg = norm_highlight.fg, bg = "#313131", force = true }
- )
- end
-end
-
-M.togglebg = function()
- M.bg = M.bg == "dark" and "light" or "dark"
- M.set()
-end
-
----@param theme string?
----@param bg "dark"|"light"|nil
-M.setup = function(theme, bg)
- vim.cmd("packadd zenbones.nvim")
- if bg then M.bg = bg end
- if theme then
- for i, th in ipairs(M.themes[M.bg]) do
- if th == theme then
- M.current[M.bg] = i
- break
- end
- end
- end
- M.set()
- vim.keymap.set("n", "<F3>", M.cycle, {})
- vim.keymap.set("n", "<F12>", M.togglebg, {})
-end
-
-return M
diff --git a/nvim/dot-config/nvim-final/nvim-pack-lock.json b/nvim/dot-config/nvim-final/nvim-pack-lock.json
deleted file mode 100644
index 506d313..0000000
--- a/nvim/dot-config/nvim-final/nvim-pack-lock.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "plugins": {
- "nvim-treesitter": {
- "rev": "300b906a9514d5e0ce02911d371445382fe35a31",
- "src": "https://github.com/nvim-treesitter/nvim-treesitter"
- },
- "zenbones.nvim": {
- "rev": "4635a3f46d1066975d1074cd9f61f93cb1e32f64",
- "src": "https://github.com/zenbones-theme/zenbones.nvim"
- }
- }
-} \ No newline at end of file
diff --git a/nvim/dot-config/nvim-final/plugin/autocommands.lua b/nvim/dot-config/nvim-final/plugin/autocommands.lua
deleted file mode 100644
index b64ac07..0000000
--- a/nvim/dot-config/nvim-final/plugin/autocommands.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-vim.api.nvim_create_autocmd("BufWritePre", {
- pattern = "*",
- callback = function(ev)
- vim.cmd('execute "normal! mz" | keeppatterns %s/\\v\\s+$//e | normal `z')
- end,
- desc = "Strip whitespace from file"
-})
diff --git a/nvim/dot-config/nvim-final/plugin/treesitter.lua b/nvim/dot-config/nvim-final/plugin/treesitter.lua
deleted file mode 100644
index 1fb4503..0000000
--- a/nvim/dot-config/nvim-final/plugin/treesitter.lua
+++ /dev/null
@@ -1,42 +0,0 @@
-local disabled = {}
-local ft_lang_map = {}
-
-vim.api.nvim_create_autocmd("FileType", {
- group = vim.api.nvim_create_augroup("treesitter_highlight_augroup", {clear = true}),
- callback = function(ev)
- local buf = ev.buf
- if vim.api.nvim_buf_is_loaded(buf) then
- local ft = vim.bo[buf].filetype
- if not disabled[ft] then
- if ft_lang_map[ft] then
- vim.treesitter.language.register(ft_lang_map[ft], ft)
- ft_lang_map[ft] = nil
- end
- local parser = vim.treesitter.get_parser(buf, nil, { error = false })
- if parser == nil then
- disabled[ft] = true
- else
- if not vim.treesitter.highlighter.active[buf] then
- vim.treesitter.highlighter.new(parser)
- end
- end
- end
- end
- --(when (vim.api.nvim_buf_is_loaded buf)
- -- (let [ft (. vim.bo buf :filetype)]
- -- (when (not (. disabled ft))
- -- (case (. ft-lang-map ft)
- -- lang (do
- -- (vim.treesitter.language.register lang ft)
- -- (tset ft-lang-map ft nil)))
- -- (case (vim.treesitter.get_parser buf nil {:error false})
- -- nil (tset disabled ft true)
- -- parser (do
- -- (when (not (. vim.treesitter.highlighter.active buf))
- -- (vim.treesitter.highlighter.new parser))
- -- (when (vim.treesitter.query.get ft :folds)
- -- (set vim.wo.foldmethod :expr)
- -- (set vim.wo.foldexpr "v:lua.vim.treesitter.foldexpr()")))))))))
-
- end
-})
diff --git a/nvim/dot-config/nvim-final/stylua.toml b/nvim/dot-config/nvim-final/stylua.toml
deleted file mode 100644
index 4ac5841..0000000
--- a/nvim/dot-config/nvim-final/stylua.toml
+++ /dev/null
@@ -1,12 +0,0 @@
-call_parentheses = "Always"
-collapse_simple_statement = "Always"
-column_width = 80
-indent_type = "Spaces"
-indent_width = 4
-line_endings = "Unix"
-quote_style = "AutoPreferDouble"
-space_after_function_names = "Never"
-syntax = "LuaJIT"
-
-[sort_requires]
-enabled = true