mirror of
https://oauth2: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@github.com/m1ngsama/chopsticks.git
synced 2026-06-26 05:44:38 +08:00
11 KiB
11 KiB
Changelog
Unreleased
Breaking
- Default keymap style is now
space:SPCis the command leader and,is reserved for filetype-local actions. Setlet g:chopsticks_keymap_style = 'classic'in${XDG_CONFIG_HOME:-~/.config}/chopsticks.vimto keep the old comma layout - In the default Space layout, Normal-mode
sis now the fastest EasyMotion over-window two-character jump. Useclfor nativessubstitute andccfor nativeSsubstitute - Git push and pull hotkeys are removed from both Space and classic layouts;
use
:Git push/:Git pullexplicitly for irreversible remote operations
Added
- Canonical QWERTY/CapsLock-friendly Space leader layout:
SPC SPC,SPC /,SPC ,,SPC w,SPC qx,SPC rr,SPC gs,SPC gl,SPC ca,SPC cr,SPC cf, andSPC ? - Native LSP motions in the default layout:
gd,gr,gI,gy,K,[d, and]d :ChopsticksTutorguided practice buffer for learning the final keymap:ChopsticksCheatSheetcommand, withSPC ?as the discoverable default- Dedicated modules for buffers, utilities, files, runner, quickfix, status, cheat sheet, and tutor
- Split test runner:
scripts/test.shnow dispatches toscripts/test-quick.shandscripts/test-vim.sh
Changed
- README, QUICKSTART, installer onboarding text, PR template, and demo tape now teach the Space layout first while keeping the legacy classic layout documented
SPC ?/,?cheat sheet output is generated from the active keymap style and profile, so minimal installs no longer display disabled features- Markdown actions now use localleader maps in the Space layout:
,mppreview and,mttable of contents SPC Uopens UndoTree,SPC ztoggles maximize,SPC bp/SPC bnmove between buffers, and quickfix/location-list actions live underSPC xtools.vimis now a compatibility placeholder; runtime behavior lives in smaller focused modules- CI/local smoke coverage now asserts Space defaults, classic compatibility, missing push/pull hotkeys, tutor and cheat-sheet content, runner behavior, large-file protection, and startup budget
Fixed
diffoptenhancements now degrade safely on macOS system Vim builds that report the required patch level but reject individual diff options- Installer system-tool reporting now still detects already-installed tools on Linux hosts where sudo is unavailable in non-interactive mode
2.2.0 — 2026-05-17
Added
~/.config/chopsticks.vimlocal pre-load config for profile and user choicesg:chopsticks_enable_markdown_previewto control Previm independentlyg:chopsticks_profilewithminimal,engineer, andfullprofiles.markdownlint.jsonaligned with the project's README/changelog style:ChopsticksStatusdiagnostic command — checks system tools, LSP servers, linters, formatters,aftoggle format-on-save (ALEfix_on_save),gLgit log graph (last 20 commits),gCFZF git commits search,,gBbuffer commits- Interactive installer profile selection for
minimal,engineer, andfull install.sh --profile=minimal|engineer|fullfor scripted profile selectioninstall.sh --dry-runto show the resolved profile/config path without writesinstall.sh --configure-onlyto update local profile config without reinstallingget.sh --dry-runfor safe bootstrap previews before clone/update/installCHOPSTICKS_DEST=/absolute/pathto test or install the bootstrap target elsewherescripts/test.shlocal test runner reused by GitHub Actionsscripts/test.sh quick,--help, andlistfor easier local test discovery
Fixed
- Built-in plugin guards for
gzip,logiPat,rrhelper, andspellfile_pluginare now set in bothg:-prefixed and unscoped forms — those four old-style runtime plugins checkloaded_X(nog:), so the previousg:loaded_Xlines did nothing. Saves ~270μs total at startup, mostly from gzip install.shinteractive menu and QUICKSTART now show,ff(current fuzzy-find binding) instead of the staleCtrl+pleft over from the native-first cleanup;.github/demo.tapeupdated to match (the binary GIF still showsCtrl+puntil someone regenerates it from a fresh fixture)- README badge and
install.shrecommend Vim 8.1+ instead of 8.0+ — the runtime conditionally relies on patches8.1.0360(diffopt) and8.1.1517(completeopt+=popup), so 8.0 users hit option errors ttimeoutlenis now 50ms wheng:is_tty(was 10ms unconditionally); fixes F-keys, arrow keys, and Alt-prefixes fragmenting on SSH where one-way latency exceeds 10ms. Local terminals keep the 10ms snappy defaultinstall.shno longer silentlyPlugClean!s user-added plugins from~/.vim/plugged; it now lists undeclared plugin directories first and asks before removing them (--yesskips the removal entirely)install.shPython tools now preferpipxandpip3 --useroverpip3 install --break-system-packages; the break-system path is gated behindCHOPSTICKS_ALLOW_BREAK_SYSTEM=1so PEP 668 distros are no longer silently pollutedg:loaded_logipattypo →g:loaded_logiPat— logiPat was loading fully (0.478ms wasted)get.shnow refuses to update an existing~/.vimgit repo unless its origin is chopsticks- Large file protection now stays active after filetype and syntax autocommands
g:ale_fix_on_save = 0in local config is now respected- Local config now respects absolute
XDG_CONFIG_HOMEinstead of hardcoding~/.config
Changed
install.sh"First steps inside Vim" block now leads with,?(cheat sheet) — the single best onboarding asset is now the first thing a new user sees after install, not the fourthset exrc/set secureare now opt-in viag:chopsticks_enable_exrc = 1; Vim no longer sources project-local.vimrc/.exrcfrom the working directory by default- Normal-mode
,F(reindent the entire file withgg=G) is now opt-in viag:chopsticks_enable_reindent_file = 1; visual-mode,F(reindent selection) stays as the default since it's bounded by the user's pick ,?cheat sheet is now profile-aware and hides LSP/ALE/preview/UndoTree keys when those features are disabled- Module reload/source paths now use
fnameescape()so installs in paths with spaces are handled correctly - CI now verifies path-safe module loading, the local config hook, and minimal-profile cheat sheet output
- Markdown now opens in quiet writing mode by default: no real-time markdownlint, no Marksman LSP, no spell noise, no conceal, no sign column, and no realtime preview
- Native
sis no longer shadowed by EasyMotion; use,Sfor the two-character jump ,wnow uses a normal:writeinstead of forced:write!- Swap files are enabled again and stored under
~/.vim/.swapfor crash recovery - Installer defaults are slimmer: only core search tools stay selected by default; language and lint suites are opt-in
:ChopsticksStatusnow respects disabled LSP/lint profiles instead of reporting intentionally disabled tools as missing,svnow clears the load guard before sourcing$MYVIMRC- CI now verifies key plugin directories, Markdown quiet defaults, markdownlint, and an explicit startup-time threshold
- Installer plugin validation now checks every plugin required by the active profile
- The optional tool menu now hides LSP/lint suites in
minimaland selects Marksman by default infull - tmux integration is written as a managed block so future installer runs can update it without appending duplicate bindings
- Installer cleanup now restores the cursor after interrupted checkbox menus
- Bootstrap dry-run now refuses unrelated existing git repos before any writes
- CI now shares shell, installer, bootstrap, docs, and Vim smoke checks with the local test runner
- CI now checks the test runner help and group-list commands
- Skip 2 more built-in plugins: openPlugin, manpager (10 → 12 total)
- Remove deprecated
set ttyfast(no-op since Vim 8) - Add
grepprg=rg --vimgrep—:grepnow uses ripgrep + quickfix - Add
diffoptwith histogram algorithm and indent-heuristic - Consolidate FZF Rg/RgWord/GFiles commands (DRY refactor)
- vim-tmux-navigator: conditional load (only inside tmux), fallback
Ctrl+hjklmappings outside - Add
Ctrl+hjklwindow navigation fallback when tmux-navigator not loaded
2.1.0 — 2025-04-22
Added
- Cheat sheet (
,?) — vertical sidebar, one key per line, section headers - Previm markdown preview restored (lazy-loaded,
,mp) :LspInstallServeradded to cheat sheet
Changed
- Plugin count: 25 (restored previm, dropped 5 bloat plugins)
- QUICKSTART updated — removed stale references, improved first-launch guidance
2.0.0 — 2025-04-21
Added
- Sidebar toggle (
,e/,E) — left-side netrw withtopleft vertical, winfixwidth, proper toggle - Enriched statusline — SLMode, SLGit, SLAle, SLFlags
- Toggle feedback — F2/F3/F4/F6/
,ssecho current state vim .layout — netrw left + Startify right (removed in later refactor)- Interactive tutorial (
:ChopsticksLearn— removed in later release)
Removed (Unix minimalism refactor)
- 565 lines of dead code and bloat
- 5 plugins: Goyo, Limelight, vim-obsession, indentLine, vim-unimpaired
modules/writing.vim— folded intolanguages.vimtutor/chopsticks.tutor— removed (269 lines)- Tab management keybindings (8 mappings), spell nav bindings (4 mappings)
- Dead functions: HasPaste(), CleanExtraSpaces(), ToggleNumber(), SynStack
- TTY welcome message,
,so,,ms,,shmappings
Changed
- CI plugin threshold lowered to 20
- README: hero layout with demo GIF, badges, architecture diagram
- vim-markdown settings absorbed from writing.vim into languages.vim
1.3.0 — 2025-04-20
Changed
- Startup: 39ms → 19ms (51% faster)
- Dropped vim-unimpaired for performance
- Runtime tuning across modules
1.2.0 — 2025-04-19
Added
- Hero README with demo GIF, CI badges
- GitHub Actions CI (startup test on macOS + Ubuntu, shellcheck)
- Issue/PR templates
Changed
- Documentation rewrite — clean, short, for engineers
1.1.0 — 2025-04-18
Added
- 12-module architecture (env → plugins → core → ui → editing → navigation → lsp → lint → git → writing → languages → tools)
- Zen mode (Goyo + Limelight)
- Run file (
,cr) with auto filetype detection - Smart search (SmartFiles, Rg, RgWord)
- EasyMotion, yank highlight, undo tree
- Robust installer (
get.sh) with preflight checks
Changed
.vimrcsplit into 12 self-contained modules- Comprehensive bug audit (14 fixes)
1.0.0 — 2025-04-16
Added
- Initial Vim configuration — migrated from Neovim
- vim-plug plugin manager
- vim-lsp + asyncomplete (pure VimScript LSP)
- ALE linting + format-on-save
- FZF fuzzy finder
- Fugitive + GitGutter
- Solarized colorscheme
- TTY detection and graceful degradation
- Platform installer (macOS, Debian, Arch, Fedora)