{ ... }: {
	text = ''
		# Bash autocomplete.
		# There are also options like -o nospace. see man for more info.
		# Usage: _foo() { _autocomplete "{foo,bar}" } ; complete -F _foo foo
		function _autocomplete() {
			local iter use cur
			cur=''${COMP_WORDS[COMP_CWORD]}
			use="''${@//\\ /___}"
			for iter in $use; do
				if [[ $iter =~ ^$cur ]]; then
					COMPREPLY+=( $(printf "%q" "''${iter//___/ }") )
				fi
			done
		}

		# Autocomplete by grepping file names.
		function _autocomplete_grep() {
			local IFS=$'\n'
			COMPREPLY=()

			local pattern="''${1}"
			local candidates=$("$(ls | grep -E ''${pattern})")
			_autocomplete ''${candidates}
		}

		# Autocomplete nested program.
		function _autocomplete_nested() {
			# local IFS=$'\n'
			local cur prev words cword split i
			_init_completion -s || return

			for ((i = 1; i <= cword; i++)); do
				if [[ ''${words[i]} != -* ]]; then
					local PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin
					local root_command=''${words[i]}
					_command_offset ''${i}
					return
				fi
			done
		}
	'';
}