My zsh configuration
git clone https://github.com/m-col/zshrc
Files | Refs | Readme

-rw-r--r-- claude-context/plugin.zsh


      1 cw() {
      2     local suffix=""
      3     [[ -n "$CLAUDE_CONTEXT_ID" ]] && suffix=".$CLAUDE_CONTEXT_ID"
      4     local wt_file="$HOME/.local/share/claude/worktree${suffix}"
      5     [[ -f "$wt_file" ]] || return 1
      6     local wt
      7     wt=$(<"$wt_file")
      8     [[ -d "$wt" ]] || return 1
      9     cd "$wt"
     10 }
     11 
     12 _zsh_autosuggest_strategy_claude() {
     13     emulate -L zsh
     14     setopt EXTENDED_GLOB
     15 
     16     typeset -g suggestion
     17     local suffix=""
     18     [[ -n "$CLAUDE_CONTEXT_ID" ]] && suffix=".$CLAUDE_CONTEXT_ID"
     19     local context_file="$HOME/.local/share/claude/context-files${suffix}"
     20     [[ -f "$context_file" ]] || return
     21 
     22     local buffer="$1"
     23     local cmd partial
     24 
     25     [[ "$buffer" =~ '^(v|vi|vim|nvim)( +(.*))?$' ]] || return
     26     cmd="${match[1]}"
     27     partial="${match[3]}"
     28 
     29     local -a files
     30     files=("${(@f)$(< "$context_file")}")
     31     (( ${#files} )) || return
     32 
     33     local f rel
     34 
     35     if [[ -n "$partial" ]]; then
     36         for f in "${(@Oa)files}"; do
     37             [[ -f "$f" ]] || continue
     38             rel="${f#$PWD/}"
     39             [[ "$rel" == ${partial}* ]] && { suggestion="$cmd $rel"; return }
     40         done
     41         for f in "${(@Oa)files}"; do
     42             [[ -f "$f" ]] || continue
     43             rel="${f#$PWD/}"
     44             [[ "$rel" == *${partial}* ]] && { suggestion="$cmd $rel"; return }
     45         done
     46     else
     47         for f in "${(@Oa)files}"; do
     48             [[ -f "$f" ]] || continue
     49             rel="${f#$PWD/}"
     50             suggestion="$cmd $rel"
     51             return
     52         done
     53     fi
     54 }
     55