blob: 40e6794b5257903b676e7151c7c4c8718b3389f9 (
plain)
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
# Returns exit code of 0 if apm hasn't received a command yet, e.g. `config`
function __fish_apm_needs_command
set cmd (commandline -opc)
if test (count $cmd) -eq 1
return 0
else if test (count $cmd) -gt 1
for c in $cmd[2..-1]
switch $c
# Exclude options that are allowed to appear before command
case '--color' '--no-color' 'help'
continue
case '*'
return 1
end
end
return 0
end
return 1
end
# Returns exit code of 0 if any command (argv[1..-1]) appears once, ignores flags.
function __fish_apm_using_command
set commands $argv
set cmd (commandline -opc)
if test (count $cmd) -gt 1
set -l command_seen_once 1
for c in $cmd[2..-1]
switch $c
case '-*'
continue
case $commands
# If the command is seen more than once then return 1
if test $command_seen_once -eq 1
set command_seen_once 0
else
return 1
end
case '*'
if test $command_seen_once -eq 0
return 0
else
return 1
end
end
end
return $command_seen_once
end
return 1
end
# Check if `commandline` contains a set of subcommands
function __fish_apm_includes_subcommand
set cmd (commandline -opc)
for subcommand in $argv
if contains $subcommand $cmd
return 0
end
end
return 1
end
# Lists all apm config items
function __fish_apm_config_items
apm config list | string match -r -v "^\s*;|^\s*\$" | string replace "\w*=\w*" \t
end
# Lists all installed atom packages
function __fish_apm_list_packages
apm list -b
end
if apm -h ^| string match -q "*Atom Package Manager*"
# Completions for Atom Package Manager
##################
# global options #
##################
# help
complete -f -c apm -n '__fish_apm_needs_command' -s h -l help -d "Display help"
complete -f -c apm -n '__fish_apm_needs_command' -a help -d "Display help"
complete -f -c apm -n '__fish_apm_using_command clean config dedupe deinstall delete dev develop docs erase featured home init install link linked links list ln lns login ls open outdated publish rebuild rebuild-module-cache remove rm search show star starred stars test uninstall unlink unpublish unstar update upgrade view' -s h -l help -d 'Display help'
# version
complete -f -c apm -n '__fish_apm_needs_command' -s v -l version -d "Display version"
# color
complete -f -c apm -n '__fish_apm_needs_command' -l color -d "Enable colored output"
complete -f -c apm -n '__fish_apm_needs_command' -l no-color -d "Disable colored output"
############
# commands #
############
# clean
complete -f -c apm -n '__fish_apm_needs_command' -a clean -d "Deletes packages in node_modules not referenced
as dependency in package.json"
# config
set -l config_subcommands "get set edit delete list"
complete -f -c apm -n '__fish_apm_needs_command' -a config -d "Modify or list configuration items"
complete -x -c apm -n "__fish_apm_using_command config; and not __fish_apm_includes_subcommand $config_subcommands" -a set -d 'Set config item'
complete -x -c apm -n "__fish_apm_using_command config; and not __fish_apm_includes_subcommand $config_subcommands" -a get -d 'Get config item'
complete -x -c apm -n "__fish_apm_using_command config; and not __fish_apm_includes_subcommand $config_subcommands" -a delete -d 'Delete config item'
complete -x -c apm -n "__fish_apm_using_command config; and not __fish_apm_includes_subcommand $config_subcommands" -a list -d 'List config items'
complete -x -c apm -n "__fish_apm_using_command config; and not __fish_apm_includes_subcommand $config_subcommands" -a edit -d 'Edit config items'
complete -x -c apm -n '__fish_apm_using_command config set get delete; and __fish_apm_includes_subcommand set get delete' -a '(__fish_apm_config_items)'
# dedupe
complete -f -c apm -n '__fish_apm_needs_command' -a dedupe -d "Reduce duplication in node_modules in current directory"
# deinstall & delete & erase & remove & rm & uninstall
set -l uninstall_commands "deinstall delete erase remove rm uninstall"
complete -f -c apm -n '__fish_apm_needs_command' -a $uninstall_commands -d "Delete installed package(s) from ~/.atom/packages"
complete -f -c apm -n "__fish_apm_using_command $uninstall_commands" -a '(__fish_apm_list_packages)'
complete -f -c apm -n "__fish_apm_using_command $uninstall_commands" -l hard -d "Unlink package from ~/.atom/packages and ~/.atom/dev/packages"
complete -f -c apm -n "__fish_apm_using_command $uninstall_commands" -s d -l dev -d "Unlink package from ~/.atom/dev/packages"
# dev(elop)
set -l dev_commands "dev develop"
complete -f -c apm -n '__fish_apm_needs_command' -a $dev_commands -d "Clone install dependencies and link a package for development"
complete -f -c apm -n "__fish_apm_using_command $dev_commands" -a '(__fish_apm_list_packages)'
# docs & home & open
set -l open_commands "docs home open"
complete -f -c apm -n '__fish_apm_needs_command' -a $open_commands -d "Open a package's homepage in the default browser"
complete -f -c apm -n "__fish_apm_using_command $open_commands" -s p -l print -d "Print URL instead of opening"
complete -f -c apm -n "__fish_apm_using_command $open_commands" -a '(__fish_apm_list_packages)'
# featured
complete -f -c apm -n '__fish_apm_needs_command' -a featured -d "List Atom packages and themes currently featured in the
atom.io registry"
complete -f -c apm -n '__fish_apm_using_command featured' -l json -d "Output featured packages as JSON array"
complete -f -c apm -n '__fish_apm_using_command featured' -s t -l themes -d "Only list themes"
complete -x -c apm -n '__fish_apm_using_command featured' -s c -l compatible -d "Only list packages/themes compatible with specified Atom version"
# init
complete -f -c apm -n '__fish_apm_needs_command' -a init -d "Generates code scaffolding for theme or package"
complete -r -c apm -n '__fish_apm_using_command init' -l template -d "Path to the package or theme template"
complete -x -c apm -n '__fish_apm_using_command init' -s p -l package -d "Generates a basic package"
complete -x -c apm -n '__fish_apm_using_command init' -s t -l theme -d "Generates a basic theme"
complete -x -c apm -n '__fish_apm_using_command init' -s l -l language -d "Generates a basic language package"
complete -r -c apm -n '__fish_apm_using_command init' -s c -l convert -d "Convert TextMate bundle/theme"
# install
complete -f -c apm -n '__fish_apm_needs_command' -a install -d "Install Atom package to ~/.atom/packages/<package_name>"
complete -f -c apm -n '__fish_apm_using_command install' -l check -d "Check native build tools are installed"
complete -f -c apm -n '__fish_apm_using_command install' -l verbose -d "Show verbose debug information"
complete -r -c apm -n '__fish_apm_using_command install' -l packages-file -d "Specify text file containing packages to install"
complete -f -c apm -n '__fish_apm_using_command install' -l production -d "Do not install dev dependencies"
complete -x -c apm -n '__fish_apm_using_command install' -s c -l compatible -d "Only install packages/themes compatible with specified Atom version"
complete -f -c apm -n '__fish_apm_using_command install' -s s -l silent -d "Set npm log level to silent"
complete -f -c apm -n '__fish_apm_using_command install' -s q -l quiet -d "Set npm log level to quiet"
# link & ln
set -l link_commands "link ln"
complete -f -c apm -n '__fish_apm_needs_command' -a $link_commands -d "Create a symlink for the package in ~/.atom/packages"
complete -f -c apm -n "__fish_apm_using_command $link_commands" -s d -l dev -d "Link to ~/.atom/dev/packages"
# linked & links & lns
set -l linked_commands "linked links lns"
complete -f -c apm -n '__fish_apm_needs_command' -a $linked_commands -d "List all symlinked packages in ~/.atom/packages and
~/.atom/dev/packages"
# list & ls
set -l list_commands "list ls"
complete -f -c apm -n '__fish_apm_needs_command' -a $list_commands -d "List all installed and bundled packages"
complete -f -c apm -n "__fish_apm_using_command $list_commands" -s b -l bare -d "Print packages one per line with no formatting"
complete -f -c apm -n "__fish_apm_using_command $list_commands" -s d -l dev -d "Include dev packages"
complete -f -c apm -n "__fish_apm_using_command $list_commands" -s i -l installed -d "Only list installed packages/themes"
complete -f -c apm -n "__fish_apm_using_command $list_commands" -s j -l json -d "Output all packages as a JSON object"
complete -f -c apm -n "__fish_apm_using_command $list_commands" -s l -l links -d "Include linked packages"
complete -f -c apm -n "__fish_apm_using_command $list_commands" -s t -l themes -d "Only list themes"
complete -f -c apm -n "__fish_apm_using_command $list_commands" -s p -l packages -d "Only list packages"
# login
complete -f -c apm -n '__fish_apm_needs_command' -a login -d "Save Atom API token to keychain"
complete -x -c apm -n "__fish_apm_using_command login" -l token -d "Specify API token"
# outdated & upgrade & update
set -l upgrade_commands "outdated upgrade update"
complete -f -c apm -n '__fish_apm_needs_command' -a $upgrade_commands -d "Upgrade out of date packages"
complete -f -c apm -n "__fish_apm_using_command $upgrade_commands" -l json -d "Output outdated packages as JSON array"
complete -x -c apm -n "__fish_apm_using_command $upgrade_commands" -l compatible -d "Only install packages/themes compatible with specified Atom version"
complete -f -c apm -n "__fish_apm_using_command $upgrade_commands" -l verbose -d "Show verbose debug information"
complete -f -c apm -n "__fish_apm_using_command $upgrade_commands" -s c -l confirm -d "Confirm before installing updates"
complete -f -c apm -n "__fish_apm_using_command $upgrade_commands" -s l -l list -d "List but don't install the outdated packages"
# publish
set -l publish_subcommands "major minor patch build"
complete -f -c apm -n '__fish_apm_needs_command' -a publish -d "Publish new version of package in current working directory"
complete -f -c apm -n "__fish_apm_using_command publish; and not __fish_apm_includes_subcommand $publish_subcommands" -a $publish_subcommands -d "Semantic version category for new version"
complete -x -c apm -n '__fish_apm_using_command publish' -s t -l tag -d "Specify a tag to publish"
complete -x -c apm -n '__fish_apm_using_command publish' -s r -l rename -d "Specify a new name for the package"
# rebuild
complete -f -c apm -n '__fish_apm_needs_command' -a rebuild -d "Rebuild modules installed in node_modules in current working directory"
# rebuild-module-cache
complete -f -c apm -n '__fish_apm_needs_command' -a rebuild-module-cache -d "Rebuild module cache for installed packages"
# search
complete -f -c apm -n '__fish_apm_needs_command' -a search -d "Search for Atom packages/themes in the atom.io registry"
complete -f -c apm -n '__fish_apm_using_command search' -l json -d "Output matching packages as JSON array"
complete -f -c apm -n '__fish_apm_using_command search' -s p -l packages -d "Search only non-theme packages"
complete -f -c apm -n '__fish_apm_using_command search' -s t -l themes -d "Search only themes"
# show & view
set -l show_commands "show view"
complete -f -c apm -n '__fish_apm_needs_command' -a $show_commands -d "View information about package/theme in the atom.io registry"
complete -f -c apm -n "__fish_apm_using_command $show_commands" -l json -d "Output as JSON array"
complete -x -c apm -n "__fish_apm_using_command $show_commands" -l compatible -d "Show latest version compatible with specified Atom version"
# star
complete -f -c apm -n '__fish_apm_needs_command' -a star -d "Star the given packages on https://atom.io"
complete -f -c apm -n '__fish_apm_using_command star' -l installed -d "Star all packages in ~/.atom/packages"
# starred & stars
set -l stars_commands "starred stars"
complete -f -c apm -n '__fish_apm_needs_command' -a $stars_commands -d "List or install starred Atom packages and themes"
complete -f -c apm -n "__fish_apm_using_command $stars_commands" -l json -d "Output packages as JSON array"
complete -f -c apm -n "__fish_apm_using_command $stars_commands" -s i -l install -d "Install the starred packages"
complete -f -c apm -n "__fish_apm_using_command $stars_commands" -s t -l themes -d "Only list themes"
complete -x -c apm -n "__fish_apm_using_command $stars_commands" -s u -l user -d "GitHub username to show starred packages for"
# test
complete -f -c apm -n '__fish_apm_needs_command' -a test -d "Runs the package's tests contained within the spec directory"
complete -r -c apm -n '__fish_apm_using_command test' -s p -l path -d "Path to atom command"
# unlink
complete -f -c apm -n '__fish_apm_needs_command' -a unlink -d "Delete the symlink in ~/.atom/packages for the package"
complete -f -c apm -n '__fish_apm_using_command unlink' -l hard -d "Unlink package from ~/.atom/packages and ~/.atom/dev/packages"
complete -f -c apm -n '__fish_apm_using_command unlink' -s d -l dev -d "Unlink package from ~/.atom/dev/packages"
complete -f -c apm -n '__fish_apm_using_command unlink' -s a -l all -d "Unlink all packages in ~/.atom/packages and ~/.atom/dev/packages"
# unpublish
complete -f -c apm -n '__fish_apm_needs_command' -a unpublish -d "Remove published package or version from the atom.io registry"
complete -f -c apm -n '__fish_apm_using_command unpublish' -s f -l force -d "Do not prompt for confirmation"
# unstar
complete -f -c apm -n '__fish_apm_needs_command' -a unstar -d "Unstar given packages on https://atom.io"
else
# Completions for the Advanced Power Management client
complete -f -c apm -s V -l version --description "Display version and exit"
complete -f -c apm -s v -l verbose --description "Print APM info"
complete -f -c apm -s m -l minutes --description "Print time remaining"
complete -f -c apm -s M -l monitor --description "Monitor status info"
complete -f -c apm -s S -l standby --description "Request APM standby mode"
complete -f -c apm -s s -l suspend --description "Request APM suspend mode"
complete -f -c apm -s d -l debug --description "APM status debugging info"
end
|