v1.5 - Alter Ego

Oh noes! Run is multiples.
Run
Now also accepts array and shebang.
# yaml-language-server: $schema=https://carapace.sh/schemas/command.json
name: run
commands:
- name: alias
commands:
- name: string
run: "[tail, --lines, '${NUM:-1}']"
- name: array
run: [tail, --lines, "${NUM:-1}"]
- name: script
commands:
- name: macro
run: "$(tail -n${C_FLAG_LINES:-1} $@) ||| $chdir($tempdir)"
flags:
-n, --lines=: output the last NUM lines
completion:
positionalany: ["$files ||| $chdir($tempdir)"]
- name: shebang
run: |
#!/usr/bin/env bash -x
for arg in "$@"; do
echo "${!arg}${C_FLAG_SUFFIX:-.suffix}"
done
flags:
-s, --suffix=: suffix to add
completion:
flag:
suffix: [.backup, .copy]
positionalany: [one, two]
Envsubst
Skip expansion with a ! prefix.
| Expression | Substitution |
|---|---|
${HOME} | /home/user |
${!HOME} | ${HOME} |
${UNSET:-default} | default |
${!UNSET:-default} | ${UNSET:-default} |
Macro
The $() exec macro now defaults to cmd instead of pwsh on windows.
$(<command>)(shon unix andcmdon windows)$bash(<command>)$cmd(<command>)$elvish(<command>)$fish(<command>)$nu(<command>)$osh(<command>)$pwsh(<command>)$sh(<command>)$xonsh(<command>)$zsh(<command>)
Edit
Added carapace --edit FILE... for convenience.
$CARAPACE_EDITOR(highest priority)$GIT_EDITOR$VISUAL$EDITOR
Bridge
Added support for kitten which provides completion for Kitty.
kitten- identifierbridge.Kitten- macro
Parsing compdef header for multiple registered commands (instead of just one).
#compdef pulseaudio pactl pacmd pacat paplay parec parecord padsp pasuspender
Dynamically creating list of inshellisense completers.
inshellisense specs list
# ["act","adb","adr","afplay","aftman","ag","agrippa","airflow",...