diff options
| author | Marc Cornellà <marc@mcornella.com> | 2024-10-08 19:32:04 +0200 |
|---|---|---|
| committer | Marc Cornellà <marc@mcornella.com> | 2024-10-08 19:32:04 +0200 |
| commit | 767c927a6dd2853439696a0ca229c5d78be249a1 (patch) | |
| tree | e5b81e4fc804cd74f20c646fd4dbefe5b4c02bdf /lib | |
| parent | d59f2fac36ac7d83d33c0054b1de33cce54e3210 (diff) | |
| download | zsh-767c927a6dd2853439696a0ca229c5d78be249a1.tar.gz zsh-767c927a6dd2853439696a0ca229c5d78be249a1.tar.bz2 zsh-767c927a6dd2853439696a0ca229c5d78be249a1.zip | |
fix(cli): add plugins with indentation in `omz plugin enable`
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/cli.zsh | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/lib/cli.zsh b/lib/cli.zsh index d1896f18d..38a84840c 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -344,20 +344,40 @@ function _omz::plugin::enable { next } -# if plugins=() is in multiline form, enable multi flag +# if plugins=() is in multiline form, enable multi flag and indent by default with 2 spaces /^[ \t]*plugins=\(/ { multi=1 + indent=\" \" + print \$0 + next } # if multi flag is enabled and we find a valid closing parenthesis, -# add new plugins and disable multi flag +# add new plugins with proper indent and disable multi flag multi == 1 && /^[^#]*\)/ { multi=0 - sub(/\)/, \" $add_plugins&\") + split(\"$add_plugins\",p,\" \") + for (i in p) { + print indent p[i] + } print \$0 next } +# if multi flag is enabled and we didnt find a closing parenthesis, +# get the indentation level to match when adding plugins +multi == 1 && /^[^#]*/ { + indent=\"\" + for (i = 1; i <= length(\$0); i++) { + char=substr(\$0, i, 1) + if (char == \" \" || char == \"\t\") { + indent = indent char + } else { + break + } + } +} + { print \$0 } " |
