@enjoys/context-engine 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/data/commands/adb.json +322 -0
  2. package/data/commands/alembic.json +301 -0
  3. package/data/commands/artisan.json +277 -0
  4. package/data/commands/atlas.json +426 -0
  5. package/data/commands/auth0.json +648 -0
  6. package/data/commands/bat.json +84 -0
  7. package/data/commands/bundle.json +321 -0
  8. package/data/commands/composer.json +507 -0
  9. package/data/commands/dart.json +216 -0
  10. package/data/commands/dbmate.json +257 -0
  11. package/data/commands/docker-compose.json +384 -0
  12. package/data/commands/drizzle-kit.json +217 -0
  13. package/data/commands/expo.json +65 -0
  14. package/data/commands/fastlane.json +243 -0
  15. package/data/commands/fd.json +86 -0
  16. package/data/commands/flutter.json +298 -0
  17. package/data/commands/flyway.json +261 -0
  18. package/data/commands/fzf.json +103 -0
  19. package/data/commands/gem.json +267 -0
  20. package/data/commands/jq.json +100 -0
  21. package/data/commands/k9s.json +62 -0
  22. package/data/commands/liquibase.json +399 -0
  23. package/data/commands/manifest.json +619 -0
  24. package/data/commands/minikube.json +60 -0
  25. package/data/commands/ng.json +64 -0
  26. package/data/commands/nuxt.json +60 -0
  27. package/data/commands/php.json +157 -0
  28. package/data/commands/pm2.json +259 -0
  29. package/data/commands/pod.json +175 -0
  30. package/data/commands/prisma.json +257 -0
  31. package/data/commands/rails.json +372 -0
  32. package/data/commands/rake.json +360 -0
  33. package/data/commands/react-native.json +57 -0
  34. package/data/commands/rg.json +103 -0
  35. package/data/commands/rspec.json +257 -0
  36. package/data/commands/ruby.json +108 -0
  37. package/data/commands/sequelize.json +342 -0
  38. package/data/commands/snyk.json +442 -0
  39. package/data/commands/sonar-scanner.json +219 -0
  40. package/data/commands/stripe.json +314 -0
  41. package/data/commands/symfony.json +449 -0
  42. package/data/commands/tmux.json +197 -0
  43. package/data/commands/trivy.json +367 -0
  44. package/data/commands/twilio.json +382 -0
  45. package/data/commands/typeorm.json +262 -0
  46. package/data/commands/vue.json +60 -0
  47. package/data/commands/wp.json +857 -0
  48. package/data/commands/xcodebuild.json +141 -0
  49. package/data/commands/yq.json +57 -0
  50. package/data/completion/bash.json +1184 -0
  51. package/data/completion/c.json +1067 -0
  52. package/data/completion/cpp.json +824 -0
  53. package/data/completion/csharp.json +860 -0
  54. package/data/completion/dockerfile.json +536 -0
  55. package/data/completion/go.json +1346 -0
  56. package/data/completion/html.json +806 -0
  57. package/data/completion/java.json +1112 -0
  58. package/data/completion/javascript.json +914 -0
  59. package/data/completion/lua.json +968 -0
  60. package/data/completion/php.json +1535 -0
  61. package/data/completion/python.json +1427 -0
  62. package/data/completion/ruby.json +1531 -0
  63. package/data/completion/rust.json +698 -0
  64. package/data/completion/sql.json +887 -0
  65. package/data/completion/toml.json +428 -0
  66. package/data/completion/typescript.json +338 -0
  67. package/data/completion/yaml.json +563 -0
  68. package/data/defination/bash.json +565 -0
  69. package/data/defination/c.json +865 -0
  70. package/data/defination/cpp.json +348 -0
  71. package/data/defination/csharp.json +144 -0
  72. package/data/defination/dockerfile.json +113 -0
  73. package/data/defination/go.json +561 -0
  74. package/data/defination/html.json +559 -0
  75. package/data/defination/java.json +184 -0
  76. package/data/defination/javascript.json +265 -0
  77. package/data/defination/lua.json +181 -0
  78. package/data/defination/php.json +726 -0
  79. package/data/defination/python.json +717 -0
  80. package/data/defination/ruby.json +670 -0
  81. package/data/defination/rust.json +207 -0
  82. package/data/defination/sql.json +473 -0
  83. package/data/defination/toml.json +251 -0
  84. package/data/defination/typescript.json +29 -0
  85. package/data/defination/yaml.json +197 -0
  86. package/data/hover/bash.json +245 -0
  87. package/data/hover/c.json +265 -0
  88. package/data/hover/cpp.json +210 -0
  89. package/data/hover/csharp.json +290 -0
  90. package/data/hover/dockerfile.json +145 -0
  91. package/data/hover/go.json +580 -0
  92. package/data/hover/html.json +250 -0
  93. package/data/hover/java.json +395 -0
  94. package/data/hover/javascript.json +330 -0
  95. package/data/hover/lua.json +265 -0
  96. package/data/hover/php.json +300 -0
  97. package/data/hover/python.json +380 -0
  98. package/data/hover/ruby.json +265 -0
  99. package/data/hover/rust.json +275 -0
  100. package/data/hover/sql.json +230 -0
  101. package/data/hover/toml.json +145 -0
  102. package/data/hover/typescript.json +120 -0
  103. package/data/hover/yaml.json +165 -0
  104. package/data/manifest.json +242 -0
  105. package/package.json +1 -1
