#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" \
		"--vsplit[Splits all given files vertically]" \
		"--hsplit[Splits all given files horizontally]" \
		"-c[Specifies a file to use for configuration]" \
		"--config[Specifies a file to use for configuration]" \
		"-w[Specify initial working directory]" \
		"--working-dir[Specify initial working directory]" \
		"--log[Specifies a file to use for logging]" \
		"*:file:_files"

	case "$state" in
	health)
		local languages=($(hx --health all-languages | tail -n '+2' | awk '{print $1}' | sed 's/\x1b\[[0-9;]*m//g;s/[✘✓]//g'))
		_values 'language' $languages
		;;
	grammar)
		_values 'action' fetch build
		;;
	esac
}
