-
Notifications
You must be signed in to change notification settings - Fork 0
/
_export
86 lines (80 loc) · 4.09 KB
/
_export
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#compdef export
# Copyright (c) 2018, CERN for the benefit of the LHCb collaboration
# Author: Paul Seyfert <pseyfert@cern.ch>
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the <organization> nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# In applying this licence, CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization
# or submit itself to any jurisdiction.
## suggest CCACHE on `export <TAB>'
#
# * but really only suggest two CCACHE entries not to sp9am the entire screen
# * using two rather than one, such that `export CCAC<TAB>` does not jump to
# `export CCACHE ` with trailing space and defeat the rest of this file.
local -a tmp
tmp=()
if zstyle -a ":completion::complete:export:argument-rest:" fake-parameters tmp ; then
zstyle ':completion::complete:export:argument-rest:' fake-parameters ${tmp[@]} CCACHE_\* CCACHE_\?
else
zstyle ':completion::complete:export:argument-rest:' fake-parameters CCACHE_\* CCACHE_\?
fi
## check if CCACHE gets completed, otherwise use the "normal" export completion
if [[ ( $words[$CURRENT] != CCACHE* ) || ( $words[$CURRENT] = *\=* ) ]] ; then
_typeset "$@"
else
_values 'ccache environment variables' \
"CCACHE_BASEDIR[relative to which top level paths are hashed]: :" \
"CCACHE_DIR[where the cache and config are kept]: :" \
"CCACHE_TEMPDIR[where temporary files are kept]: :" \
"CCACHE_NLEVELS[directory levels in the cache directory]: :" \
"CCACHE_CC[specify compiler]: :" \
"CCACHE_COMPILERCHECK[compiler information included in the hash]: :" \
"CCACHE_COMPRESSLEVEL[cache compression level]: :" \
"CCACHE_EXTENSION[set extensions for intermediate files]: :" \
"CCACHE_EXTRAFILES[additional files to consider in hashing]: :" \
"CCACHE_IGNOREHEADERS[set paths to headers to ignore in hashing]: :" \
"CCACHE_LIMIT_MULTIPLE[cleanup level]: :" \
"CCACHE_LOGFILE[specify a log file]: :" \
"CCACHE_MAXFILES[maximum number of files in the cache]: :" \
"CCACHE_MAXSIZE[maximum size of the cache]: :" \
"CCACHE_PATH[path to the ccache directory]: :" \
"CCACHE_PREFIX[prefixes for compiler invokation]: :" \
"CCACHE_PREFIX_CPP[prefixes for preprocessor invokation]: :" \
"CCACHE_SLOPPINESS[hash files sloppy]: :" \
"CCACHE_UMASK[set umask for ccache and child processes (e.g. for sharing cache)]: :"
# "CCACHE_*COMMENTS[]: :" \
# "CCACHE_*STATS[]: :" \
# "CCACHE_*READONLY[]: :" \
# "CCACHE_*READONLY_DIRECT[]: :" \
# "CCACHE_*RECACHE[]: :" \
# "CCACHE_*CPP2[]: :" \
# "CCACHE_*UNIFY[]: :" \
# "CCACHE_*COMPRESS[]: :" \
# "CCACHE_*DIRECT[]: :" \
# "CCACHE_*DISABLE[]: :" \
# "CCACHE_*HARDLINK[]: :" \
# "CCACHE_*HASHDIR[]: :" \
fi