mirror of
https://oauth2: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@github.com/m1ngsama/chopsticks.git
synced 2026-06-26 05:44:38 +08:00
249 lines
11 KiB
Markdown
249 lines
11 KiB
Markdown
# Changelog
|
|
|
|
## 3.0.0-beta.1 — 2026-05-23
|
|
|
|
### Breaking
|
|
|
|
- Default keymap style is now `space`: `SPC` is the command leader and `,`
|
|
is reserved for filetype-local actions. Set
|
|
`let g:chopsticks_keymap_style = 'classic'` in
|
|
`${XDG_CONFIG_HOME:-~/.config}/chopsticks.vim` to keep the old comma layout
|
|
- In the default Space layout, Normal-mode `s` is now the fastest
|
|
EasyMotion over-window two-character jump. Use `cl` for native `s`
|
|
substitute and `cc` for native `S` substitute
|
|
- Git push and pull hotkeys are removed from both Space and classic layouts;
|
|
use `:Git push` / `:Git pull` explicitly 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`, and `SPC ?`
|
|
- Native LSP motions in the default layout: `gd`, `gr`, `gI`, `gy`, `K`,
|
|
`[d`, and `]d`
|
|
- `:ChopsticksTutor` guided practice buffer for learning the final keymap
|
|
- `:ChopsticksCheatSheet` command, with `SPC ?` as the discoverable default
|
|
- `:ChopsticksHelp` and native `:help chopsticks` documentation for in-editor
|
|
support without a separate wiki
|
|
- `:ChopsticksConfig` and `:ChopsticksReload` for editing local preferences
|
|
without touching the managed `.vimrc`
|
|
- `:ChopsticksBeta`, `:ChopsticksBetaLog`, and `:ChopsticksBetaSession` for
|
|
guided beta testing and local session notes
|
|
- Dedicated modules for buffers, utilities, files, runner, quickfix, status,
|
|
cheat sheet, tutor, beta testing, and help
|
|
- Split test runner: `scripts/test.sh` now dispatches to
|
|
`scripts/test-quick.sh` and `scripts/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:
|
|
`,mp` preview and `,mt` table of contents
|
|
- `SPC U` opens UndoTree, `SPC z` toggles maximize, `SPC bp` / `SPC bn`
|
|
move between buffers, and quickfix/location-list actions live under `SPC x`
|
|
- `tools.vim` is 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
|
|
|
|
- `diffopt` enhancements 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.vim` local pre-load config for profile and user choices
|
|
- `g:chopsticks_enable_markdown_preview` to control Previm independently
|
|
- `g:chopsticks_profile` with `minimal`, `engineer`, and `full` profiles
|
|
- `.markdownlint.json` aligned with the project's README/changelog style
|
|
- `:ChopsticksStatus` diagnostic command — checks system tools, LSP servers, linters, formatters
|
|
- `,af` toggle format-on-save (ALE `fix_on_save`)
|
|
- `,gL` git log graph (last 20 commits)
|
|
- `,gC` FZF git commits search, `,gB` buffer commits
|
|
- Interactive installer profile selection for `minimal`, `engineer`, and `full`
|
|
- `install.sh --profile=minimal|engineer|full` for scripted profile selection
|
|
- `install.sh --dry-run` to show the resolved profile/config path without writes
|
|
- `install.sh --configure-only` to update local profile config without reinstalling
|
|
- `get.sh --dry-run` for safe bootstrap previews before clone/update/install
|
|
- `CHOPSTICKS_DEST=/absolute/path` to test or install the bootstrap target elsewhere
|
|
- `scripts/test.sh` local test runner reused by GitHub Actions
|
|
- `scripts/test.sh quick`, `--help`, and `list` for easier local test discovery
|
|
|
|
### Fixed
|
|
|
|
- Built-in plugin guards for `gzip`, `logiPat`, `rrhelper`, and
|
|
`spellfile_plugin` are now set in both `g:`-prefixed and unscoped
|
|
forms — those four old-style runtime plugins check `loaded_X` (no
|
|
`g:`), so the previous `g:loaded_X` lines did nothing. Saves ~270μs
|
|
total at startup, mostly from gzip
|
|
- `install.sh` interactive menu and QUICKSTART now show `,ff` (current
|
|
fuzzy-find binding) instead of the stale `Ctrl+p` left over from the
|
|
native-first cleanup; `.github/demo.tape` updated to match (the
|
|
binary GIF still shows `Ctrl+p` until someone regenerates it from a
|
|
fresh fixture)
|
|
- README badge and `install.sh` recommend Vim 8.1+ instead of 8.0+ —
|
|
the runtime conditionally relies on patches `8.1.0360` (diffopt) and
|
|
`8.1.1517` (completeopt+=popup), so 8.0 users hit option errors
|
|
- `ttimeoutlen` is now 50ms when `g: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
|
|
default
|
|
- `install.sh` no longer silently `PlugClean!`s user-added plugins from
|
|
`~/.vim/plugged`; it now lists undeclared plugin directories first and
|
|
asks before removing them (`--yes` skips the removal entirely)
|
|
- `install.sh` Python tools now prefer `pipx` and `pip3 --user` over
|
|
`pip3 install --break-system-packages`; the break-system path is gated
|
|
behind `CHOPSTICKS_ALLOW_BREAK_SYSTEM=1` so PEP 668 distros are no
|
|
longer silently polluted
|
|
- `g:loaded_logipat` typo → `g:loaded_logiPat` — logiPat was loading fully (0.478ms wasted)
|
|
- `get.sh` now refuses to update an existing `~/.vim` git repo unless its
|
|
origin is chopsticks
|
|
- Large file protection now stays active after filetype and syntax autocommands
|
|
- `g:ale_fix_on_save = 0` in local config is now respected
|
|
- Local config now respects absolute `XDG_CONFIG_HOME` instead 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 fourth
|
|
- `set exrc`/`set secure` are now opt-in via `g:chopsticks_enable_exrc = 1`;
|
|
Vim no longer sources project-local `.vimrc`/`.exrc` from the working
|
|
directory by default
|
|
- Normal-mode `,F` (reindent the entire file with `gg=G`) is now opt-in
|
|
via `g: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 `s` is no longer shadowed by EasyMotion; use `,S` for the two-character jump
|
|
- `,w` now uses a normal `:write` instead of forced `:write!`
|
|
- Swap files are enabled again and stored under `~/.vim/.swap` for crash recovery
|
|
- Installer defaults are slimmer: only core search tools stay selected by default;
|
|
language and lint suites are opt-in
|
|
- `:ChopsticksStatus` now respects disabled LSP/lint profiles instead of reporting
|
|
intentionally disabled tools as missing
|
|
- `,sv` now 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 `minimal` and selects
|
|
Marksman by default in `full`
|
|
- 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` — `:grep` now uses ripgrep + quickfix
|
|
- Add `diffopt` with histogram algorithm and indent-heuristic
|
|
- Consolidate FZF Rg/RgWord/GFiles commands (DRY refactor)
|
|
- vim-tmux-navigator: conditional load (only inside tmux), fallback `Ctrl+hjkl` mappings outside
|
|
- Add `Ctrl+hjkl` window 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`)
|
|
- `:LspInstallServer` added 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 with `topleft vertical`, winfixwidth, proper toggle
|
|
- Enriched statusline — SLMode, SLGit, SLAle, SLFlags
|
|
- Toggle feedback — F2/F3/F4/F6/`,ss` echo 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 into `languages.vim`
|
|
- `tutor/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`, `,sh` mappings
|
|
|
|
### 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
|
|
|
|
- `.vimrc` split 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)
|