Changelog โ
[Latest] - Markdown List Formatting Fix โ
๐ Bug Fixes โ
- Markdown List Formatting: Fixed issue where empty lines were incorrectly inserted between math blocks (
$$...$$) and list items- Enhanced list block detection to recognise math blocks as part of list item content
- Added support for continuation lines (indented content within list items)
- Improved handling of display math blocks (
$$) within markdown lists - Formatter now correctly preserves math blocks without adding unwanted empty lines
๐ Technical Details โ
- Updated
BufWritePreautocmd inlua/config.luato track math block state - Added
has_math_delimiters()function to detect lines containing$$ - Added
update_math_block_state()function to track math block boundaries - Enhanced list continuation detection to handle indented content properly
[Previous] - Table Operations and Documentation Updates โ
๐ Markdown Table Operations โ
- Table-nvim Integration: Added comprehensive table editing keymaps under
<leader>Kt<leader>Ktf- Format/realign table<leader>Ktn/Ktp- Navigate table cells<leader>Kto/KtO- Insert row below/above<leader>KtJ/KtK- Move row down/up<leader>Kti/KtI- Insert column right/left<leader>KtL/KtH- Move column right/left<leader>Ktdc- Delete column<leader>Ktt/KtT- Insert table (with/without outline)
- Filetype Support: Works in markdown, quarto, pandoc, and text files
- Quarto Support: Extended table-nvim functionality to
.qmdfiles - Which-Key Integration: Table operations registered under
<leader>Ktgroup
๐ง Zen Mode for Markdown โ
- Distraction-Free Writing: Added
folke/zen-mode.nvimwith sensible defaults - Automatic Activation: Zen Mode opens by default for all markdown buffers (Obsidian notes, research notes, etc.)
- Keybinding:
<leader>Yztoggles Zen Mode on and off (documented in Quickstart and Keymaps Reference) - Cursor Behaviour: Fixed cursor placement when Zen Mode auto-opens so the cursor appears correctly in the Zen window
๐ Documentation Updates โ
- Keymaps Reference: Added comprehensive table operations section
- Quickstart Guide: Added table operation examples and Zen Mode toggle keymap
- Note: Table operations live under
<leader>Ktโฆ. Markdown preview is<leader>Kp(start),<leader>Ks(stop),<leader>Kv(toggle).
[Previous] - Which-Key Convention Enforcement โ
๐ง Keymap Refactoring โ
- Convention Enforcement: Strict adherence to lowercase/uppercase leader key pattern
- Lowercase keys (e.g.,
<leader>f,<leader>g) execute immediately without delay - Uppercase keys (e.g.,
<leader>F,<leader>G) show which-key menus with sub-commands
- Lowercase keys (e.g.,
- Eliminated Delays: Removed which-key wait time for frequently used commands
<leader>f(find files) now executes immediately<leader>g(grep in project) now executes immediately
โจ๏ธ Keymap Reorganisation โ
- Frecency Commands: Moved from
<leader>f*to<leader>F*group<leader>Ffโ Find files (frecency)<leader>Frโ Refresh frecency database<leader>Fdโ Show database location<leader>Fbโ Rebuild database
- Search Commands: Moved grep location variants from
<leader>g*to<leader>S*<leader>Spโ Search in project<leader>Swโ Search in working directory<leader>Shโ Search in home directory<leader>Scโ Search in config<leader>Sfโ Search in current file directory
- Conflict Resolution: Disabled OneDark's
<leader>tstoggle (use<leader>Ycinstead)
๐งน Configuration Cleanup โ
- Which-Key Groups: Removed incorrect group definitions for direct commands
- Unused Groups: Removed empty groups (
<leader>P) - Documentation: Added convention comments to which-key configuration
๐ Documentation Updates โ
- Keymap Reference: Updated
docs/reference/keymaps.mdwith correct keybindings - Convention Clarity: Documented the lowercase/uppercase convention
[Previous] - Enhanced Theme Management System โ
๐จ New Features โ
- Theme Picker: Enhanced Telescope interface with nvim-tree style filtering
- Visual theme categories (dark ๐, light โ๏ธ, special ๐จ)
- Telescope Previewer: Custom preview panel shows theme info and applies theme
- Nvim-tree Style Filtering: Live filtering as you type with immediate updates
- Smart Input Modes: Insert mode for filtering, normal mode for navigation
- Enhanced Navigation: All Telescope navigation (j/k, arrows, gg/G) with preview
- Quick apply without closing with
<C-y> - Current theme indicator with โ symbol
- Responsive Preview: Theme updates on all selection changes (search, navigation)
- Debounced Filtering: Smooth 150ms debounced filter updates
- Clean Integration: Follows Telescope's standard patterns and behavior
- Professional UX: Consistent with other Telescope pickers
๐ง Enhanced Theme Management โ
- Modular Architecture: New
core/theme-picker.luamodule - Integration: Seamless integration with existing theme manager
- Performance: Optimized theme loading and switching
- Feedback: Enhanced notifications and status updates
- Robust Loading: Handles Telescope loading issues gracefully
- Fallback Support: Works with vim.ui.select when Telescope unavailable
โจ๏ธ New Keybindings โ
<Space>YTp: Open theme picker (floating window)<Space>YTs: Show current theme<Space>Yc: Cycle through themes (enhanced with better fallback)
๐๏ธ Architecture Improvements โ
- Theme Picker Module: Dedicated theme selection system
- Lazy Loading: Efficient loading of theme picker functionality
- Fallback Support: Graceful degradation when components unavailable
- Integration: Clean integration with existing theme management
๐ Documentation Updates โ
- Quickstart Guide: Added theme management section
- Keymap Documentation: Updated with new theme commands
- User Experience: Clear instructions for theme picker usage
[Previous] - Documentation Updates and Consistency Review โ
Documentation Improvements โ
- README.md: Updated to reflect current keymap structure with uppercase group keys
- Plugin Architecture: Updated plugin list to include mini-nvim subdirectory structure
- Keymap Documentation: All key mappings now accurately reflect current configuration
- British Spelling: Verified and maintained throughout all documentation
- Installation Guide: Current and accurate installation instructions
Configuration Review โ
- Review Report: Updated to reflect current state with uppercase group keys
- Consistency Check: All documentation now matches actual configuration
- Plugin List: Accurate representation of current plugin structure
- Keymap Structure: Documentation reflects professional uppercase group organisation
Benefits โ
- Accurate Documentation: All guides now match the actual configuration
- Professional Appearance: Consistent uppercase group keys throughout
- Easy Maintenance: Clear documentation structure for future updates
- User Experience: Reliable installation and usage instructions
[Previous] - Uppercase Group Key Standardisation โ
Major Keymap Reorganisation โ
- Uppercase Group Keys: Standardised all which-key group prefixes to use uppercase letters for consistency and improved visual clarity
- Enhanced Descriptions: Updated all command descriptions to use proper capitalisation and clear, explicit language
- Professional Appearance: Which-key popups now display clean, consistent uppercase group keys that match their descriptive names
Group Key Changes โ
<leader>Bโ Buffer operations (was<leader>b)<leader>Cโ Configuration management (was<leader>c)<leader>Gโ Git operations (was<leader>g)<leader>Jโ Julia development (was<leader>j)<leader>Lโ LSP operations (was<leader>l)<leader>Oโ Otter multi-language support (was<leader>o)<leader>Pโ Plugin management (was<leader>p)<leader>Qโ Quarto operations (already uppercase)<leader>Sโ Search operations (was<leader>s)<leader>Tโ Terminal operations (already uppercase)<leader>Wโ Window operations (was<leader>w)<leader>Xโ Trouble diagnostics (was<leader>x)<leader>Yโ Toggle options (already uppercase)
Individual Command Updates โ
All individual commands updated to match their uppercase group keys:
- Configuration:
<leader>Cs,<leader>Cd,<leader>Cg - Buffer management:
<leader>Bf,<leader>Bc,<leader>Bb,<leader>Bn,<leader>Bj - Search operations:
<leader>Sf,<leader>St,<leader>Sr,<leader>Sb, etc. - LSP operations:
<leader>Ll,<leader>Lr,<leader>Lf,<leader>LR,<leader>Ld, etc. - Git operations:
<leader>Gs,<leader>Gp,<leader>Gg - Julia operations:
<leader>Jp,<leader>Ji,<leader>Ju,<leader>Jt,<leader>Jd - Julia REPL:
<leader>Jrh,<leader>Jrv,<leader>Jrf - Trouble diagnostics:
<leader>Xw,<leader>Xd,<leader>Xl,<leader>Xq,<leader>Xx - Plugin management:
<leader>Pi,<leader>Pu,<leader>Pc,<leader>Ps - Otter operations:
<leader>Oa,<leader>Od
Preserved Individual Commands โ
<leader>q- Close buffer (quick access)<leader>e- Toggle file explorer<leader>f- Find files<leader>x- Toggle checkbox (Obsidian)
Benefits โ
- Visual Consistency: Group keys now match their descriptive names (e.g.,
Bfor "Buffer") - Professional Appearance: Clean, consistent uppercase letters in which-key popups
- Better Organisation: Clear distinction between group prefixes and individual commands
- Enhanced Workflow: More intuitive key combinations that align with group names
- Improved Discoverability: Easier to remember and navigate keymap structure
[Earlier] - Keymap Reorganisation โ
Group Letter Remapping โ
- Toggle Group: Remapped from
<leader>T*to<leader>Y*to resolve collision with Terminal group<leader>Yw- Toggle line wrapping<leader>Yn- Toggle line numbers<leader>Yc- Cycle through colourschemes
Addition of Split Group โ
- New Split Group: Added
<leader>|*prefix for split window commands<leader>|v- Split window vertically<leader>|h- Split window horizontally
Key Collision Resolution โ
- Terminal Group: Retained
<leader>T*for all terminal-related functions<leader>Th- Horizontal terminal<leader>Tv- Vertical terminal<leader>Tf- Float terminal<leader>Tt- Toggle terminal (smart vertical default)<leader>Tk- Clear terminal<leader>Td- Delete terminal
- Search Group: Retained
<leader>S*for search operations (managed by plugins) - Toggle Group: Moved to
<leader>Y*to avoid "T" collision - Split Group: Uses
<leader>|*to avoid "S" collision
Rationale โ
These changes ensure logical grouping of related commands whilst preventing key conflicts:
- Terminal operations remain under the intuitive "T" prefix
- Toggle operations use "Y" (phonetically similar to "toggle")
- Split operations use "|" symbol (visually represents splitting)
- Search operations maintain "S" prefix for consistency with plugin conventions
All changes maintain backwards compatibility where possible whilst improving the logical organisation of keybindings.