aboutsummaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAgeFilesLines
...
* docs: update copilot-instructions for new shell layoutLibravatar sommerfeld30 hours1-0/+40
| | | | | | Rewrite shell config section to reflect the zsh-only 3-file architecture (.zshenv, .zprofile, .zshrc). Remove references to deleted files (.profile, .bashrc, envrc, aliases, shinit).
* chore: delete obsolete shell config filesLibravatar sommerfeld30 hours6-394/+0
| | | | | | | | | | | | Remove files made redundant by the zsh-only rewrite: - home/.profile (POSIX login shell — replaced by .zprofile) - home/.bashrc (bash interactive — no longer needed) - home/.bash_logout (bash logout — no longer needed) - home/.config/sh/envrc (shared env vars — merged into .zprofile) - home/.config/sh/aliases (shared aliases — merged into .zshrc) - home/.config/sh/shinit (POSIX interactive init — merged into .zshrc) The inputrc file is kept for readline-based tools (python REPL, etc.).
* refactor: rewrite .zshrc as unified interactive configLibravatar sommerfeld30 hours1-127/+178
| | | | | | | | | | | | | | | | | | Merge aliases into .zshrc and fix multiple bugs: - Fix: remove duplicate zle application mode block (lines 110-115) - Fix: select-word-style called once (shell), was called twice (bash then shell) - Fix: remove contradictory no_complete_aliases/COMPLETE_ALIASES setopts - Fix: remove 'set zle_bracketed_paste' (wrong syntax, did nothing) - Remove: case $- guard (unnecessary — zsh only sources .zshrc interactively) - Remove: shinit sourcing (replaced by direct config in .zprofile/.zshrc) - Remove: safesource calls (direct source) - Remove: ZSH_AUTOSUGGEST_USE_ASYNC (deprecated, async is default) - Remove: run-help-sudo (system uses doas) - Remove: bash() wrapper function (no longer needed) - Remove: initial Up/Down bindings (immediately overridden by prefix search) - Organize into clearly labeled sections with comments - Consolidate compdef calls
* refactor: rewrite .zprofile as zsh login configLibravatar sommerfeld30 hours2-2/+133
| | | | | | | | | | | | | | | | | | Replace the symlink-to-.profile with a proper zsh-native .zprofile. Merges content from envrc into a single file. Changes: - Remove POSIX compat helpers (safesource, exists, ifexists) - Remove LESS_TERMCAP block (MANPAGER is nvim) - Remove deprecated MOZ_WEBRENDER, MOZ_X11_EGL, GPG_AGENT_INFO - Remove SENTRY_ACCESS_TOKEN, ENV export - Remove .zshrc dispatch (zsh handles this natively via ZDOTDIR) - Fix duplicate RUSTUP_HOME export - Fix work-envrc: was checking wrong file readability - Fix XAUTHORITY: also skip when over SSH - Use zsh idioms: typeset -U, $+commands, [[]] - Use $TTY for GPG_TTY (zsh sets this automatically) - Organize into clearly labeled sections with comments - Delete home/.zprofile (was symlink to .profile, now redundant)
* feat: add .zshenv bootstrap fileLibravatar sommerfeld30 hours1-0/+2
| | | | | Sets ZDOTDIR so zsh finds .zprofile and .zshrc in XDG_CONFIG_HOME/zsh instead of requiring files in $HOME.
* chore: remove shadafile=NONE optionLibravatar sommerfeld30 hours1-1/+0
| | | | Re-enable shada for persistent marks, registers, and command history.
* docs: document every option in options.luaLibravatar sommerfeld30 hours1-44/+61
| | | | | | Add inline comments explaining the intent and behavior of each setting, including non-obvious choices like shadafile=NONE, scrolloff=999, and the two-phase folding setup.
* chore: remove redundant vim.diagnostic.configLibravatar sommerfeld30 hours1-5/+0
| | | | Immediately overridden by tiny-inline-diagnostic setup in lsp.lua.
* chore: remove redundant Space-to-Nop mappingLibravatar sommerfeld30 hours1-2/+0
| | | | Has no effect when mapleader is already set to Space.
* chore: remove redundant vim.loader.enable()Libravatar sommerfeld30 hours1-2/+0
| | | | Bytecode caching is enabled by default in Neovim 0.12.
* chore: remove stale filetypes from close_with_q autocmdLibravatar sommerfeld30 hours1-3/+0
| | | | grug-far, spectre_panel, tsplayground are not installed plugins.
* fix: use native treesitter indentexpr instead of plugin APILibravatar sommerfeld30 hours1-1/+1
| | | | | Neovim 0.12 provides vim.treesitter.indentexpr() natively, replacing the nvim-treesitter plugin's indentexpr function.
* fix: wrap tblgen_lsp_server enable in pcallLibravatar sommerfeld30 hours1-1/+1
| | | | | Server binary may not be installed on all machines. Wrap in pcall to prevent startup errors when tblgen_lsp_server is unavailable.
* fix: use doas instead of sudo in DoasWrite commandLibravatar sommerfeld30 hours1-6/+6
| | | | | | System uses doas for privilege escalation. Renamed SudoWrite → DoasWrite and switched from sudo -p '' -S to doas -S with newline-terminated password input.
* fix: correct inlay_hint.is_enabled API for Neovim 0.12Libravatar sommerfeld30 hours1-1/+1
| | | | | Neovim 0.12 changed the signature from a table { bufnr = N } to a plain integer bufnr parameter.
* fix: use branch for blink.download (no semver tags)Libravatar sommerfeld30 hours1-1/+1
|
* feat: migrate from lazy.nvim to vim.packLibravatar sommerfeld30 hours13-1543/+1105
| | | | | | | | | | | | | | | | Replace lazy.nvim plugin manager with Neovim 0.12's native vim.pack API. All plugin config files rewritten from lazy.nvim spec tables to imperative require/setup format with explicit vim.keymap.set() calls. Key changes: - vim.pack.add() with ~53 plugins in init.lua - blink.cmp/pairs/download pinned to version tags (vim.version.range) - PackChanged autocmd for markdown-preview build hook - Ordered requires: colorscheme → ui → treesitter → completion → lsp → rest - Plugin setup guards (gitsigns, which-key, blink.cmp) handle deferred plugin/ file loading correctly Net reduction: ~438 lines across 13 files.
* chore: remove stale codecompanion source from blink.cmpLibravatar sommerfeld30 hours1-1/+0
|
* chore: remove explicit plenary.nvim specLibravatar sommerfeld30 hours1-1/+0
| | | | | Auto-loaded as dependency by neogit, gitlinker, gitsigns, and refactoring.nvim. Standalone spec was unnecessary.
* chore: remove auto-cmdheight.nvimLibravatar sommerfeld30 hours1-5/+0
| | | | | Marginal utility (auto-sizing cmdheight) for startup cost of a lazy=false plugin with empty opts.
* chore: remove dead neotest referencesLibravatar sommerfeld30 hours2-4/+0
| | | | | Neotest plugin was removed but its which-key group and close-with-q filetypes remained as dead config.
* chore: remove codecompanion.nvim and mcphub.nvimLibravatar sommerfeld30 hours1-53/+0
| | | | | Redundant with copilot.lua (inline completions via NES) and Copilot CLI (chat/agentic workflows outside the editor).
* feat: update overseer.nvim from v1.6.0 to v2Libravatar sommerfeld30 hours1-18/+21
| | | | | | | | | | | Remove version pin and migrate to v2 API: - run_template() → run_task() - prompt="never" → disallow_prompt=true - Shell template removed → vim.cmd("OverseerShell") - list_tasks recent_first removed → sort by task id This also resolves the vim.validate deprecation warning from checkhealth, which was fixed upstream in v2.0.0.
* fix: resolve which-key overlap and wrong desc in search.luaLibravatar sommerfeld30 hours1-3/+3
| | | | | | | | Remap live_grep from <localleader>g to <localleader>/ to avoid overlapping with git fzf commands (<localleader>gc, gb, gs, etc.) which caused a timeout delay on <localleader>g. Also fix buffers mapping desc that incorrectly said [G]rep.
* refactor: rename ts.lua to treesitter.luaLibravatar sommerfeld30 hours1-0/+0
| | | | | The name ts.lua is ambiguous (TypeScript vs treesitter). Use the full name for clarity.
* chore: delete dead config/utils.luaLibravatar sommerfeld30 hours1-29/+0
| | | | format_hunks is defined but never called anywhere.
* refactor: move LspAttach handler from autocmds.lua to plugins/lsp.luaLibravatar sommerfeld30 hours2-122/+138
| | | | | | The 120-line LspAttach handler (fzf-lua navigation, document highlighting, codelens, inlay hints) belongs with the LSP plugin configuration, not in generic autocmds. This puts all LSP behavior in one file.
* refactor: extract AI plugins to plugins/ai.luaLibravatar sommerfeld30 hours3-95/+97
| | | | | Move copilot.lua from completion.lua and codecompanion from plugins/init.lua into a dedicated ai.lua file. Both are AI-related, not completion.
* refactor: extract auto-session to plugins/session.luaLibravatar sommerfeld30 hours2-86/+84
| | | | | Move auto-session config (85 lines, with overseer and dap integration) from plugins/init.lua into a dedicated session.lua file.
* refactor: extract overseer to plugins/runner.luaLibravatar sommerfeld30 hours2-142/+144
| | | | | Move the overseer task runner config (140 lines, 13 keymaps) from the plugins/init.lua junk drawer into a dedicated runner.lua file.
* refactor: extract editing plugins to plugins/editing.luaLibravatar sommerfeld30 hours2-144/+146
| | | | | Move surround, guess-indent, various-textobjs, dial, and refactoring from the 521-line plugins/init.lua junk drawer into a dedicated editing.lua file.
* refactor: move core config from after/plugin/ and cfg/ to lua/config/Libravatar sommerfeld30 hours5-1/+4
| | | | | | | | | | | | 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.
* refactor: consolidate LspAttach handlers into single callbackLibravatar sommerfeld30 hours2-65/+40
| | | | | | | | Two separate LspAttach handlers existed in autocmds.lua and search.lua, fragmenting LSP behavior across files. Merge fzf-lua LSP navigation mappings into the main LspAttach handler in autocmds.lua using lazy require('fzf-lua'). This makes all LSP-on-attach behavior visible in one place.
* refactor: flatten custom/plugins/ to plugins/Libravatar sommerfeld30 hours9-1/+1
| | | | | | Rename lua/custom/plugins/ to lua/plugins/ following the standard lazy.nvim convention. The extra custom/ nesting added no value. Update import path in init.lua accordingly.
* refactor: remove bufresize.nvim pluginLibravatar sommerfeld30 hours1-5/+0
| | | | | | Vim's built-in equalalways option (default: true) already equalizes windows on resize. The plugin's proportional resizing logic provides negligible benefit.
* refactor: remove hover.nvim pluginLibravatar sommerfeld30 hours1-45/+0
| | | | | | Duplicates built-in K (vim.lsp.buf.hover) with marginal extras (man, dictionary, gh, fold_preview). Three keymaps for one plugin that mostly duplicates a 0.12 built-in default is low value.
* chore: remove synmaxcol, showmatch, and static cmdheightLibravatar sommerfeld30 hours1-3/+0
| | | | | | - synmaxcol=500: irrelevant with treesitter handling all highlighting - showmatch=true: redundant with blink.pairs, causes annoying cursor jump - cmdheight=2: conflicts with auto-cmdheight.nvim which manages it dynamically
* chore: remove undocumented gitsigns internals and no-op highlightsLibravatar sommerfeld30 hours1-7/+0
| | | | | | Remove _threaded_diff and _refresh_staged_on_update (internal/undocumented options prefixed with _, may break on any update). Remove highlights block where all values were nil (just uses defaults, no-op).
* chore: remove commented-out rainbow-delimiters referenceLibravatar sommerfeld30 hours1-1/+0
|
* chore: remove commented-out nvim-treesitter-pairs dependencyLibravatar sommerfeld30 hours1-1/+0
| | | | | Plugin was disabled waiting for main branch support. Remove the dead comment; can be re-added from git history when ready.
* chore: remove commented-out debug configurationsLibravatar sommerfeld30 hours1-108/+0
| | | | | | Remove ~80 lines of commented-out GDB, LLDB, dap-ui, and dap-view configs. These were alternative configurations tried and abandoned. They can be recovered from git history if needed.
* fix: remove stale vim-sneak commentLibravatar sommerfeld30 hours1-1/+0
| | | | | | Comment referenced vim-sneak plugin which is not installed. The semicolon mapping is active and has been since the plugin was removed. Also had a "to to" typo.
* fix: remove redundant config function from refactoring.nvimLibravatar sommerfeld30 hours1-4/+0
| | | | | | Both opts = {} and config calling setup({}) existed. The config function overrides opts entirely, making opts a no-op. Keep only opts = {} since lazy.nvim calls setup() automatically with opts.
* fix: use named mode field for treewalker lazy.nvim key specsLibravatar sommerfeld30 hours1-4/+4
| | | | | | The { "n", "v" } mode table was a 3rd positional element, silently ignored by lazy.nvim. Movement keys only worked in normal mode, not visual. Use named mode field to enable both modes.
* fix: use named fields for codecompanion lazy.nvim key specsLibravatar sommerfeld30 hours1-6/+12
| | | | | | | Mode and opts were positional args (positions 3+4) but lazy.nvim only uses positions 1 (lhs) and 2 (rhs). The mode and desc were silently ignored, making all mappings normal-mode only with no descriptions. Use named fields instead. Also fix [C]chat typo to [C]hat.
* fix: disambiguate duplicate localleader-gc keymapsLibravatar sommerfeld30 hours1-0/+2
| | | | | | Both git_bcommits and git_bcommits_range were bound to <localleader>gc, with the second silently shadowing the first. Split by mode: normal for buffer commits, visual for range commits.
* fix: correct undefined FzfLua global to lowercase fzfluaLibravatar sommerfeld30 hours1-1/+1
| | | | | | FzfLua.actions.file_split references undefined global. The local variable is named fzflua (lowercase). This caused a runtime error when pressing ctrl-x in any fzf-lua file picker.
* style(nvim): replace verbose kickstart comments with concise onesLibravatar sommerfeld30 hours1-9/+2
| | | | | Multi-line tutorial comments explaining CursorHold and inlay hints are unnecessary for the config author. Replaced with one-liners.
* style(nvim): use opt alias consistently and trim trailing blank lineLibravatar sommerfeld30 hours1-2/+1
| | | | | Replace vim.o.mouse with opt.mouse to match the alias defined at the top of the file. Remove extra blank line at EOF.
* refactor(nvim): make P() debug helper explicitly globalLibravatar sommerfeld30 hours1-1/+1
| | | | | Use _G.P instead of implicit global function declaration to make the intent clear and satisfy linters.