mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-12-19 02:41:57 +00:00
refactor(cli): extract substitution awk script in plugin disable
This commit is contained in:
parent
708bbe12c5
commit
bf888680ea
1 changed files with 13 additions and 16 deletions
29
lib/cli.zsh
29
lib/cli.zsh
|
@ -226,13 +226,17 @@ function _omz::plugin::disable {
|
|||
return 1
|
||||
fi
|
||||
|
||||
# Remove plugins substitution awk script
|
||||
local awk_subst_plugins="\
|
||||
gsub(/\s+(${(j:|:)dis_plugins})/, \"\") # with spaces before
|
||||
gsub(/(${(j:|:)dis_plugins})\s+/, \"\") # with spaces after
|
||||
gsub(/\((${(j:|:)dis_plugins})\)/, \"\") # without spaces (only plugin)
|
||||
"
|
||||
# Disable plugins awk script
|
||||
local awk_script="
|
||||
# if plugins=() is in oneline form, substitute disabled plugins and go to next line
|
||||
/^\s*plugins=\([^#]+\).*\$/ {
|
||||
gsub(/\s+(${(j:|:)dis_plugins})/, \"\") # with spaces before
|
||||
gsub(/(${(j:|:)dis_plugins})\s+/, \"\") # with spaces after
|
||||
gsub(/\((${(j:|:)dis_plugins})\)/, \"\") # without spaces (only plugin)
|
||||
$awk_subst_plugins
|
||||
print \$0
|
||||
next
|
||||
}
|
||||
|
@ -240,29 +244,22 @@ function _omz::plugin::disable {
|
|||
# if plugins=() is in multiline form, enable multi flag and disable plugins if they're there
|
||||
/^\s*plugins=\(/ {
|
||||
multi=1
|
||||
gsub(/\s+(${(j:|:)dis_plugins})/, \"\")
|
||||
gsub(/(${(j:|:)dis_plugins})\s+/, \"\")
|
||||
gsub(/\((${(j:|:)dis_plugins})\)/, \"\")
|
||||
$awk_subst_plugins
|
||||
print \$0
|
||||
next
|
||||
}
|
||||
|
||||
# if multi flag is enabled and we find a valid closing parenthesis,
|
||||
# add new plugins and disable multi flag
|
||||
# if multi flag is enabled and we find a valid closing parenthesis, remove plugins and disable multi flag
|
||||
multi == 1 && /^[^#]*\)/ {
|
||||
multi=0
|
||||
gsub(/\s+(${(j:|:)dis_plugins})/, \"\")
|
||||
gsub(/(${(j:|:)dis_plugins})\s+/, \"\")
|
||||
gsub(/\((${(j:|:)dis_plugins})\)/, \"\")
|
||||
$awk_subst_plugins
|
||||
print \$0
|
||||
next
|
||||
}
|
||||
|
||||
multi == 1 {
|
||||
gsub(/\s+(${(j:|:)dis_plugins})/, \"\")
|
||||
gsub(/(${(j:|:)dis_plugins})\s+/, \"\")
|
||||
gsub(/\((${(j:|:)dis_plugins})\)/, \"\")
|
||||
print \$0
|
||||
multi == 1 && length(\$0) > 0 {
|
||||
$awk_subst_plugins
|
||||
if (length(\$0) > 0) print \$0
|
||||
next
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue