1+ #! /usr/bin/env zsh
2+ z4÷populate-dynamic-dir (){
3+ builtin emulate -L zsh -o extendedglob \
4+ -o warncreateglobal -o typesetsilent \
5+ -o nopromptsubst
6+
7+ z4_zdn_widget (){z4_directory_name_generic " $@ " ;}
8+ add-zsh-hook -U zsh_directory_name z4_zdn_widget
9+ z4_dir_suffix () {
10+ [[ $1 = 1 ]] || return
11+
12+ if [[ $LBUFFER [-1] != ' ]' ]]; then
13+ if [[ $KEYS = [$' ] \t\n /' ]# # ]]; then
14+ if [[ $LBUFFER [-1] == ' :' ]]; then
15+ LBUFFER=" $LBUFFER [1,-2]"
16+ fi
17+ LBUFFER+= ${${${KEYS:#* \] * } : +\] } :- ${kEYS// \] / } }
18+ elif [[ $KEYS = (* [^[:print:]]* | [[:blank:]\;\&\| @]) ]]; then
19+ LBUFFER= " $LBUFFER [1,-2]" \]
20+ fi
21+ fi
22+ }
23+
24+ typeset -Ag z4_zdn_top= () z4_zdn_level1= () z4_gitdir_zdn_level1= () \
25+ z4_zdn_zplug_level1= (:default: z4_zdn_level1) \
26+ z4_zdn_zsnip_level1= (:default: z4_zdn_level1)
27+ zstyle " :zdn:z4_zdn_widget:" mapping z4_zdn_top
28+ z4_zdn_top+= (
29+ # Zinit4's system diectories
30+ z $ZINIT [BIN_DIR]/:z4_gitdir_zdn_level1
31+ z4 $ZINIT [BIN_DIR]/:z4_gitdir_zdn_level1
32+ zbin $ZINIT [BIN_DIR]/:z4_gitdir_zdn_level1
33+ z4bin $ZINIT [BIN_DIR]/:z4_gitdir_zdn_level1
34+ zcompl $ZINIT [COMPLETIONS_DIR]
35+ z4compl $ZINIT [COMPLETIONS_DIR]
36+ zsnip $ZINIT [SNIPPETS_DIR]/:z4_zdn_zsnip_level1
37+ z4snip $ZINIT [SNIPPETS_DIR]/:z4_zdn_zsnip_level1
38+ zplug $ZINIT [PLUGINS_DIR]/:z4_zdn_zplug_level1
39+ z4plug $ZINIT [PLUGINS_DIR]/:z4_zdn_zplug_level1
40+ ztheme $ZINIT [THEME_DIR]
41+ z4theme $ZINIT [THEME_DIR]
42+ zcache $ZSH_CACHE_DIR
43+ z4cache $ZSH_CACHE_DIR
44+
45+ bin $HOME /.local/bin
46+ cfg ${XDG_CONFIG_HOME:- $HOME / .config}
47+ cache ${XDG_CACHE_HOME:- $HOME / .cache}
48+ data ${XDG_DATA_HOME:- $HOME / .local/ share}
49+
50+ # Z-Prefix's words
51+ zp $ZPFX
52+ ZP $ZPFX
53+ zpfx $ZPFX
54+ ZPFX $ZPFX
55+
56+ # Default
57+ # :default: /:z4_zdn_level1
58+ )
59+
60+ z4_zdn_top+= (
61+ zfun /(usr| )${ZINIT[BINPATH]%% [^\/]# \/ [^\/]# } share/zsh/$ZSH_VERSION /functions(NY1)
62+ zlib /(usr| )${ZINIT[BINPATH]%% [^\/]# \/ [^\/]# } lib(| 64)/zsh/$ZSH_VERSION (NY1)
63+ )
64+
65+ z4_zdn_top[zfun]+= " /:zsh_dir_level"
66+
67+ typeset -A -g zsh_dir_level1= (
68+ cal Calendar ex Example ftpe MIME pro Prompts vcs VCS_Info
69+ chpwd Chpwd exc Exceptions vari Misc zftp Zftp
70+ cpctl Compctl math Math user Newuser tcp TCP zle Zle
71+ )
72+
73+ local -a tmp
74+ tmp= ($ZINIT [SNIPPETS_DIR]/* [[:alnum:]_÷-]~* /(http(| s)| ftp(s| )| scp| file)--* (N.,/,@) $ZINIT [SNIPPETS_DIR]/(http(| s)| ftp(| s)| scp| file)--* /* [[:alnum:]_÷-](N.,/,@))
75+ : ${tmp[@]// (# b)(* )/ ${z4_zdn_top[${${${match[1]// (http(s|)|ftp(|s)|file|scp)--/ proto:// } // --// } :t}]::=$match [1]}}
76+ : ${tmp[@]// (# b)(* )/ ${z4_zdn_zsnip_level1[${${${match[1]// (http(s|)|ftp(|s)|file|scp)--/ proto:// } // --// } :t}]::=$match [1]}}
77+
78+ tmp=($ZINIT [PLUGINS_DIR]/* [[:alnum:]](N.,/,@))
79+ : ${tmp[@]// (# b)(* )/ ${z4_zdn_top[${${match[1]: t} // ---// } ]::=$match [1]}}
80+ : ${tmp[@]// (# b)(* )/ ${z4_zdn_zplug_level1[${${match[1]: t} // ---// } ]::=${match[1]: t} }}
81+
82+ z4_zdn_level1+=(
83+ share share
84+ lib lib
85+ libexec libexec
86+ bin bin
87+ func functions
88+ # scripts scripts
89+ docs docs
90+ src src
91+ contrib contrib
92+ )
93+
94+ z4_gitdir_zdn_level1+=(
95+ share share
96+ lib lib
97+ libexec libexec
98+ func functions
99+ scripts scripts
100+ doc doc
101+ )
102+ }
0 commit comments