@@ -0,0 +1,565 @@
1
+ {
2
+ "language": "bash",
3
+ "definitions": {
4
+ "echo": {
5
+ "signature": "echo [-neE] [string ...]",
6
+ "description": "Display a line of text to stdout. `-n` suppresses the trailing newline, `-e` enables interpretation of backslash escapes, `-E` disables it (default).",
7
+ "type": "builtin",
8
+ "module": "builtins"
9
+ },
10
+ "printf": {
11
+ "signature": "printf [-v var] format [arguments ...]",
12
+ "description": "Write formatted output to stdout. Supports C-style format specifiers: %s (string), %d (integer), %f (float), %x (hex). With `-v`, stores result in variable instead of printing.",
13
+ "type": "builtin",
14
+ "module": "builtins"
15
+ },
16
+ "read": {
17
+ "signature": "read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]",
18
+ "description": "Read a line from standard input (or file descriptor) and split it into fields using $IFS. Results are assigned to named variables; excess fields go to the last variable.",
19
+ "type": "builtin",
20
+ "module": "builtins"
21
+ },
22
+ "cd": {
23
+ "signature": "cd [-L|-P] [directory]",
24
+ "description": "Change the shell working directory. With no arguments, changes to $HOME. `-L` follows symbolic links (default), `-P` uses the physical directory structure.",
25
+ "type": "builtin",
26
+ "module": "builtins"
27
+ },
28
+ "pwd": {
29
+ "signature": "pwd [-LP]",
30
+ "description": "Print the absolute pathname of the current working directory. `-L` shows the logical path (default), `-P` resolves symlinks.",
31
+ "type": "builtin",
32
+ "module": "builtins"
33
+ },
34
+ "export": {
35
+ "signature": "export [-fn] [-p] [name[=value] ...]",
36
+ "description": "Mark variables and functions for export to child processes. `-n` removes the export property. `-f` exports functions. `-p` lists all exported variables.",
37
+ "type": "builtin",
38
+ "module": "builtins"
39
+ },
40
+ "source": {
41
+ "signature": "source filename [arguments]",
42
+ "description": "Read and execute commands from filename in the current shell environment. Equivalent to the dot (.) command. Returns the exit status of the last command executed.",
43
+ "type": "builtin",
44
+ "module": "builtins"
45
+ },
46
+ "alias": {
47
+ "signature": "alias [-p] [name[=value] ...]",
48
+ "description": "Define or display aliases. Without arguments, prints all aliases. With a name, prints that alias. With name=value, creates an alias.",
49
+ "type": "builtin",
50
+ "module": "builtins"
51
+ },
52
+ "unalias": {
53
+ "signature": "unalias [-a] name [name ...]",
54
+ "description": "Remove alias definitions. `-a` removes all aliases.",
55
+ "type": "builtin",
56
+ "module": "builtins"
57
+ },
58
+ "type": {
59
+ "signature": "type [-afptP] name [name ...]",
60
+ "description": "Indicate how each name would be interpreted if used as a command. `-t` prints a single word (alias, keyword, function, builtin, file). `-a` shows all matches.",
61
+ "type": "builtin",
62
+ "module": "builtins"
63
+ },
64
+ "eval": {
65
+ "signature": "eval [arguments]",
66
+ "description": "Concatenate all arguments into a single string and execute the result as a shell command in the current environment.",
67
+ "type": "builtin",
68
+ "module": "builtins"
69
+ },
70
+ "exec": {
71
+ "signature": "exec [-cl] [-a name] [command [arguments ...]] [redirections ...]",
72
+ "description": "Replace the shell with the specified command without creating a new process. If no command is given, redirections take effect in the current shell.",
73
+ "type": "builtin",
74
+ "module": "builtins"
75
+ },
76
+ "exit": {
77
+ "signature": "exit [n]",
78
+ "description": "Exit the shell with status n. If n is omitted, the exit status is that of the last command executed. Values are modulo 256.",
79
+ "type": "builtin",
80
+ "module": "builtins"
81
+ },
82
+ "return": {
83
+ "signature": "return [n]",
84
+ "description": "Return from a shell function with return value n. If n is not supplied, the return value is the exit status of the last command executed in the function.",
85
+ "type": "builtin",
86
+ "module": "builtins"
87
+ },
88
+ "shift": {
89
+ "signature": "shift [n]",
90
+ "description": "Shift positional parameters to the left by n positions (default 1). Parameter $1 takes the value of $[n+1], and so on. $# is decremented by n.",
91
+ "type": "builtin",
92
+ "module": "builtins"
93
+ },
94
+ "trap": {
95
+ "signature": "trap [-lp] [action] [signal ...]",
96
+ "description": "Execute action when the shell receives the specified signal(s). Common signals: EXIT (0), INT (2), TERM (15), ERR, DEBUG, RETURN. `-l` lists signal names. `-p` prints trap commands.",
97
+ "type": "builtin",
98
+ "module": "builtins"
99
+ },
100
+ "set": {
101
+ "signature": "set [-abefhkmnptuvxBCEHPT] [-o option] [--] [arg ...]",
102
+ "description": "Set shell options and positional parameters. Common flags: `-e` (exit on error), `-u` (error on unset), `-x` (debug trace), `-o pipefail` (pipe error propagation). `--` separates options from positional parameters.",
103
+ "type": "builtin",
104
+ "module": "builtins"
105
+ },
106
+ "unset": {
107
+ "signature": "unset [-fv] [name ...]",
108
+ "description": "Remove variable or function definitions. `-v` removes variables (default), `-f` removes functions. If neither is given, tries variable first, then function.",
109
+ "type": "builtin",
110
+ "module": "builtins"
111
+ },
112
+ "declare": {
113
+ "signature": "declare [-aAfFgiIlnrtux] [-p] [name[=value] ...]",
114
+ "description": "Declare variables and set attributes. `-i` integer, `-a` indexed array, `-A` associative array, `-r` readonly, `-x` export, `-l` lowercase, `-u` uppercase, `-n` nameref, `-g` global (inside functions).",
115
+ "type": "builtin",
116
+ "module": "builtins"
117
+ },
118
+ "local": {
119
+ "signature": "local [-aAfFgiIlnrtux] [name[=value] ...]",
120
+ "description": "Create a local variable within a function. The variable is visible only in the function and its children. Same attributes as declare. Can only be used inside a function.",
121
+ "type": "builtin",
122
+ "module": "builtins"
123
+ },
124
+ "readonly": {
125
+ "signature": "readonly [-aAf] [-p] [name[=value] ...]",
126
+ "description": "Mark variables as readonly, preventing reassignment or unsetting. `-a` for arrays, `-A` for associative arrays, `-f` for functions. `-p` displays all readonly variables.",
127
+ "type": "builtin",
128
+ "module": "builtins"
129
+ },
130
+ "test": {
131
+ "signature": "test expression or [ expression ]",
132
+ "description": "Evaluate a conditional expression and return 0 (true) or 1 (false). Supports file tests (-f, -d, -e, -r, -w, -x, -s, -L), string tests (-z, -n, =, !=), and integer comparisons (-eq, -ne, -gt, -lt, -ge, -le).",
133
+ "type": "builtin",
134
+ "module": "builtins",
135
+ "members": {
136
+ "-f": { "signature": "test -f file", "description": "True if file exists and is a regular file.", "type": "operator" },
137
+ "-d": { "signature": "test -d file", "description": "True if file exists and is a directory.", "type": "operator" },
138
+ "-e": { "signature": "test -e file", "description": "True if file exists (any type).", "type": "operator" },
139
+ "-r": { "signature": "test -r file", "description": "True if file exists and is readable.", "type": "operator" },
140
+ "-w": { "signature": "test -w file", "description": "True if file exists and is writable.", "type": "operator" },
141
+ "-x": { "signature": "test -x file", "description": "True if file exists and is executable.", "type": "operator" },
142
+ "-s": { "signature": "test -s file", "description": "True if file exists and has size greater than zero.", "type": "operator" },
143
+ "-L": { "signature": "test -L file", "description": "True if file exists and is a symbolic link.", "type": "operator" },
144
+ "-z": { "signature": "test -z string", "description": "True if the length of string is zero.", "type": "operator" },
145
+ "-n": { "signature": "test -n string", "description": "True if the length of string is non-zero.", "type": "operator" },
146
+ "-eq": { "signature": "arg1 -eq arg2", "description": "True if arg1 is equal to arg2 (integer comparison).", "type": "operator" },
147
+ "-ne": { "signature": "arg1 -ne arg2", "description": "True if arg1 is not equal to arg2.", "type": "operator" },
148
+ "-gt": { "signature": "arg1 -gt arg2", "description": "True if arg1 is greater than arg2.", "type": "operator" },
149
+ "-lt": { "signature": "arg1 -lt arg2", "description": "True if arg1 is less than arg2.", "type": "operator" },
150
+ "-ge": { "signature": "arg1 -ge arg2", "description": "True if arg1 is greater than or equal to arg2.", "type": "operator" },
151
+ "-le": { "signature": "arg1 -le arg2", "description": "True if arg1 is less than or equal to arg2.", "type": "operator" }
152
+ }
153
+ },
154
+ "[[": {
155
+ "signature": "[[ expression ]]",
156
+ "description": "Extended conditional command. Supports all test operators plus pattern matching (==, =~), logical operators (&&, ||, !), and grouping with parentheses. Word splitting and pathname expansion are not performed.",
157
+ "type": "keyword",
158
+ "module": "builtins"
159
+ },
160
+ "getopts": {
161
+ "signature": "getopts optstring name [args]",
162
+ "description": "Parse positional parameters as options. optstring contains expected option letters; a colon after a letter means it requires an argument. Sets OPTARG and OPTIND.",
163
+ "type": "builtin",
164
+ "module": "builtins"
165
+ },
166
+ "wait": {
167
+ "signature": "wait [-fn] [-p varname] [id ...]",
168
+ "description": "Wait for background jobs to complete. Without arguments, waits for all children. With a PID or job spec, waits for that specific process. `-n` waits for the next job to terminate.",
169
+ "type": "builtin",
170
+ "module": "builtins"
171
+ },
172
+ "jobs": {
173
+ "signature": "jobs [-lnprs] [jobspec ...]",
174
+ "description": "Display status of background jobs. `-l` includes PIDs, `-p` shows PIDs only, `-r` shows running only, `-s` shows stopped only.",
175
+ "type": "builtin",
176
+ "module": "builtins"
177
+ },
178
+ "kill": {
179
+ "signature": "kill [-s sigspec] [-n signum] [-sigspec] pid|jobspec ...",
180
+ "description": "Send a signal to a process or job. Default signal is TERM. Common signals: HUP (1), INT (2), KILL (9), TERM (15), CONT (18), STOP (19).",
181
+ "type": "builtin",
182
+ "module": "builtins"
183
+ },
184
+ "bg": {
185
+ "signature": "bg [jobspec ...]",
186
+ "description": "Resume a suspended job in the background, as if it had been started with &.",
187
+ "type": "builtin",
188
+ "module": "builtins"
189
+ },
190
+ "fg": {
191
+ "signature": "fg [jobspec]",
192
+ "description": "Move a job to the foreground, making it the current job. The shell waits for the job to complete.",
193
+ "type": "builtin",
194
+ "module": "builtins"
195
+ },
196
+ "pushd": {
197
+ "signature": "pushd [-n] [+n|-n|dir]",
198
+ "description": "Add a directory to the top of the directory stack and change to it. `-n` suppresses the directory change.",
199
+ "type": "builtin",
200
+ "module": "builtins"
201
+ },
202
+ "popd": {
203
+ "signature": "popd [-n] [+n|-n]",
204
+ "description": "Remove the top entry from the directory stack and change to the new top. `-n` suppresses the directory change.",
205
+ "type": "builtin",
206
+ "module": "builtins"
207
+ },
208
+ "mapfile": {
209
+ "signature": "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]",
210
+ "description": "Read lines from stdin into an indexed array variable. `-t` removes trailing delimiter. `-n count` reads at most count lines. Default array is MAPFILE.",
211
+ "type": "builtin",
212
+ "module": "builtins"
213
+ },
214
+ "let": {
215
+ "signature": "let expression [expression ...]",
216
+ "description": "Evaluate arithmetic expressions. Returns 0 if the last expression evaluates to non-zero, 1 otherwise. Equivalent to ((expression)).",
217
+ "type": "builtin",
218
+ "module": "builtins"
219
+ },
220
+ "history": {
221
+ "signature": "history [-c] [-d offset] [n] or history -anrw [filename]",
222
+ "description": "Display or manipulate the command history list. `-c` clears history, `-d n` deletes entry at offset n, `-a` appends new entries to history file, `-r` reads history file.",
223
+ "type": "builtin",
224
+ "module": "builtins"
225
+ },
226
+ "complete": {
227
+ "signature": "complete [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] name [name ...]",
228
+ "description": "Specify programmable completion for a command. Defines how arguments to a specific command are completed when the user presses Tab.",
229
+ "type": "builtin",
230
+ "module": "builtins"
231
+ },
232
+ "compgen": {
233
+ "signature": "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]",
234
+ "description": "Generate possible completion matches for word according to the specified options. Used within programmable completion functions.",
235
+ "type": "builtin",
236
+ "module": "builtins"
237
+ },
238
+ "enable": {
239
+ "signature": "enable [-a] [-dnps] [-f filename] [name ...]",
240
+ "description": "Enable or disable shell builtin commands. `-n` disables a builtin. `-a` lists all builtins showing enabled/disabled status.",
241
+ "type": "builtin",
242
+ "module": "builtins"
243
+ },
244
+ "shopt": {
245
+ "signature": "shopt [-pqsu] [-o] [optname ...]",
246
+ "description": "Set and unset shell optional behavior. `-s` enables, `-u` disables an option. Common options: extglob, globstar, nullglob, dotglob, nocasematch.",
247
+ "type": "builtin",
248
+ "module": "builtins"
249
+ },
250
+ "ulimit": {
251
+ "signature": "ulimit [-HSabcdefiklmnpqrstuvxPRT] [limit]",
252
+ "description": "Get or set user-level resource limits. `-n` for open files, `-u` for max processes, `-v` for virtual memory, `-s` for stack size.",
253
+ "type": "builtin",
254
+ "module": "builtins"
255
+ },
256
+ "umask": {
257
+ "signature": "umask [-p] [-S] [mode]",
258
+ "description": "Set the file creation mask. The mask is subtracted from the default permissions (777 for dirs, 666 for files). Common: `umask 022` (owner full, others read/execute).",
259
+ "type": "builtin",
260
+ "module": "builtins"
261
+ },
262
+ "$?": {
263
+ "signature": "$?",
264
+ "description": "The exit status of the most recently executed foreground pipeline. 0 typically indicates success, non-zero indicates failure.",
265
+ "type": "special_variable",
266
+ "module": "parameters"
267
+ },
268
+ "$#": {
269
+ "signature": "$#",
270
+ "description": "The number of positional parameters (arguments) passed to the script or function.",
271
+ "type": "special_variable",
272
+ "module": "parameters"
273
+ },
274
+ "$@": {
275
+ "signature": "$@",
276
+ "description": "All positional parameters as separate words. When double-quoted (\"$@\"), each parameter expands as a separate word, preserving whitespace.",
277
+ "type": "special_variable",
278
+ "module": "parameters"
279
+ },
280
+ "$*": {
281
+ "signature": "$*",
282
+ "description": "All positional parameters as a single word. When double-quoted (\"$*\"), expands to a single string with parameters separated by the first character of $IFS.",
283
+ "type": "special_variable",
284
+ "module": "parameters"
285
+ },
286
+ "$$": {
287
+ "signature": "$$",
288
+ "description": "The process ID (PID) of the current shell. In a subshell, it expands to the PID of the parent shell, not the subshell.",
289
+ "type": "special_variable",
290
+ "module": "parameters"
291
+ },
292
+ "$!": {
293
+ "signature": "$!",
294
+ "description": "The process ID of the most recently executed background (asynchronous) command or pipeline.",
295
+ "type": "special_variable",
296
+ "module": "parameters"
297
+ },
298
+ "$0": {
299
+ "signature": "$0",
300
+ "description": "The name of the shell or shell script. Set at shell startup. In a script, it is the filename used to invoke the script.",
301
+ "type": "special_variable",
302
+ "module": "parameters"
303
+ },
304
+ "$_": {
305
+ "signature": "$_",
306
+ "description": "The last argument of the previous command. At shell startup, set to the absolute pathname used to invoke the shell.",
307
+ "type": "special_variable",
308
+ "module": "parameters"
309
+ },
310
+ "$-": {
311
+ "signature": "$-",
312
+ "description": "The current option flags as specified on invocation, by the set builtin, or those set by the shell itself (e.g., -i for interactive).",
313
+ "type": "special_variable",
314
+ "module": "parameters"
315
+ },
316
+ "IFS": {
317
+ "signature": "IFS",
318
+ "description": "Internal Field Separator. Used for word splitting after expansion and by read to split lines into fields. Default value is space, tab, newline (<space><tab><newline>).",
319
+ "type": "variable",
320
+ "module": "parameters"
321
+ },
322
+ "PATH": {
323
+ "signature": "PATH",
324
+ "description": "A colon-separated list of directories in which the shell looks for commands. Searched left to right. Modifying PATH affects which programs the shell can find.",
325
+ "type": "variable",
326
+ "module": "parameters"
327
+ },
328
+ "HOME": {
329
+ "signature": "HOME",
330
+ "description": "The home directory of the current user. Set automatically at login. Used as the default argument for the cd builtin and for tilde (~) expansion.",
331
+ "type": "variable",
332
+ "module": "parameters"
333
+ },
334
+ "PWD": {
335
+ "signature": "PWD",
336
+ "description": "The current working directory as set by cd. Updated automatically when the directory changes.",
337
+ "type": "variable",
338
+ "module": "parameters"
339
+ },
340
+ "OLDPWD": {
341
+ "signature": "OLDPWD",
342
+ "description": "The previous working directory as set by cd. `cd -` changes to $OLDPWD.",
343
+ "type": "variable",
344
+ "module": "parameters"
345
+ },
346
+ "SHELL": {
347
+ "signature": "SHELL",
348
+ "description": "The pathname of the current user's login shell.",
349
+ "type": "variable",
350
+ "module": "parameters"
351
+ },
352
+ "USER": {
353
+ "signature": "USER",
354
+ "description": "The name of the current user. Typically set at login.",
355
+ "type": "variable",
356
+ "module": "parameters"
357
+ },
358
+ "HOSTNAME": {
359
+ "signature": "HOSTNAME",
360
+ "description": "The name of the current host. Set automatically at shell startup.",
361
+ "type": "variable",
362
+ "module": "parameters"
363
+ },
364
+ "RANDOM": {
365
+ "signature": "RANDOM",
366
+ "description": "Each time this parameter is referenced, it expands to a random integer between 0 and 32767. Assigning a value seeds the random number generator.",
367
+ "type": "variable",
368
+ "module": "parameters"
369
+ },
370
+ "SECONDS": {
371
+ "signature": "SECONDS",
372
+ "description": "The number of seconds since the shell was started. If assigned a value, returns the assigned value plus the number of seconds since the assignment.",
373
+ "type": "variable",
374
+ "module": "parameters"
375
+ },
376
+ "LINENO": {
377
+ "signature": "LINENO",
378
+ "description": "The line number in the script or shell function currently executing. Useful for debugging and error messages.",
379
+ "type": "variable",
380
+ "module": "parameters"
381
+ },
382
+ "FUNCNAME": {
383
+ "signature": "FUNCNAME",
384
+ "description": "An array variable containing the names of all shell functions currently in the execution call stack. ${FUNCNAME[0]} is the currently executing function.",
385
+ "type": "variable",
386
+ "module": "parameters"
387
+ },
388
+ "BASH_SOURCE": {
389
+ "signature": "BASH_SOURCE",
390
+ "description": "An array variable whose members are the source filenames corresponding to the elements in the FUNCNAME array. ${BASH_SOURCE[0]} is the current file.",
391
+ "type": "variable",
392
+ "module": "parameters"
393
+ },
394
+ "BASH_LINENO": {
395
+ "signature": "BASH_LINENO",
396
+ "description": "An array of line numbers corresponding to calls in FUNCNAME. ${BASH_LINENO[$i]} is the line number in ${BASH_SOURCE[$i+1]} where ${FUNCNAME[$i]} was called.",
397
+ "type": "variable",
398
+ "module": "parameters"
399
+ },
400
+ "PIPESTATUS": {
401
+ "signature": "PIPESTATUS",
402
+ "description": "An array containing the exit statuses of the processes in the most recently executed foreground pipeline. ${PIPESTATUS[0]} is the first command's exit status.",
403
+ "type": "variable",
404
+ "module": "parameters"
405
+ },
406
+ "OPTARG": {
407
+ "signature": "OPTARG",
408
+ "description": "Set by getopts to the value of the last option argument processed. Contains the argument when the option requires one.",
409
+ "type": "variable",
410
+ "module": "parameters"
411
+ },
412
+ "OPTIND": {
413
+ "signature": "OPTIND",
414
+ "description": "The index of the next argument to be processed by getopts. Initialized to 1 each time the shell or a script is invoked.",
415
+ "type": "variable",
416
+ "module": "parameters"
417
+ },
418
+ "REPLY": {
419
+ "signature": "REPLY",
420
+ "description": "Set by read when no variable names are supplied. Also set by select to the user's input.",
421
+ "type": "variable",
422
+ "module": "parameters"
423
+ },
424
+ "BASH_REMATCH": {
425
+ "signature": "BASH_REMATCH",
426
+ "description": "An array variable whose members are assigned by the =~ binary operator in [[ ]]. Element 0 is the entire match, elements 1+ are capture group matches.",
427
+ "type": "variable",
428
+ "module": "parameters"
429
+ },
430
+ "BASH_VERSION": {
431
+ "signature": "BASH_VERSION",
432
+ "description": "The version number of the current instance of Bash.",
433
+ "type": "variable",
434
+ "module": "parameters"
435
+ },
436
+ "EUID": {
437
+ "signature": "EUID",
438
+ "description": "The effective user ID of the current user. Read-only. 0 indicates root.",
439
+ "type": "variable",
440
+ "module": "parameters"
441
+ },
442
+ "UID": {
443
+ "signature": "UID",
444
+ "description": "The real user ID of the current user. Read-only.",
445
+ "type": "variable",
446
+ "module": "parameters"
447
+ },
448
+ "array": {
449
+ "signature": "name=(value1 value2 ...) or name[index]=value",
450
+ "description": "Indexed arrays hold ordered lists of values. Elements are accessed by integer index starting at 0. Supports ${arr[@]} (all elements), ${#arr[@]} (length), ${!arr[@]} (indices).",
451
+ "type": "datatype",
452
+ "module": "builtins",
453
+ "members": {
454
+ "[@]": { "signature": "${array[@]}", "description": "Expand to all elements of the array as separate words.", "type": "expansion" },
455
+ "[*]": { "signature": "${array[*]}", "description": "Expand to all elements as a single word joined by the first character of IFS.", "type": "expansion" },
456
+ "#": { "signature": "${#array[@]}", "description": "Return the number of elements in the array.", "type": "expansion" },
457
+ "!": { "signature": "${!array[@]}", "description": "Return all indices (keys) of the array.", "type": "expansion" },
458
+ "append": { "signature": "array+=(value)", "description": "Append one or more elements to the end of an indexed array.", "type": "operation" },
459
+ "slice": { "signature": "${array[@]:offset:length}", "description": "Extract a slice of the array starting at offset for length elements.", "type": "expansion" },
460
+ "unset_element": { "signature": "unset 'array[index]'", "description": "Remove a specific element from the array.", "type": "operation" }
461
+ }
462
+ },
463
+ "associative_array": {
464
+ "signature": "declare -A name=([key1]=value1 [key2]=value2 ...)",
465
+ "description": "Associative arrays use arbitrary strings as keys. Must be declared with `declare -A`. Supports ${map[@]}, ${!map[@]} (keys), ${#map[@]} (size).",
466
+ "type": "datatype",
467
+ "module": "builtins",
468
+ "members": {
469
+ "[@]": { "signature": "${assoc[@]}", "description": "Expand to all values.", "type": "expansion" },
470
+ "!keys": { "signature": "${!assoc[@]}", "description": "Expand to all keys of the associative array.", "type": "expansion" },
471
+ "#size": { "signature": "${#assoc[@]}", "description": "Return the number of key-value pairs.", "type": "expansion" },
472
+ "set": { "signature": "assoc[key]=value", "description": "Set or update a value for a given key.", "type": "operation" },
473
+ "unset_key": { "signature": "unset 'assoc[key]'", "description": "Remove a key-value pair.", "type": "operation" }
474
+ }
475
+ },
476
+ "string_operations": {
477
+ "signature": "${parameter...}",
478
+ "description": "Bash provides extensive string manipulation via parameter expansion. Includes substitution, default values, substring extraction, pattern removal, case modification, and length.",
479
+ "type": "datatype",
480
+ "module": "builtins",
481
+ "members": {
482
+ "length": { "signature": "${#var}", "description": "Length of the string stored in var.", "type": "expansion" },
483
+ "substring": { "signature": "${var:offset:length}", "description": "Extract substring starting at offset for length characters.", "type": "expansion" },
484
+ "default": { "signature": "${var:-default}", "description": "Use default if var is unset or null.", "type": "expansion" },
485
+ "assign_default": { "signature": "${var:=default}", "description": "Assign default to var if var is unset or null.", "type": "expansion" },
486
+ "alternate": { "signature": "${var:+alternate}", "description": "Use alternate if var IS set and non-null.", "type": "expansion" },
487
+ "error": { "signature": "${var:?message}", "description": "Display error message and exit if var is unset or null.", "type": "expansion" },
488
+ "prefix_short": { "signature": "${var#pattern}", "description": "Remove shortest leading match of pattern.", "type": "expansion" },
489
+ "prefix_long": { "signature": "${var##pattern}", "description": "Remove longest leading match of pattern.", "type": "expansion" },
490
+ "suffix_short": { "signature": "${var%pattern}", "description": "Remove shortest trailing match of pattern.", "type": "expansion" },
491
+ "suffix_long": { "signature": "${var%%pattern}", "description": "Remove longest trailing match of pattern.", "type": "expansion" },
492
+ "replace_first": { "signature": "${var/pattern/replacement}", "description": "Replace the first match of pattern with replacement.", "type": "expansion" },
493
+ "replace_all": { "signature": "${var//pattern/replacement}", "description": "Replace all matches of pattern with replacement.", "type": "expansion" },
494
+ "uppercase_first": { "signature": "${var^}", "description": "Convert first character to uppercase.", "type": "expansion" },
495
+ "uppercase_all": { "signature": "${var^^}", "description": "Convert all characters to uppercase.", "type": "expansion" },
496
+ "lowercase_first": { "signature": "${var,}", "description": "Convert first character to lowercase.", "type": "expansion" },
497
+ "lowercase_all": { "signature": "${var,,}", "description": "Convert all characters to lowercase.", "type": "expansion" }
498
+ }
499
+ },
500
+ "arithmetic": {
501
+ "signature": "$(( expression )) or (( expression )) or let expression",
502
+ "description": "Bash supports integer arithmetic using C-style expressions. Operators: + - * / % ** (power), ++ --, << >> & | ^ ~ (bitwise), && || ! (logical), ternary (?:), comma, and assignment operators (= += -= *= /= %= etc.).",
503
+ "type": "datatype",
504
+ "module": "builtins",
505
+ "members": {
506
+ "addition": { "signature": "$((a + b))", "description": "Addition of integers.", "type": "operator" },
507
+ "subtraction": { "signature": "$((a - b))", "description": "Subtraction of integers.", "type": "operator" },
508
+ "multiplication": { "signature": "$((a * b))", "description": "Multiplication of integers.", "type": "operator" },
509
+ "division": { "signature": "$((a / b))", "description": "Integer division (truncates toward zero).", "type": "operator" },
510
+ "modulo": { "signature": "$((a % b))", "description": "Remainder after integer division.", "type": "operator" },
511
+ "power": { "signature": "$((a ** b))", "description": "Exponentiation (a to the power of b).", "type": "operator" },
512
+ "increment": { "signature": "$((a++))", "description": "Post-increment a by 1.", "type": "operator" },
513
+ "decrement": { "signature": "$((a--))", "description": "Post-decrement a by 1.", "type": "operator" },
514
+ "ternary": { "signature": "$((condition ? val1 : val2))", "description": "Ternary conditional: return val1 if condition is non-zero, else val2.", "type": "operator" },
515
+ "bitwise_and": { "signature": "$((a & b))", "description": "Bitwise AND.", "type": "operator" },
516
+ "bitwise_or": { "signature": "$((a | b))", "description": "Bitwise OR.", "type": "operator" },
517
+ "bitwise_xor": { "signature": "$((a ^ b))", "description": "Bitwise XOR.", "type": "operator" },
518
+ "left_shift": { "signature": "$((a << n))", "description": "Left shift a by n bits.", "type": "operator" },
519
+ "right_shift": { "signature": "$((a >> n))", "description": "Right shift a by n bits.", "type": "operator" }
520
+ }
521
+ },
522
+ "if": {
523
+ "signature": "if list; then list; [elif list; then list;] ... [else list;] fi",
524
+ "description": "Execute commands conditionally. The if list is executed; if its exit status is zero, the then list is executed. Otherwise, each elif list is tested in turn.",
525
+ "type": "keyword",
526
+ "module": "control_flow"
527
+ },
528
+ "for": {
529
+ "signature": "for name [in words ...]; do list; done or for (( expr1; expr2; expr3 )); do list; done",
530
+ "description": "Execute commands for each member in a list. The for-in form iterates over words. The arithmetic form works like C for loops.",
531
+ "type": "keyword",
532
+ "module": "control_flow"
533
+ },
534
+ "while": {
535
+ "signature": "while list-1; do list-2; done",
536
+ "description": "Execute commands repeatedly while a condition is true. The exit status of the while command is the exit status of the last command in list-2, or zero if none executed.",
537
+ "type": "keyword",
538
+ "module": "control_flow"
539
+ },
540
+ "until": {
541
+ "signature": "until list-1; do list-2; done",
542
+ "description": "Execute commands repeatedly until a condition becomes true. Equivalent to `while ! condition; do ... done`.",
543
+ "type": "keyword",
544
+ "module": "control_flow"
545
+ },
546
+ "case": {
547
+ "signature": "case word in [[(] pattern [| pattern] ...) list ;;] ... esac",
548
+ "description": "Execute commands matching a pattern. Each pattern is tested in order. `;;` terminates, `;&` falls through, `;;&` tests next pattern.",
549
+ "type": "keyword",
550
+ "module": "control_flow"
551
+ },
552
+ "select": {
553
+ "signature": "select name [in words ...]; do list; done",
554
+ "description": "Generate a numbered menu from words. The user's choice is stored in name, the input line in REPLY. Loops until break or EOF.",
555
+ "type": "keyword",
556
+ "module": "control_flow"
557
+ },
558
+ "function": {
559
+ "signature": "name () compound-command [redirections] or function name [()] compound-command [redirections]",
560
+ "description": "Define a function. Parameters are accessed via $1, $2, etc. Local variables with `local`. Return value via `return n`.",
561
+ "type": "keyword",
562
+ "module": "control_flow"
563
+ }
564
+ }
565
+ }