-
Notifications
You must be signed in to change notification settings - Fork 51
Open
Labels
Description
Problem
The current zsh/.config/zsh/functions.zsh file has grown to ~630 lines and contains many different types of functions, making it harder to navigate and maintain at a glance.
Current State
- Zsh: Single
functions.zshfile with all functions - Fish: Individual files per function (easier to manage/find)
- Documentation: We have generated docs that reflect the functions
Proposed Solution
Split functions.zsh into category-based files:
git-functions.zsh- Git workflow functions (gcom, gpum, grbm, gll, etc.)directory-functions.zsh- Navigation and directory utilities (path, cdot equivalents, etc.)utility-functions.zsh- General utilities (fs, dsx, pi, etc.)development-functions.zsh- Development-specific functions (ct, startpost, etc.)abbreviation-functions.zsh- Abbreviation management (reload-abbr)
Considerations
Pros
- ✅ Easier to find and maintain specific functions
- ✅ Better organization and discoverability
- ✅ Cleaner git history per function category
- ✅ Matches the granular approach used in Fish
Cons
⚠️ Need to update.zshrcto source multiple files⚠️ Slight increase in shell startup time (multiple file reads)⚠️ More complex than current single-file approach
Implementation Notes
Would need to:
- Split functions by logical category
- Update
zsh/.zshrcto source all category files - Maintain existing function documentation standards
- Ensure no breaking changes to function availability
Priority
Low priority - current system works fine, this is a quality-of-life improvement for maintenance.