@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,563 @@
1
+ {
2
+ "language": "yaml",
3
+ "completions": [
4
+ {
5
+ "label": "key: value",
6
+ "kind": 15,
7
+ "detail": "Key-value pair",
8
+ "documentation": { "value": "Basic YAML key-value pair. The key and value are separated by a colon followed by a space." },
9
+ "insertText": "${1:key}: ${2:value}",
10
+ "insertTextRules": 4,
11
+ "sortText": "00_keyvalue"
12
+ },
13
+ {
14
+ "label": "nested mapping",
15
+ "kind": 15,
16
+ "detail": "Nested mapping",
17
+ "documentation": { "value": "A mapping nested under a parent key using indentation (2 spaces)." },
18
+ "insertText": "${1:parent}:\n ${2:child}: ${3:value}",
19
+ "insertTextRules": 4,
20
+ "sortText": "00_nested"
21
+ },
22
+ {
23
+ "label": "sequence (list)",
24
+ "kind": 15,
25
+ "detail": "Sequence / List",
26
+ "documentation": { "value": "A YAML sequence (ordered list) using block style with dash `-` indicators." },
27
+ "insertText": "${1:items}:\n - ${2:item1}\n - ${3:item2}\n - ${4:item3}",
28
+ "insertTextRules": 4,
29
+ "sortText": "00_sequence"
30
+ },
31
+ {
32
+ "label": "inline sequence",
33
+ "kind": 15,
34
+ "detail": "Inline sequence (flow style)",
35
+ "documentation": { "value": "A YAML sequence written in flow (inline) style using square brackets." },
36
+ "insertText": "${1:key}: [${2:item1}, ${3:item2}, ${4:item3}]",
37
+ "insertTextRules": 4,
38
+ "sortText": "00_inlineseq"
39
+ },
40
+ {
41
+ "label": "inline mapping",
42
+ "kind": 15,
43
+ "detail": "Inline mapping (flow style)",
44
+ "documentation": { "value": "A YAML mapping written in flow (inline) style using curly braces." },
45
+ "insertText": "${1:key}: {${2:k1}: ${3:v1}, ${4:k2}: ${5:v2}}",
46
+ "insertTextRules": 4,
47
+ "sortText": "00_inlinemap"
48
+ },
49
+ {
50
+ "label": "literal block scalar |",
51
+ "kind": 15,
52
+ "detail": "Multi-line string (literal)",
53
+ "documentation": { "value": "Literal block scalar preserves newlines. Each line break is kept as-is. Useful for pre-formatted text, scripts, or code blocks." },
54
+ "insertText": "${1:key}: |\n ${2:line1}\n ${3:line2}",
55
+ "insertTextRules": 4,
56
+ "sortText": "00_literal"
57
+ },
58
+ {
59
+ "label": "folded block scalar >",
60
+ "kind": 15,
61
+ "detail": "Multi-line string (folded)",
62
+ "documentation": { "value": "Folded block scalar folds newlines into spaces. Single newlines become spaces; blank lines become newlines. Useful for long text." },
63
+ "insertText": "${1:key}: >\n ${2:This is a long}\n ${3:folded string}",
64
+ "insertTextRules": 4,
65
+ "sortText": "00_folded"
66
+ },
67
+ {
68
+ "label": "literal strip |−",
69
+ "kind": 15,
70
+ "detail": "Literal block scalar (strip trailing newlines)",
71
+ "documentation": { "value": "Literal block scalar with strip chomping indicator. Trailing newlines are removed from the final string." },
72
+ "insertText": "${1:key}: |-\n ${2:line1}\n ${3:line2}",
73
+ "insertTextRules": 4,
74
+ "sortText": "00_literalstrip"
75
+ },
76
+ {
77
+ "label": "literal keep |+",
78
+ "kind": 15,
79
+ "detail": "Literal block scalar (keep trailing newlines)",
80
+ "documentation": { "value": "Literal block scalar with keep chomping indicator. All trailing newlines are preserved in the final string." },
81
+ "insertText": "${1:key}: |+\n ${2:line1}\n ${3:line2}\n",
82
+ "insertTextRules": 4,
83
+ "sortText": "00_literalkeep"
84
+ },
85
+ {
86
+ "label": "folded strip >−",
87
+ "kind": 15,
88
+ "detail": "Folded block scalar (strip trailing newlines)",
89
+ "documentation": { "value": "Folded block scalar with strip chomping indicator. Trailing newlines are removed." },
90
+ "insertText": "${1:key}: >-\n ${2:This is a long}\n ${3:folded string}",
91
+ "insertTextRules": 4,
92
+ "sortText": "00_foldedstrip"
93
+ },
94
+ {
95
+ "label": "folded keep >+",
96
+ "kind": 15,
97
+ "detail": "Folded block scalar (keep trailing newlines)",
98
+ "documentation": { "value": "Folded block scalar with keep chomping indicator. All trailing newlines are preserved." },
99
+ "insertText": "${1:key}: >+\n ${2:This is a long}\n ${3:folded string}\n",
100
+ "insertTextRules": 4,
101
+ "sortText": "00_foldedkeep"
102
+ },
103
+ {
104
+ "label": "comment",
105
+ "kind": 14,
106
+ "detail": "YAML comment",
107
+ "documentation": { "value": "A YAML comment starts with `#`. Comments can appear on their own line or after a value." },
108
+ "insertText": "# ${1:comment}",
109
+ "insertTextRules": 4,
110
+ "sortText": "00_comment"
111
+ },
112
+ {
113
+ "label": "null value",
114
+ "kind": 14,
115
+ "detail": "Null value",
116
+ "documentation": { "value": "YAML null can be expressed as `null`, `~`, or by leaving the value empty." },
117
+ "insertText": "${1:key}: null",
118
+ "insertTextRules": 4,
119
+ "sortText": "00_null"
120
+ },
121
+ {
122
+ "label": "boolean true/false",
123
+ "kind": 14,
124
+ "detail": "Boolean value",
125
+ "documentation": { "value": "YAML boolean values: `true`, `false`, `yes`, `no`, `on`, `off` (YAML 1.1). In YAML 1.2 strict, only `true` and `false` are booleans." },
126
+ "insertText": "${1:key}: ${2|true,false|}",
127
+ "insertTextRules": 4,
128
+ "sortText": "00_boolean"
129
+ },
130
+ {
131
+ "label": "anchor & alias",
132
+ "kind": 15,
133
+ "detail": "Anchor (&) and Alias (*)",
134
+ "documentation": { "value": "Define a reusable node with an anchor `&name` and reference it elsewhere with an alias `*name`. Avoids duplication in YAML documents." },
135
+ "insertText": "${1:key}: &${2:anchor_name}\n ${3:child}: ${4:value}\n\n${5:other_key}: *${2:anchor_name}",
136
+ "insertTextRules": 4,
137
+ "sortText": "00_anchor"
138
+ },
139
+ {
140
+ "label": "merge key <<",
141
+ "kind": 15,
142
+ "detail": "Merge key (<<:)",
143
+ "documentation": { "value": "Merge key `<<` is used to merge mappings from an alias into the current mapping. Commonly used with anchors to share configuration." },
144
+ "insertText": "<<: *${1:anchor_name}",
145
+ "insertTextRules": 4,
146
+ "sortText": "00_merge"
147
+ },
148
+ {
149
+ "label": "document start ---",
150
+ "kind": 14,
151
+ "detail": "Document start marker",
152
+ "documentation": { "value": "The `---` marker indicates the start of a YAML document. Required when multiple documents exist in a single stream." },
153
+ "insertText": "---\n${1}",
154
+ "insertTextRules": 4,
155
+ "sortText": "00_docstart"
156
+ },
157
+ {
158
+ "label": "document end ...",
159
+ "kind": 14,
160
+ "detail": "Document end marker",
161
+ "documentation": { "value": "The `...` marker indicates the end of a YAML document without starting a new one." },
162
+ "insertText": "...\n${1}",
163
+ "insertTextRules": 4,
164
+ "sortText": "00_docend"
165
+ },
166
+ {
167
+ "label": "string (quoted)",
168
+ "kind": 5,
169
+ "detail": "Quoted string value",
170
+ "documentation": { "value": "A quoted string in YAML. Double quotes allow escape sequences (\\n, \\t, etc.). Single quotes treat content literally." },
171
+ "insertText": "${1:key}: \"${2:value}\"",
172
+ "insertTextRules": 4,
173
+ "sortText": "01_string"
174
+ },
175
+ {
176
+ "label": "integer",
177
+ "kind": 5,
178
+ "detail": "Integer value",
179
+ "documentation": { "value": "YAML integer types: decimal `123`, octal `0o14`, hexadecimal `0xC`." },
180
+ "insertText": "${1:key}: ${2:0}",
181
+ "insertTextRules": 4,
182
+ "sortText": "01_integer"
183
+ },
184
+ {
185
+ "label": "float",
186
+ "kind": 5,
187
+ "detail": "Float value",
188
+ "documentation": { "value": "YAML float types: fixed `1.23`, exponential `1.5e+3`, infinity `.inf`, not-a-number `.nan`." },
189
+ "insertText": "${1:key}: ${2:0.0}",
190
+ "insertTextRules": 4,
191
+ "sortText": "01_float"
192
+ },
193
+ {
194
+ "label": "date",
195
+ "kind": 5,
196
+ "detail": "Date value (ISO 8601)",
197
+ "documentation": { "value": "YAML date in ISO 8601 format: `YYYY-MM-DD`." },
198
+ "insertText": "${1:key}: ${2:2026-01-01}",
199
+ "insertTextRules": 4,
200
+ "sortText": "01_date"
201
+ },
202
+ {
203
+ "label": "timestamp",
204
+ "kind": 5,
205
+ "detail": "Timestamp value",
206
+ "documentation": { "value": "YAML timestamp in ISO 8601 format: `YYYY-MM-DDThh:mm:ss±hh:mm`." },
207
+ "insertText": "${1:key}: ${2:2026-01-01T00:00:00Z}",
208
+ "insertTextRules": 4,
209
+ "sortText": "01_timestamp"
210
+ },
211
+ {
212
+ "label": "binary (base64)",
213
+ "kind": 5,
214
+ "detail": "Binary value (base64)",
215
+ "documentation": { "value": "YAML binary data encoded as base64 string with the `!!binary` tag." },
216
+ "insertText": "${1:key}: !!binary |\n ${2:R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7}",
217
+ "insertTextRules": 4,
218
+ "sortText": "01_binary"
219
+ },
220
+ {
221
+ "label": "Docker Compose: service",
222
+ "kind": 15,
223
+ "detail": "Docker Compose service definition",
224
+ "documentation": { "value": "Define a Docker Compose service with image, ports, volumes, and environment variables." },
225
+ "insertText": "services:\n ${1:app}:\n image: ${2:nginx:latest}\n ports:\n - \"${3:8080}:${4:80}\"\n volumes:\n - ${5:./data}:${6:/var/data}\n environment:\n - ${7:NODE_ENV}=${8:production}",
226
+ "insertTextRules": 4,
227
+ "sortText": "02_dc_service"
228
+ },
229
+ {
230
+ "label": "Docker Compose: volumes",
231
+ "kind": 15,
232
+ "detail": "Docker Compose volumes",
233
+ "documentation": { "value": "Define named volumes for Docker Compose services." },
234
+ "insertText": "volumes:\n ${1:data_volume}:\n driver: ${2:local}",
235
+ "insertTextRules": 4,
236
+ "sortText": "02_dc_volumes"
237
+ },
238
+ {
239
+ "label": "Docker Compose: networks",
240
+ "kind": 15,
241
+ "detail": "Docker Compose networks",
242
+ "documentation": { "value": "Define custom networks for Docker Compose services to communicate." },
243
+ "insertText": "networks:\n ${1:app_network}:\n driver: ${2:bridge}",
244
+ "insertTextRules": 4,
245
+ "sortText": "02_dc_networks"
246
+ },
247
+ {
248
+ "label": "Docker Compose: ports",
249
+ "kind": 15,
250
+ "detail": "Docker Compose port mapping",
251
+ "documentation": { "value": "Map host ports to container ports. Format: `HOST:CONTAINER` or `HOST:CONTAINER/protocol`." },
252
+ "insertText": "ports:\n - \"${1:8080}:${2:80}\"",
253
+ "insertTextRules": 4,
254
+ "sortText": "02_dc_ports"
255
+ },
256
+ {
257
+ "label": "Docker Compose: environment",
258
+ "kind": 15,
259
+ "detail": "Docker Compose environment variables",
260
+ "documentation": { "value": "Set environment variables for a Docker Compose service." },
261
+ "insertText": "environment:\n ${1:KEY}: ${2:value}",
262
+ "insertTextRules": 4,
263
+ "sortText": "02_dc_env"
264
+ },
265
+ {
266
+ "label": "Docker Compose: depends_on",
267
+ "kind": 15,
268
+ "detail": "Docker Compose service dependency",
269
+ "documentation": { "value": "Express dependency between services. The dependent service starts after its dependencies." },
270
+ "insertText": "depends_on:\n ${1:db}:\n condition: ${2|service_started,service_healthy,service_completed_successfully|}",
271
+ "insertTextRules": 4,
272
+ "sortText": "02_dc_depends"
273
+ },
274
+ {
275
+ "label": "Docker Compose: build",
276
+ "kind": 15,
277
+ "detail": "Docker Compose build context",
278
+ "documentation": { "value": "Configure build context and Dockerfile for a service." },
279
+ "insertText": "build:\n context: ${1:.}\n dockerfile: ${2:Dockerfile}\n args:\n ${3:BUILD_ARG}: ${4:value}",
280
+ "insertTextRules": 4,
281
+ "sortText": "02_dc_build"
282
+ },
283
+ {
284
+ "label": "Docker Compose: healthcheck",
285
+ "kind": 15,
286
+ "detail": "Docker Compose healthcheck",
287
+ "documentation": { "value": "Configure a health check for a Docker Compose service to determine if it is running correctly." },
288
+ "insertText": "healthcheck:\n test: [\"CMD\", \"${1:curl}\", \"-f\", \"${2:http://localhost}\"]\n interval: ${3:30s}\n timeout: ${4:10s}\n retries: ${5:3}\n start_period: ${6:5s}",
289
+ "insertTextRules": 4,
290
+ "sortText": "02_dc_health"
291
+ },
292
+ {
293
+ "label": "Docker Compose: deploy",
294
+ "kind": 15,
295
+ "detail": "Docker Compose deploy with replicas",
296
+ "documentation": { "value": "Configure deployment options including replicas, resource limits, and restart policies (Swarm/Compose v3+)." },
297
+ "insertText": "deploy:\n replicas: ${1:3}\n resources:\n limits:\n cpus: \"${2:0.5}\"\n memory: ${3:512M}\n restart_policy:\n condition: ${4|on-failure,any,none|}",
298
+ "insertTextRules": 4,
299
+ "sortText": "02_dc_deploy"
300
+ },
301
+ {
302
+ "label": "GitHub Actions: workflow",
303
+ "kind": 27,
304
+ "detail": "GitHub Actions workflow",
305
+ "documentation": { "value": "Complete GitHub Actions workflow with name, trigger, and a job definition." },
306
+ "insertText": "name: ${1:CI}\n\non:\n push:\n branches: [${2:main}]\n pull_request:\n branches: [${2:main}]\n\njobs:\n ${3:build}:\n runs-on: ${4:ubuntu-latest}\n steps:\n - uses: actions/checkout@v4\n - name: ${5:Run tests}\n run: ${6:echo \"Hello\"}",
307
+ "insertTextRules": 4,
308
+ "sortText": "03_gha_workflow"
309
+ },
310
+ {
311
+ "label": "GitHub Actions: job",
312
+ "kind": 15,
313
+ "detail": "GitHub Actions job",
314
+ "documentation": { "value": "Define a job that runs on a specified runner with a sequence of steps." },
315
+ "insertText": "${1:job_name}:\n runs-on: ${2:ubuntu-latest}\n steps:\n - uses: actions/checkout@v4\n - name: ${3:Step name}\n run: ${4:echo \"done\"}",
316
+ "insertTextRules": 4,
317
+ "sortText": "03_gha_job"
318
+ },
319
+ {
320
+ "label": "GitHub Actions: step",
321
+ "kind": 15,
322
+ "detail": "GitHub Actions step",
323
+ "documentation": { "value": "A single step in a GitHub Actions job. Steps can run commands or use actions." },
324
+ "insertText": "- name: ${1:Step name}\n run: ${2:echo \"step\"}",
325
+ "insertTextRules": 4,
326
+ "sortText": "03_gha_step"
327
+ },
328
+ {
329
+ "label": "GitHub Actions: uses",
330
+ "kind": 15,
331
+ "detail": "GitHub Actions uses (action reference)",
332
+ "documentation": { "value": "Reference a reusable action from the GitHub Marketplace or a repository." },
333
+ "insertText": "- uses: ${1:actions/checkout}@${2:v4}\n with:\n ${3:fetch-depth}: ${4:0}",
334
+ "insertTextRules": 4,
335
+ "sortText": "03_gha_uses"
336
+ },
337
+ {
338
+ "label": "GitHub Actions: env",
339
+ "kind": 15,
340
+ "detail": "GitHub Actions environment variables",
341
+ "documentation": { "value": "Set environment variables at the workflow, job, or step level." },
342
+ "insertText": "env:\n ${1:MY_VAR}: ${2:value}",
343
+ "insertTextRules": 4,
344
+ "sortText": "03_gha_env"
345
+ },
346
+ {
347
+ "label": "GitHub Actions: schedule (cron)",
348
+ "kind": 15,
349
+ "detail": "GitHub Actions cron schedule trigger",
350
+ "documentation": { "value": "Trigger a workflow on a cron schedule. Uses POSIX cron syntax." },
351
+ "insertText": "on:\n schedule:\n - cron: '${1:0 0 * * *}'",
352
+ "insertTextRules": 4,
353
+ "sortText": "03_gha_schedule"
354
+ },
355
+ {
356
+ "label": "GitHub Actions: workflow_dispatch",
357
+ "kind": 15,
358
+ "detail": "GitHub Actions manual trigger",
359
+ "documentation": { "value": "Allow manual triggering of a workflow from the GitHub UI with optional input parameters." },
360
+ "insertText": "on:\n workflow_dispatch:\n inputs:\n ${1:input_name}:\n description: '${2:Description}'\n required: ${3|true,false|}\n default: '${4:default_value}'",
361
+ "insertTextRules": 4,
362
+ "sortText": "03_gha_dispatch"
363
+ },
364
+ {
365
+ "label": "GitHub Actions: matrix strategy",
366
+ "kind": 15,
367
+ "detail": "GitHub Actions matrix strategy",
368
+ "documentation": { "value": "Run a job across multiple configurations using a matrix strategy." },
369
+ "insertText": "strategy:\n matrix:\n ${1:node-version}: [${2:18, 20, 22}]\n fail-fast: ${3|true,false|}",
370
+ "insertTextRules": 4,
371
+ "sortText": "03_gha_matrix"
372
+ },
373
+ {
374
+ "label": "GitHub Actions: secrets",
375
+ "kind": 15,
376
+ "detail": "GitHub Actions secret reference",
377
+ "documentation": { "value": "Reference a repository or organization secret in a workflow." },
378
+ "insertText": "\\${{ secrets.${1:SECRET_NAME} }}",
379
+ "insertTextRules": 4,
380
+ "sortText": "03_gha_secrets"
381
+ },
382
+ {
383
+ "label": "GitHub Actions: if conditional",
384
+ "kind": 15,
385
+ "detail": "GitHub Actions conditional step",
386
+ "documentation": { "value": "Conditionally run a step or job using an `if` expression." },
387
+ "insertText": "- name: ${1:Conditional step}\n if: ${2:github.ref == 'refs/heads/main'}\n run: ${3:echo \"on main\"}",
388
+ "insertTextRules": 4,
389
+ "sortText": "03_gha_if"
390
+ },
391
+ {
392
+ "label": "Kubernetes: Pod",
393
+ "kind": 27,
394
+ "detail": "Kubernetes Pod manifest",
395
+ "documentation": { "value": "A Kubernetes Pod is the smallest deployable unit, consisting of one or more containers." },
396
+ "insertText": "apiVersion: v1\nkind: Pod\nmetadata:\n name: ${1:my-pod}\n labels:\n app: ${2:my-app}\nspec:\n containers:\n - name: ${3:container}\n image: ${4:nginx:latest}\n ports:\n - containerPort: ${5:80}",
397
+ "insertTextRules": 4,
398
+ "sortText": "04_k8s_pod"
399
+ },
400
+ {
401
+ "label": "Kubernetes: Deployment",
402
+ "kind": 27,
403
+ "detail": "Kubernetes Deployment manifest",
404
+ "documentation": { "value": "A Deployment manages a set of identical Pods, ensuring the desired number of replicas are running." },
405
+ "insertText": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: ${1:my-deployment}\nspec:\n replicas: ${2:3}\n selector:\n matchLabels:\n app: ${3:my-app}\n template:\n metadata:\n labels:\n app: ${3:my-app}\n spec:\n containers:\n - name: ${4:app}\n image: ${5:nginx:latest}\n ports:\n - containerPort: ${6:80}",
406
+ "insertTextRules": 4,
407
+ "sortText": "04_k8s_deployment"
408
+ },
409
+ {
410
+ "label": "Kubernetes: Service",
411
+ "kind": 27,
412
+ "detail": "Kubernetes Service manifest",
413
+ "documentation": { "value": "A Service exposes a set of Pods as a network service with a stable IP and DNS name." },
414
+ "insertText": "apiVersion: v1\nkind: Service\nmetadata:\n name: ${1:my-service}\nspec:\n selector:\n app: ${2:my-app}\n ports:\n - protocol: TCP\n port: ${3:80}\n targetPort: ${4:8080}\n type: ${5|ClusterIP,NodePort,LoadBalancer|}",
415
+ "insertTextRules": 4,
416
+ "sortText": "04_k8s_service"
417
+ },
418
+ {
419
+ "label": "Kubernetes: ConfigMap",
420
+ "kind": 27,
421
+ "detail": "Kubernetes ConfigMap manifest",
422
+ "documentation": { "value": "A ConfigMap stores non-confidential configuration data as key-value pairs." },
423
+ "insertText": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: ${1:my-config}\ndata:\n ${2:key}: ${3:value}",
424
+ "insertTextRules": 4,
425
+ "sortText": "04_k8s_configmap"
426
+ },
427
+ {
428
+ "label": "Kubernetes: Secret",
429
+ "kind": 27,
430
+ "detail": "Kubernetes Secret manifest",
431
+ "documentation": { "value": "A Secret stores sensitive data such as passwords, tokens, or keys in base64-encoded form." },
432
+ "insertText": "apiVersion: v1\nkind: Secret\nmetadata:\n name: ${1:my-secret}\ntype: ${2:Opaque}\ndata:\n ${3:key}: ${4:base64encodedvalue}",
433
+ "insertTextRules": 4,
434
+ "sortText": "04_k8s_secret"
435
+ },
436
+ {
437
+ "label": "Kubernetes: Ingress",
438
+ "kind": 27,
439
+ "detail": "Kubernetes Ingress manifest",
440
+ "documentation": { "value": "An Ingress manages external HTTP/HTTPS access to services in a cluster, typically via routing rules." },
441
+ "insertText": "apiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n name: ${1:my-ingress}\n annotations:\n nginx.ingress.kubernetes.io/rewrite-target: /\nspec:\n rules:\n - host: ${2:example.com}\n http:\n paths:\n - path: ${3:/}\n pathType: Prefix\n backend:\n service:\n name: ${4:my-service}\n port:\n number: ${5:80}",
442
+ "insertTextRules": 4,
443
+ "sortText": "04_k8s_ingress"
444
+ },
445
+ {
446
+ "label": "Kubernetes: PersistentVolumeClaim",
447
+ "kind": 27,
448
+ "detail": "Kubernetes PVC manifest",
449
+ "documentation": { "value": "A PersistentVolumeClaim requests storage resources from the cluster." },
450
+ "insertText": "apiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n name: ${1:my-pvc}\nspec:\n accessModes:\n - ${2|ReadWriteOnce,ReadOnlyMany,ReadWriteMany|}\n resources:\n requests:\n storage: ${3:1Gi}\n storageClassName: ${4:standard}",
451
+ "insertTextRules": 4,
452
+ "sortText": "04_k8s_pvc"
453
+ },
454
+ {
455
+ "label": "Kubernetes: Namespace",
456
+ "kind": 27,
457
+ "detail": "Kubernetes Namespace manifest",
458
+ "documentation": { "value": "A Namespace provides a scope for resource names, enabling multi-tenancy within a cluster." },
459
+ "insertText": "apiVersion: v1\nkind: Namespace\nmetadata:\n name: ${1:my-namespace}",
460
+ "insertTextRules": 4,
461
+ "sortText": "04_k8s_namespace"
462
+ },
463
+ {
464
+ "label": "Kubernetes: ServiceAccount",
465
+ "kind": 27,
466
+ "detail": "Kubernetes ServiceAccount manifest",
467
+ "documentation": { "value": "A ServiceAccount provides an identity for processes running in a Pod." },
468
+ "insertText": "apiVersion: v1\nkind: ServiceAccount\nmetadata:\n name: ${1:my-sa}\n namespace: ${2:default}",
469
+ "insertTextRules": 4,
470
+ "sortText": "04_k8s_sa"
471
+ },
472
+ {
473
+ "label": "Kubernetes: HorizontalPodAutoscaler",
474
+ "kind": 27,
475
+ "detail": "Kubernetes HPA manifest",
476
+ "documentation": { "value": "A HorizontalPodAutoscaler automatically scales the number of Pods based on observed CPU/memory utilization or custom metrics." },
477
+ "insertText": "apiVersion: autoscaling/v2\nkind: HorizontalPodAutoscaler\nmetadata:\n name: ${1:my-hpa}\nspec:\n scaleTargetRef:\n apiVersion: apps/v1\n kind: Deployment\n name: ${2:my-deployment}\n minReplicas: ${3:1}\n maxReplicas: ${4:10}\n metrics:\n - type: Resource\n resource:\n name: cpu\n target:\n type: Utilization\n averageUtilization: ${5:80}",
478
+ "insertTextRules": 4,
479
+ "sortText": "04_k8s_hpa"
480
+ },
481
+ {
482
+ "label": "CI/CD: stages",
483
+ "kind": 15,
484
+ "detail": "CI/CD pipeline stages",
485
+ "documentation": { "value": "Define sequential stages for a CI/CD pipeline (e.g., build, test, deploy)." },
486
+ "insertText": "stages:\n - ${1:build}\n - ${2:test}\n - ${3:deploy}",
487
+ "insertTextRules": 4,
488
+ "sortText": "05_cicd_stages"
489
+ },
490
+ {
491
+ "label": "CI/CD: job",
492
+ "kind": 15,
493
+ "detail": "CI/CD pipeline job",
494
+ "documentation": { "value": "Define a job within a CI/CD pipeline stage with a script to execute." },
495
+ "insertText": "${1:job_name}:\n stage: ${2:build}\n script:\n - ${3:echo \"Building...\"}\n only:\n - ${4:main}",
496
+ "insertTextRules": 4,
497
+ "sortText": "05_cicd_job"
498
+ },
499
+ {
500
+ "label": "CI/CD: artifacts",
501
+ "kind": 15,
502
+ "detail": "CI/CD pipeline artifacts",
503
+ "documentation": { "value": "Define artifacts to be saved after a job completes, available for download or later stages." },
504
+ "insertText": "artifacts:\n paths:\n - ${1:build/}\n expire_in: ${2:1 week}",
505
+ "insertTextRules": 4,
506
+ "sortText": "05_cicd_artifacts"
507
+ },
508
+ {
509
+ "label": "CI/CD: cache",
510
+ "kind": 15,
511
+ "detail": "CI/CD pipeline cache",
512
+ "documentation": { "value": "Cache dependencies or build outputs between pipeline runs to speed up execution." },
513
+ "insertText": "cache:\n key: ${1:\\$CI_COMMIT_REF_SLUG}\n paths:\n - ${2:node_modules/}\n - ${3:.cache/}",
514
+ "insertTextRules": 4,
515
+ "sortText": "05_cicd_cache"
516
+ },
517
+ {
518
+ "label": "tagged value (!!type)",
519
+ "kind": 14,
520
+ "detail": "Explicit type tag",
521
+ "documentation": { "value": "Force a specific type interpretation using a YAML tag: `!!str`, `!!int`, `!!float`, `!!bool`, `!!null`, `!!binary`, etc." },
522
+ "insertText": "${1:key}: !!${2|str,int,float,bool,null,binary,seq,map|} ${3:value}",
523
+ "insertTextRules": 4,
524
+ "sortText": "01_tag"
525
+ },
526
+ {
527
+ "label": "multi-document YAML",
528
+ "kind": 15,
529
+ "detail": "Multiple YAML documents in one file",
530
+ "documentation": { "value": "YAML supports multiple documents in one file separated by `---`. Each document is independent." },
531
+ "insertText": "---\n${1:# Document 1}\n${2:key}: ${3:value}\n---\n${4:# Document 2}\n${5:key}: ${6:value}",
532
+ "insertTextRules": 4,
533
+ "sortText": "00_multidoc"
534
+ },
535
+ {
536
+ "label": "sequence of mappings",
537
+ "kind": 15,
538
+ "detail": "List of objects",
539
+ "documentation": { "value": "A sequence where each item is a mapping (list of objects). Common pattern in YAML configurations." },
540
+ "insertText": "${1:items}:\n - ${2:name}: ${3:item1}\n ${4:value}: ${5:100}\n - ${2:name}: ${6:item2}\n ${4:value}: ${7:200}",
541
+ "insertTextRules": 4,
542
+ "sortText": "00_seqmap"
543
+ },
544
+ {
545
+ "label": "Docker Compose: full stack",
546
+ "kind": 27,
547
+ "detail": "Docker Compose full stack template",
548
+ "documentation": { "value": "Complete Docker Compose file with multiple services, volumes, and networks." },
549
+ "insertText": "version: '${1:3.8}'\n\nservices:\n ${2:web}:\n build: .\n ports:\n - \"${3:3000}:${4:3000}\"\n depends_on:\n - ${5:db}\n environment:\n DATABASE_URL: postgres://${6:user}:${7:pass}@${5:db}:5432/${8:mydb}\n\n ${5:db}:\n image: postgres:${9:16}\n volumes:\n - db_data:/var/lib/postgresql/data\n environment:\n POSTGRES_USER: ${6:user}\n POSTGRES_PASSWORD: ${7:pass}\n POSTGRES_DB: ${8:mydb}\n\nvolumes:\n db_data:",
550
+ "insertTextRules": 4,
551
+ "sortText": "02_dc_fullstack"
552
+ },
553
+ {
554
+ "label": "GitHub Actions: on push/PR",
555
+ "kind": 15,
556
+ "detail": "GitHub Actions push & PR triggers",
557
+ "documentation": { "value": "Trigger a workflow on push and pull_request events for specific branches." },
558
+ "insertText": "on:\n push:\n branches: [${1:main}]\n paths:\n - '${2:src/**}'\n pull_request:\n branches: [${1:main}]",
559
+ "insertTextRules": 4,
560
+ "sortText": "03_gha_on"
561
+ }
562
+ ]
563
+ }