fix(zsh): Tab completion and colby buffer expansion

Fix fzf_default_completion stale pointer after zle -D by setting it to
expand-or-complete before deleting the lazy comp widget. Rebind ^I
explicitly after widget deletion and add safety net in widgets.zsh
after bindkey -e.

Replace colby() function with ^M buffer expansion so the full
copilot --allow-all-tools --allow-all-paths invocation is visible
in terminal history and screen recordings.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-03-27 16:21:58 +00:00
parent ec8d41b396
commit 789ef71771
3 changed files with 21 additions and 2 deletions

View File

@@ -387,5 +387,22 @@ for line in sys.stdin:
}
zle -N _dots_stash_widget
bindkey '^Y' _dots_stash_widget
# Restore Tab after bindkey -e
if (( ${+widgets[fzf-completion]} )); then
bindkey '^I' fzf-completion
elif (( ${+widgets[_dots_lazy_comp_widget]} )); then
bindkey '^I' _dots_lazy_comp_widget
fi
# Enter: expand colby → full copilot invocation (visible in terminal history)
_dots_enter_handler() {
if [[ "$BUFFER" == "colby" || "$BUFFER" == "colby "* ]]; then
BUFFER="${BUFFER/#colby/copilot --allow-all-tools --allow-all-paths}"
fi
zle accept-line
}
zle -N _dots_enter_handler
bindkey '^M' _dots_enter_handler
}
_dots_load_keybindings