From 1bc59a08736c6b8d0af1cfaa89e3daca5157cbae Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Thu, 2 Sep 1999 18:26:12 +0000 Subject: Initial revision --- Completion/User/_urls | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Completion/User/_urls (limited to 'Completion/User/_urls') diff --git a/Completion/User/_urls b/Completion/User/_urls new file mode 100644 index 000000000..19f7eea3a --- /dev/null +++ b/Completion/User/_urls @@ -0,0 +1,65 @@ +#autoload + +# Usage: _urls [-f] +# Options: +# -f : complete files. + +# To complete URLs, you must make a URL database locally such as: +# +# % cd ~/.zsh/urls +# % find . -ls +# ... drwxr-xr-x ... 512 Sep 3 02:46 . +# ... drwxr-xr-x ... 512 Sep 3 02:48 ./http +# ... drwxr-xr-x ... 512 Sep 3 02:52 ./http/www.zsh.org +# ... drwxr-xr-x ... 512 Sep 3 03:01 ./http/www.zsh.org/mla +# ... drwxr-xr-x ... 512 Sep 3 03:01 ./http/www.zsh.org/mla/workers +# ... drwxr-xr-x ... 512 Sep 3 03:01 ./http/www.zsh.org/mla/workers/1999 +# ... -rw-r--r-- ... 0 Sep 3 03:01 ./http/www.zsh.org/mla/workers/1999/index.html +# ... drwxr-xr-x ... 512 Sep 3 02:48 ./http/sunsite.auc.dk +# ... drwxr-xr-x ... 512 Sep 3 02:48 ./http/sunsite.auc.dk/zsh +# ... drwxr-xr-x ... 512 Sep 3 02:47 ./bookmark +# ... drwxr-xr-x ... 512 Sep 3 02:48 ./bookmark/zsh +# ... -rw-r--r-- ... 27 Sep 3 02:47 ./bookmark/zsh/home +# ... -rw-r--r-- ... 20 Sep 3 02:48 ./bookmark/zsh/meta + +local ipre scheme dirs files + +if [[ "$1" = -f ]]; then + shift + _files "$@" && return +fi + +if [[ -z "$compconfig[_urls_dir]" ]]; then + compconfig[_urls_dir]=${ZDOTDIR:-$HOME}/.zsh/urls +fi + +ipre="$IPREFIX" + +if [[ -prefix [-+.a-z0-9]#: ]]; then + scheme="${PREFIX%%:*}" + compset -P "[-+.a-z0-9]#:" +else + compadd -S '' http:// ftp:// bookmark: + return +fi + +case "$scheme" in + http) compset -P // || { compadd "$@" -S '' //; return };; + ftp) compset -P // || { compadd "$@" -S '' //; return };; +esac + +if [[ "$scheme" = bookmark && + -f "$compconfig[_urls_dir]/$scheme/$PREFIX$SUFFIX" && + -s "$compconfig[_urls_dir]/$scheme/$PREFIX$SUFFIX" ]]; then + compadd "$@" -QU -- "$ipre$(<"$compconfig[_urls_dir]/$scheme/$PREFIX$SUFFIX")" +else + dirs=($compconfig[_urls_dir]/$scheme/$PREFIX*$SUFFIX(/:t)) + files=($compconfig[_urls_dir]/$scheme/$PREFIX*$SUFFIX(.:t)) + compset -P '*/' + compadd "$@" -Q -S '/' - $dirs + if [[ "$scheme" = bookmark ]]; then + compadd "$@" -QS '' - $files + else + compadd "$@" -Q - $files + fi +fi -- cgit 1.4.1