From f1db1812cb36d23a09451916e0799f4cd8f95a31 Mon Sep 17 00:00:00 2001 From: hobe Date: Wed, 25 Mar 2026 13:44:36 +0900 Subject: [PATCH] perf(zellij): use --short flag for session name completion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use `list-sessions --short --no-formatting` (zellij ≥0.44) to extract session names directly, falling back to sed parsing for older versions. --- plugins/zellij/zellij.plugin.zsh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/zellij/zellij.plugin.zsh b/plugins/zellij/zellij.plugin.zsh index 46ae04e15..5fc820414 100644 --- a/plugins/zellij/zellij.plugin.zsh +++ b/plugins/zellij/zellij.plugin.zsh @@ -128,12 +128,16 @@ _omz_zellij_ls_raw() { command zellij list-sessions --no-formatting 2>/dev/null || command zellij list-sessions 2>/dev/null } +_omz_zellij_session_names() { + # Use --short if available (zellij ≥0.44), fall back to sed parsing + command zellij list-sessions --short --no-formatting 2>/dev/null \ + || printf '%s\n' "$(_omz_zellij_ls_raw)" | LC_ALL=C sed -nE 's/^([^[:space:]]+).*/\1/p' +} + _omz_zellij_all_sessions() { emulate -L zsh - local out local -a sessions - out="$(_omz_zellij_ls_raw)" - sessions=("${(@f)$(printf '%s\n' "$out" | LC_ALL=C sed -nE 's/^([^[:space:]]+).*/\1/p')}") + sessions=("${(@f)$(_omz_zellij_session_names)}") (( ${#sessions[@]} )) && compadd -Q -a sessions }