mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 01:16:18 +04:00
Add shell completion (#2022)
* Add shell completion * Add shell completion to release
This commit is contained in:
parent
660e0e44b2
commit
1fb6144432
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@ -206,6 +206,8 @@ jobs:
|
|||||||
pkgname=helix-$TAG-$platform
|
pkgname=helix-$TAG-$platform
|
||||||
mkdir $pkgname
|
mkdir $pkgname
|
||||||
cp $source/LICENSE $source/README.md $pkgname
|
cp $source/LICENSE $source/README.md $pkgname
|
||||||
|
mkdir $pkgname/contrib
|
||||||
|
cp -r $source/contrib/completion $pkgname/contrib
|
||||||
mv bins-$platform/runtime $pkgname/
|
mv bins-$platform/runtime $pkgname/
|
||||||
mv bins-$platform/hx$exe $pkgname
|
mv bins-$platform/hx$exe $pkgname
|
||||||
chmod +x $pkgname/hx$exe
|
chmod +x $pkgname/hx$exe
|
||||||
|
23
contrib/completion/hx.bash
Normal file
23
contrib/completion/hx.bash
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Bash completion script for Helix editor
|
||||||
|
|
||||||
|
_hx() {
|
||||||
|
# $1 command name
|
||||||
|
# $2 word being completed
|
||||||
|
# $3 word preceding
|
||||||
|
COMPREPLY=()
|
||||||
|
|
||||||
|
case "$3" in
|
||||||
|
-g | --grammar)
|
||||||
|
COMPREPLY=($(compgen -W "fetch build" -- $2))
|
||||||
|
;;
|
||||||
|
--health)
|
||||||
|
local languages=$(hx --health |tail -n '+7' |awk '{print $1}' |sed 's/\x1b\[[0-9;]*m//g')
|
||||||
|
COMPREPLY=($(compgen -W "$languages" -- $2))
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=($(compgen -fd -W "-h --help --tutor -V --version -v -vv -vvv --health -g --grammar" -- $2))
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
} && complete -F _hx hx
|
||||||
|
|
12
contrib/completion/hx.fish
Normal file
12
contrib/completion/hx.fish
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
# Fish completion script for Helix editor
|
||||||
|
|
||||||
|
set -l langs (hx --health |tail -n '+7' |awk '{print $1}' |sed 's/\x1b\[[0-9;]*m//g')
|
||||||
|
|
||||||
|
complete -c hx -s h -l help -d "Prints help information"
|
||||||
|
complete -c hx -l tutor -d "Loads the tutorial"
|
||||||
|
complete -c hx -l health -x -a "$langs" -d "Checks for errors in editor setup"
|
||||||
|
complete -c hx -s g -l grammar -x -a "fetch build" -d "Fetches or builds tree-sitter grammars"
|
||||||
|
complete -c hx -s v -o vv -o vvv -d "Increases logging verbosity"
|
||||||
|
complete -c hx -s V -l version -d "Prints version information"
|
||||||
|
|
29
contrib/completion/hx.zsh
Normal file
29
contrib/completion/hx.zsh
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#compdef _hx hx
|
||||||
|
# Zsh completion script for Helix editor
|
||||||
|
|
||||||
|
_hx() {
|
||||||
|
_arguments -C \
|
||||||
|
"-h[Prints help information]" \
|
||||||
|
"--help[Prints help information]" \
|
||||||
|
"-v[Increase logging verbosity]" \
|
||||||
|
"-vv[Increase logging verbosity]" \
|
||||||
|
"-vvv[Increase logging verbosity]" \
|
||||||
|
"-V[Prints version information]" \
|
||||||
|
"--version[Prints version information]" \
|
||||||
|
"--tutor[Loads the tutorial]" \
|
||||||
|
"--health[Checks for errors in editor setup]:language:->health" \
|
||||||
|
"-g[Fetches or builds tree-sitter grammars]:action:->grammar" \
|
||||||
|
"--grammar[Fetches or builds tree-sitter grammars]:action:->grammar" \
|
||||||
|
"*:file:_files"
|
||||||
|
|
||||||
|
case "$state" in
|
||||||
|
health)
|
||||||
|
local languages=($(hx --health |tail -n '+7' |awk '{print $1}' |sed 's/\x1b\[[0-9;]*m//g'))
|
||||||
|
_values 'language' $languages
|
||||||
|
;;
|
||||||
|
grammar)
|
||||||
|
_values 'action' fetch build
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user