# Copyright 2012-2024 Martin V\"ath # Distributed under the terms of the GNU General Public License v2 EAPI=8 pPN=${PN%-zsh} mPN="${pPN}.zsh" NEED_PATCHES=false KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" case ${PV} in 99999999*) EGIT_REPO_URI="https://github.com/hchbaw/${mPN}.git" EGIT_BRANCH="pu" inherit git-r3 PROPERTIES="live" SRC_URI="" KEYWORDS="";; 0.0.1.12_p0) RESTRICT="mirror" EGIT_COMMIT="42dbef5da89360f132cce010004d4c674a13c951" SRC_URI="https://github.com/hchbaw/${mPN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" S="${WORKDIR}/${mPN}-${EGIT_COMMIT}";; *) RESTRICT="mirror" SRC_URI="https://github.com/hchbaw/${mPN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" S="${WORKDIR}/${mPN}-${PV}" NEED_PATCHES=:;; esac DESCRIPTION="zsh automatic complete-word and list-choices: incremental completion" HOMEPAGE="https://github.com/hchbaw/auto-fu.zsh/" LICENSE="HPND" SLOT="0" IUSE="+compile" DEPEND="compile? ( app-shells/zsh )" DESTPATH="/usr/share/zsh/site-contrib/${mPN}" generate_example() { echo "# Put something like the following into your ~/.zshrc # First, we set sane options for the standard completion system: autoload -Uz compinit is-at-least compinit -D -u zstyle ':completion:*' completer _complete zstyle ':completion:*' list-colors \${(s.:.)LS_COLORS} zstyle ':completion:*' menu select=1 # interactive zstyle ':completion:*' accept-exact-dirs true zstyle ':completion:*' path-completion false if is-at-least 4.3.10 then zstyle ':completion:*' format \"%B%F{yellow}%K{blue}%d%k%f%b\" else zstyle ':completion:*' format \"%B%d%b\" fi # Now we source ${PN}" if use compile then echo ". ${DESTPATH}/${pPN} auto-fu-install" else echo ". ${DESTPATH}/${pPN}.zsh" fi echo " # Finally, we configure ${PN} zstyle ':auto-fu:highlight' input zstyle ':auto-fu:highlight' completion bold,fg=blue zstyle ':auto-fu:highlight' completion/one fg=blue zstyle ':auto-fu:var' postdisplay # \$'\\n-azfu-' #zstyle ':auto-fu:var' enable all #zstyle ':auto-fu:var' track-keymap-skip opp #zstyle ':auto-fu:var' disable magic-space zle-line-init() auto-fu-init zle -N zle-line-init zle -N zle-keymap-select auto-fu-zle-keymap-select # Starting a line with a space or tab or quoting the first word # or escaping a word should deactivate auto-fu for that line/word. # This is useful e.g. if auto-fu is too slow for you in some cases. zstyle ':auto-fu:var' autoable-function/skiplines '[[:blank:]\\\\\"'\'']*' zstyle ':auto-fu:var' autoable-function/skipwords '[\\\\]*' # Let Ctrl-d successively remove tail of line, whole line, and exit kill-line-maybe() { if ((\$#BUFFER > CURSOR)) then zle kill-line else zle kill-whole-line fi } zle -N kill-line-maybe bindkey '\C-d' kill-line-maybe # Keep Ctrl-d behavior also when auto-fu is active afu+orf-ignoreeof-deletechar-list() { afu-eof-maybe afu-ignore-eof zle kill-line-maybe } afu+orf-exit-deletechar-list() { afu-eof-maybe exit zle kill-line-maybe }" } src_prepare() { ( umask 022 generate_example >"${S}"/zshrc-example ) if ${NEED_PATCHES} then # Make Ctrl-D return correctly. eapply "${FILESDIR}"/exit.patch # Reset color with "return": eapply "${FILESDIR}"/reset-color.patch # Make it work with older zsh versions: eapply "${FILESDIR}"/zsh-compatibility.patch fi default } src_compile() { ! use compile || mPN="${mPN}" \ zsh -c 'setopt extendedglob no_shwordsplit source ${mPN} auto-fu-zcompile ${PWD}/${mPN} ${PWD}' || die } src_install() { insinto "${DESTPATH}" doins "${mPN}" ! use compile || doins "${pPN}" "${pPN}.zwc" dodoc zshrc-example README* }