67 Commits

Author SHA1 Message Date
xfy
4366e3d696 Add comprehensive Chinese comments and uniform 4-space indentation across all config files
- Document every Lua module with detailed Chinese comments explaining
  purpose, design decisions, and key implementation details
- Standardize indentation from tabs to 4 spaces for consistency
- Add .claude/ to .gitignore

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 15:36:55 +08:00
xfy
c5a31a26f6 Add grug-far.nvim for search and replace
- Add MagicDuck/grug-far.nvim plugin with lazy loading
- Bind to <leader>sr in normal and visual mode
- Auto-filter by current file extension when opening

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 15:12:04 +08:00
xfy
2c524fc30d Refactor lazy loading: unify treesitter/LSP deferral via lazy.on_event
- Move VimEnter autocmd from init.lua to pack.lua using lazy.on_event
- Convert treesitter.lua to modular M.setup() pattern
- Simplify lsp.lua: remove redundant comment, inline diagnostic config
- Reorganize pack.lua: group finders, add fugitive keymaps, adjust header indent

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 15:07:01 +08:00
xfy
e0441656b4 Extract git/pick from pack.lua into standalone modules and remove moonfly theme
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 14:57:47 +08:00
xfy
7f754cd8ba Move LSP config from lazy.on_event to direct execution
init.lua now requires lsp.lua on VimEnter, so the file no longer
needs its own lazy.on_event wrapper. This simplifies the code and
keeps the delay-loading decision in one place.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 14:44:07 +08:00
xfy
5d40b6c245 Defer heavy modules and disable built-in plugins to reduce startup time
- Disable unused built-in plugins at top of init.lua

- Defer treesitter and lsp to VimEnter

- Use packadd for on-demand plugin loading (conform, lspconfig, fugitive)

- Defer clipboard initialization to avoid provider check blocking

- Wrap LSP/diagnostic keymaps in functions to defer module loading

- Defer mini.icons setup to VimEnter

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 14:39:12 +08:00
xfy
f0c6f0a1e7 Center-align mini.starter footer text
Extract header_lines and compute max_header_width so the footer
can be padded to match the header's visual centering.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 14:14:11 +08:00
xfy
717df254c6 Add mini.starter dashboard and optimize lazy loading
- Add startup time tracking with hrtime in init.lua
- Configure mini.starter with Neovim ASCII logo and plugin stats
- Switch mini.notify to load on first vim.notify call
- Switch mini.cmdline to load on first ':' keypress
- Add mini.icons eager loading
- Remove x-mode 'p' keymap (handled by mini.operators)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 14:11:25 +08:00
xfy
b9f2af6bd5 Switch to catppuccin colorscheme
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 13:38:45 +08:00
xfy
8138b7c761 Update Cw keymaps 2026-05-28 13:26:53 +08:00
xfy
15a2ad9b20 Add hunk preview, blame, and git keymaps; switch diagnostic to loclist
- Replace mini.extra diagnostic picker with vim.diagnostic.setloclist
- Add get_cursor_hunk() helper for mini.diff
- Add preview_hunk() with floating diff window
- Add blame_line() via git blame porcelain
- Add keymaps: <leader>ghp, <leader>ghb, <leader>gB, <leader>gD

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 13:09:27 +08:00
xfy
61f2c89362 Add nil guard to lazy.load and custom mini.diff mappings
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 11:43:06 +08:00
xfy
7c5529c400 Unify indentation to tabs and add keymaps/pickers
- Convert 4-space indentation to tabs across all lua files
- Add <C-s> save file and <C-c> copy whole file keymaps
- Add mini.pick keymaps: <leader>fa (find all), <leader>fh (help),
  <leader>fo (oldfiles), <leader>fz (buffer lines)
- Change <leader>fw to grep_live, <leader>vh to <leader>fh
- Fix conform lazy-loading buffer reference

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 11:36:26 +08:00
xfy
a282113ccf Add conform.nvim for auto-formatting
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 11:22:05 +08:00
xfy
861fd3c03c Add moonfly colorscheme
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 11:12:01 +08:00
xfy
077ec08dc1 Add lazy loading for all plugins
- Create lua/lazy.lua helper with load/on_event/on_keys
- Rewrite pack.lua: lazy load all mini modules + fugitive
- Defer treesitter.install() with vim.defer_fn
- Defer mason + LSP config to VimEnter
- Move mini.pick keymaps from keymaps.lua to pack.lua
- Keep mini.notify and mini.cmdline eager (startup needed)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 11:04:08 +08:00
xfy
a45929aff6 Initial Neovim config
- Add init.lua entry point
- Add lua/ modules: options, keymaps, autocmds, usercmds, pack, treesitter, lsp
- Add .gitignore
- Add nvim-pack-lock.json for plugin version locking

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 10:49:24 +08:00