mirror of
https://github.com/nix-community/home-manager.git
synced 2025-12-03 07:31:03 +01:00
zsh/plugins: optimize plugin loading with array-based loops
Replace individual plugin PATH/fpath statements and conditional sourcing with efficient array-based loops. Use lib.hm.zsh.define for consistent array formatting and add unset statements to clean up temporary variables. Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
This commit is contained in:
parent
bd81c11eb3
commit
c26a2ac2e4
4 changed files with 116 additions and 29 deletions
|
|
@ -23,9 +23,29 @@ in
|
|||
test.stubs.zsh = { };
|
||||
|
||||
nmt.script = ''
|
||||
assertFileRegex home-files/.zshrc '^path+="/home/hm-user/.zsh/plugins/mockPlugin"$'
|
||||
assertFileRegex home-files/.zshrc '^fpath+="/home/hm-user/.zsh/plugins/mockPlugin"$'
|
||||
assertFileRegex home-files/.zshrc '^fpath+=("/home/hm-user/.zsh/plugins/mockPlugin/share/zsh/site-functions" "/home/hm-user/.zsh/plugins/mockPlugin/share/zsh/vendor-completions")$'
|
||||
# Test the plugin directories loop structure
|
||||
assertFileContains home-files/.zshrc '# Add plugin directories to PATH and fpath'
|
||||
assertFileContains home-files/.zshrc 'plugin_dirs=('
|
||||
assertFileContains home-files/.zshrc 'mockPlugin'
|
||||
assertFileContains home-files/.zshrc 'for plugin_dir in "''${plugin_dirs[@]}"; do'
|
||||
assertFileContains home-files/.zshrc 'path+="/home/hm-user/.zsh/plugins/$plugin_dir"'
|
||||
assertFileContains home-files/.zshrc 'fpath+="/home/hm-user/.zsh/plugins/$plugin_dir"'
|
||||
|
||||
# Test the completion paths loop structure
|
||||
assertFileContains home-files/.zshrc '# Add completion paths to fpath'
|
||||
assertFileContains home-files/.zshrc 'completion_paths=('
|
||||
assertFileContains home-files/.zshrc 'mockPlugin/share/zsh/site-functions'
|
||||
assertFileContains home-files/.zshrc 'mockPlugin/share/zsh/vendor-completions'
|
||||
assertFileContains home-files/.zshrc 'for completion_path in "''${completion_paths[@]}"; do'
|
||||
assertFileContains home-files/.zshrc 'fpath+="/home/hm-user/.zsh/plugins/$completion_path"'
|
||||
|
||||
# Test the plugin loading structure
|
||||
assertFileContains home-files/.zshrc '# Source plugins'
|
||||
assertFileContains home-files/.zshrc 'plugins=('
|
||||
assertFileContains home-files/.zshrc 'mockPlugin/share/mockPlugin/mockPlugin.plugin.zsh'
|
||||
assertFileContains home-files/.zshrc 'for plugin in "''${plugins[@]}"; do'
|
||||
assertFileContains home-files/.zshrc '[[ -f "/home/hm-user/.zsh/plugins/$plugin" ]] && source "/home/hm-user/.zsh/plugins/$plugin"'
|
||||
assertFileContains home-files/.zshrc 'done'
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue