summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorG'lek Tarssza <glek@glektarssza.com>2025-05-24 04:44:24 -0600
committerGitHub <noreply@github.com>2025-05-24 12:44:24 +0200
commit095ac3ca8f4c3a89a69ff3b45cb67346f76babbd (patch)
tree338a3595b4b72397c6f16b694b65e70e6cbde57e
parentecdc1e722a9f458b3b5c4900403ee77848e1dba2 (diff)
downloadzsh-095ac3ca8f4c3a89a69ff3b45cb67346f76babbd.tar.gz
zsh-095ac3ca8f4c3a89a69ff3b45cb67346f76babbd.tar.bz2
zsh-095ac3ca8f4c3a89a69ff3b45cb67346f76babbd.zip
feat(cli): add `--enabled` flag to `omz plugin list` (#13128)
-rw-r--r--lib/cli.zsh23
1 files changed, 20 insertions, 3 deletions
diff --git a/lib/cli.zsh b/lib/cli.zsh
index 3b6308313..0b144e4e7 100644
--- a/lib/cli.zsh
+++ b/lib/cli.zsh
@@ -72,6 +72,10 @@ function _omz {
local -aU plugins
plugins=("$ZSH"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t) "$ZSH_CUSTOM"/plugins/*/{_*,*.plugin.zsh}(-.N:h:t))
_describe 'plugin' plugins ;;
+ plugin::list)
+ local -a opts
+ opts=('--enabled:List enabled plugins only')
+ _describe -o 'options' opts ;;
theme::(set|use))
local -aU themes
themes=("$ZSH"/themes/*.zsh-theme(-.N:t:r) "$ZSH_CUSTOM"/**/*.zsh-theme(-.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::))
@@ -206,7 +210,7 @@ Available commands:
disable <plugin> Disable plugin(s)
enable <plugin> Enable plugin(s)
info <plugin> Get information of a plugin
- list List all available Oh My Zsh plugins
+ list [--enabled] List Oh My Zsh plugins
load <plugin> Load plugin(s)
EOF
@@ -449,8 +453,21 @@ function _omz::plugin::info {
function _omz::plugin::list {
local -a custom_plugins builtin_plugins
- custom_plugins=("$ZSH_CUSTOM"/plugins/*(-/N:t))
- builtin_plugins=("$ZSH"/plugins/*(-/N:t))
+
+ # If --enabled is provided, only list what's enabled
+ if [[ "$1" == "--enabled" ]]; then
+ local plugin
+ for plugin in "${plugins[@]}"; do
+ if [[ -d "${ZSH_CUSTOM}/plugins/${plugin}" ]]; then
+ custom_plugins+=("${plugin}")
+ elif [[ -d "${ZSH}/plugins/${plugin}" ]]; then
+ builtin_plugins+=("${plugin}")
+ fi
+ done
+ else
+ custom_plugins=("$ZSH_CUSTOM"/plugins/*(-/N:t))
+ builtin_plugins=("$ZSH"/plugins/*(-/N:t))
+ fi
# If the command is being piped, print all found line by line
if [[ ! -t 1 ]]; then