@enjoys/context-engine 1.6.0 → 1.7.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 (546) hide show
  1. package/README.md +8 -8
  2. package/data/color/abap.json +8 -8
  3. package/data/color/angular.json +11 -36
  4. package/data/color/apex.json +8 -8
  5. package/data/color/awk.json +40 -80
  6. package/data/color/azcli.json +8 -8
  7. package/data/color/bicep.json +8 -8
  8. package/data/color/c.json +4 -4
  9. package/data/color/caddy.json +8 -8
  10. package/data/color/cameligo.json +8 -8
  11. package/data/color/clojure.json +8 -8
  12. package/data/color/coffee.json +10 -17
  13. package/data/color/cpp.json +4 -4
  14. package/data/color/crontab.json +8 -8
  15. package/data/color/csharp.json +49 -109
  16. package/data/color/css.json +8 -32
  17. package/data/color/cypher.json +8 -8
  18. package/data/color/docker-compose.json +8 -8
  19. package/data/color/dockerfile.json +8 -8
  20. package/data/color/doctest.json +8 -8
  21. package/data/color/dotenv.json +8 -8
  22. package/data/color/ecl.json +8 -8
  23. package/data/color/elixir.json +49 -109
  24. package/data/color/flow9.json +8 -8
  25. package/data/color/freemarker2.json +61 -121
  26. package/data/color/go.json +4 -4
  27. package/data/color/graphql.json +8 -8
  28. package/data/color/hcl.json +8 -8
  29. package/data/color/html.json +13 -43
  30. package/data/color/ini.json +8 -8
  31. package/data/color/java.json +49 -109
  32. package/data/color/javascript.json +13 -43
  33. package/data/color/json.json +8 -8
  34. package/data/color/julia.json +49 -109
  35. package/data/color/less.json +10 -17
  36. package/data/color/lexon.json +8 -8
  37. package/data/color/liquid.json +61 -121
  38. package/data/color/lua.json +4 -4
  39. package/data/color/m3.json +8 -8
  40. package/data/color/makefile.json +8 -8
  41. package/data/color/markdown.json +61 -121
  42. package/data/color/mdx.json +61 -121
  43. package/data/color/mips.json +8 -8
  44. package/data/color/msdax.json +8 -8
  45. package/data/color/mysql.json +8 -8
  46. package/data/color/nestjs.json +52 -18
  47. package/data/color/nextjs.json +60 -22
  48. package/data/color/nginx.json +8 -8
  49. package/data/color/objective-c.json +4 -4
  50. package/data/color/pascal.json +8 -8
  51. package/data/color/pascaligo.json +8 -8
  52. package/data/color/perl.json +4 -4
  53. package/data/color/pgsql.json +8 -8
  54. package/data/color/php.json +13 -43
  55. package/data/color/pla.json +8 -8
  56. package/data/color/postiats.json +8 -8
  57. package/data/color/powerquery.json +8 -8
  58. package/data/color/powershell.json +40 -80
  59. package/data/color/protobuf.json +8 -8
  60. package/data/color/python.json +49 -109
  61. package/data/color/qsharp.json +8 -8
  62. package/data/color/r.json +49 -109
  63. package/data/color/razor.json +61 -121
  64. package/data/color/react.json +65 -93
  65. package/data/color/redis-cli.json +8 -8
  66. package/data/color/redis.json +8 -8
  67. package/data/color/redshift.json +8 -8
  68. package/data/color/restructuredtext.json +8 -8
  69. package/data/color/ruby.json +49 -109
  70. package/data/color/rust.json +4 -4
  71. package/data/color/sb.json +8 -8
  72. package/data/color/scala.json +2 -12
  73. package/data/color/scheme.json +8 -8
  74. package/data/color/scss.json +10 -17
  75. package/data/color/shadcn.json +11 -36
  76. package/data/color/shell.json +8 -48
  77. package/data/color/sol.json +8 -8
  78. package/data/color/sparql.json +8 -8
  79. package/data/color/sql.json +8 -8
  80. package/data/color/ssh_config.json +8 -8
  81. package/data/color/st.json +8 -8
  82. package/data/color/swift.json +56 -37
  83. package/data/color/systemd.json +8 -8
  84. package/data/color/systemverilog.json +8 -8
  85. package/data/color/tailwindcss.json +6 -24
  86. package/data/color/tcl.json +40 -80
  87. package/data/color/toml.json +8 -8
  88. package/data/color/twig.json +61 -121
  89. package/data/color/typescript.json +13 -43
  90. package/data/color/vb.json +49 -109
  91. package/data/color/wgsl.json +8 -8
  92. package/data/color/xml.json +61 -121
  93. package/data/color/yaml.json +8 -8
  94. package/data/commands/air.json +117 -59
  95. package/data/commands/alembic.json +487 -301
  96. package/data/commands/aliyun.json +158 -0
  97. package/data/commands/amplify.json +174 -0
  98. package/data/commands/ansible.json +236 -24
  99. package/data/commands/apt-get.json +244 -81
  100. package/data/commands/apt.json +294 -91
  101. package/data/commands/argo.json +212 -0
  102. package/data/commands/argocd.json +144 -35
  103. package/data/commands/atlas.json +956 -426
  104. package/data/commands/aws-copilot.json +161 -0
  105. package/data/commands/aws-vault.json +266 -140
  106. package/data/commands/az-devops.json +155 -0
  107. package/data/commands/bazel.json +328 -103
  108. package/data/commands/bq.json +177 -0
  109. package/data/commands/brew.json +444 -140
  110. package/data/commands/btop.json +132 -59
  111. package/data/commands/cabal.json +1 -1
  112. package/data/commands/calicoctl.json +154 -0
  113. package/data/commands/cd.json +90 -48
  114. package/data/commands/chamber.json +128 -0
  115. package/data/commands/choco.json +430 -134
  116. package/data/commands/chown.json +139 -59
  117. package/data/commands/cilium.json +154 -0
  118. package/data/commands/civo.json +147 -0
  119. package/data/commands/clickhouse-client.json +183 -74
  120. package/data/commands/cloudflared.json +133 -0
  121. package/data/commands/cmake.json +301 -110
  122. package/data/commands/cmctl.json +143 -0
  123. package/data/commands/cockroach.json +269 -92
  124. package/data/commands/conda.json +435 -94
  125. package/data/commands/consul.json +377 -125
  126. package/data/commands/crossplane.json +119 -0
  127. package/data/commands/crystal.json +1 -1
  128. package/data/commands/dbmate.json +498 -257
  129. package/data/commands/devspace.json +198 -0
  130. package/data/commands/django-admin.json +489 -86
  131. package/data/commands/dnf.json +428 -137
  132. package/data/commands/dockerfile.json +1 -1
  133. package/data/commands/doctl.json +510 -156
  134. package/data/commands/doppler.json +161 -0
  135. package/data/commands/dotnet.json +1 -1
  136. package/data/commands/drizzle-kit.json +435 -217
  137. package/data/commands/eb.json +201 -0
  138. package/data/commands/ecs-cli.json +132 -0
  139. package/data/commands/erlang.json +1 -1
  140. package/data/commands/eslint.json +193 -69
  141. package/data/commands/expo.json +65 -65
  142. package/data/commands/firebase.json +406 -97
  143. package/data/commands/flask.json +254 -79
  144. package/data/commands/flux.json +190 -0
  145. package/data/commands/flyctl.json +657 -148
  146. package/data/commands/flyway.json +580 -261
  147. package/data/commands/garden.json +180 -0
  148. package/data/commands/ghc.json +1 -1
  149. package/data/commands/glab.json +577 -116
  150. package/data/commands/gofmt.json +101 -51
  151. package/data/commands/golangci-lint.json +243 -89
  152. package/data/commands/gradle.json +182 -44
  153. package/data/commands/gsutil.json +197 -0
  154. package/data/commands/gunicorn.json +243 -83
  155. package/data/commands/hcloud.json +169 -0
  156. package/data/commands/helmfile.json +178 -0
  157. package/data/commands/heroku.json +239 -0
  158. package/data/commands/hg.json +502 -92
  159. package/data/commands/htop.json +151 -56
  160. package/data/commands/ibmcloud.json +184 -0
  161. package/data/commands/infisical.json +127 -0
  162. package/data/commands/influx.json +363 -119
  163. package/data/commands/iptables.json +251 -86
  164. package/data/commands/istioctl.json +129 -23
  165. package/data/commands/javac.json +1 -1
  166. package/data/commands/just.json +262 -93
  167. package/data/commands/k3d.json +156 -0
  168. package/data/commands/k3s.json +134 -0
  169. package/data/commands/k9s.json +169 -62
  170. package/data/commands/kamel.json +155 -0
  171. package/data/commands/kn.json +160 -0
  172. package/data/commands/kube-score.json +86 -0
  173. package/data/commands/kubeconform.json +98 -0
  174. package/data/commands/kubectx.json +58 -0
  175. package/data/commands/kubens.json +45 -0
  176. package/data/commands/kustomize.json +82 -17
  177. package/data/commands/lightsail.json +168 -0
  178. package/data/commands/linkerd.json +174 -0
  179. package/data/commands/linode-cli.json +360 -117
  180. package/data/commands/linux.json +1 -1
  181. package/data/commands/liquibase.json +739 -399
  182. package/data/commands/manifest.json +1 -1
  183. package/data/commands/mc.json +236 -0
  184. package/data/commands/minikube.json +264 -60
  185. package/data/commands/mix.json +1 -1
  186. package/data/commands/mongosh.json +174 -73
  187. package/data/commands/mvn.json +179 -45
  188. package/data/commands/mysql.json +1 -1
  189. package/data/commands/nest.json +270 -69
  190. package/data/commands/netlify.json +384 -92
  191. package/data/commands/next.json +221 -71
  192. package/data/commands/nft.json +299 -105
  193. package/data/commands/nim.json +1 -1
  194. package/data/commands/nomad.json +398 -139
  195. package/data/commands/npx.json +141 -58
  196. package/data/commands/nx.json +348 -82
  197. package/data/commands/ocaml.json +1 -1
  198. package/data/commands/oci.json +184 -0
  199. package/data/commands/okteto.json +164 -0
  200. package/data/commands/opam.json +1 -1
  201. package/data/commands/openstack.json +212 -0
  202. package/data/commands/packer.json +273 -92
  203. package/data/commands/pacman.json +228 -82
  204. package/data/commands/pg_dump.json +233 -83
  205. package/data/commands/pg_restore.json +224 -74
  206. package/data/commands/pipenv.json +300 -79
  207. package/data/commands/pipx.json +241 -53
  208. package/data/commands/poetry.json +521 -96
  209. package/data/commands/popeye.json +109 -0
  210. package/data/commands/prettier.json +201 -71
  211. package/data/commands/pulumi.json +409 -130
  212. package/data/commands/pytest.json +240 -92
  213. package/data/commands/railway.json +343 -91
  214. package/data/commands/rancher.json +141 -0
  215. package/data/commands/rclone.json +275 -0
  216. package/data/commands/react-native.json +57 -57
  217. package/data/commands/rebar3.json +1 -1
  218. package/data/commands/render.json +235 -72
  219. package/data/commands/rustc.json +1 -1
  220. package/data/commands/rustup.json +339 -103
  221. package/data/commands/s3cmd.json +201 -0
  222. package/data/commands/scala.json +1 -1
  223. package/data/commands/scp.json +146 -60
  224. package/data/commands/scw.json +169 -0
  225. package/data/commands/sequelize.json +629 -342
  226. package/data/commands/skaffold.json +189 -0
  227. package/data/commands/skopeo.json +100 -19
  228. package/data/commands/sops.json +112 -24
  229. package/data/commands/sqlite3.json +167 -68
  230. package/data/commands/stack.json +1 -1
  231. package/data/commands/stern.json +124 -0
  232. package/data/commands/supabase.json +433 -108
  233. package/data/commands/svn.json +509 -75
  234. package/data/commands/swiftc.json +1 -1
  235. package/data/commands/telepresence.json +122 -0
  236. package/data/commands/terraform.json +1505 -824
  237. package/data/commands/terragrunt.json +217 -83
  238. package/data/commands/tilt.json +160 -0
  239. package/data/commands/tkn.json +150 -0
  240. package/data/commands/top.json +167 -61
  241. package/data/commands/tsc.json +234 -85
  242. package/data/commands/turbo.json +263 -72
  243. package/data/commands/typeorm.json +427 -262
  244. package/data/commands/ufw.json +254 -76
  245. package/data/commands/unzip.json +154 -59
  246. package/data/commands/upcloud.json +129 -0
  247. package/data/commands/uvicorn.json +215 -73
  248. package/data/commands/vault.json +462 -144
  249. package/data/commands/velero.json +141 -0
  250. package/data/commands/vercel.json +410 -98
  251. package/data/commands/vite.json +239 -63
  252. package/data/commands/vultr.json +157 -0
  253. package/data/commands/wasm-pack.json +254 -90
  254. package/data/commands/winget.json +466 -131
  255. package/data/commands/wrangler.json +129 -29
  256. package/data/commands/yum.json +323 -98
  257. package/data/commands/zig.json +1 -1
  258. package/data/commands/zip.json +159 -59
  259. package/data/completion/abap.json +423 -341
  260. package/data/completion/apex.json +423 -43
  261. package/data/completion/awk.json +1 -45
  262. package/data/completion/azcli.json +58 -115
  263. package/data/completion/bicep.json +90 -90
  264. package/data/completion/cameligo.json +533 -487
  265. package/data/completion/clojure.json +533 -488
  266. package/data/completion/coffee.json +522 -479
  267. package/data/completion/crontab.json +1 -34
  268. package/data/completion/cypher.json +687 -628
  269. package/data/completion/docker-compose.json +962 -959
  270. package/data/completion/dockerfile.json +1270 -1285
  271. package/data/completion/doctest.json +489 -526
  272. package/data/completion/ecl.json +588 -598
  273. package/data/completion/elixir.json +709 -649
  274. package/data/completion/flow9.json +401 -376
  275. package/data/completion/freemarker2.json +632 -579
  276. package/data/completion/go.json +10037 -10037
  277. package/data/completion/julia.json +698 -638
  278. package/data/completion/less.json +412 -378
  279. package/data/completion/lexon.json +80 -52
  280. package/data/completion/liquid.json +544 -499
  281. package/data/completion/lua.json +2535 -2634
  282. package/data/completion/m3.json +643 -587
  283. package/data/completion/makefile.json +1 -56
  284. package/data/completion/markdown.json +1 -56
  285. package/data/completion/mips.json +83 -49
  286. package/data/completion/msdax.json +511 -467
  287. package/data/completion/mysql.json +676 -638
  288. package/data/completion/objective-c.json +687 -629
  289. package/data/completion/pascal.json +709 -649
  290. package/data/completion/pascaligo.json +544 -517
  291. package/data/completion/perl.json +1 -89
  292. package/data/completion/pgsql.json +698 -638
  293. package/data/completion/postiats.json +445 -417
  294. package/data/completion/powerquery.json +621 -587
  295. package/data/completion/powershell.json +1 -166
  296. package/data/completion/protobuf.json +7 -117
  297. package/data/completion/qsharp.json +643 -587
  298. package/data/completion/r.json +2469 -1985
  299. package/data/completion/razor.json +533 -488
  300. package/data/completion/redis-cli.json +120 -60
  301. package/data/completion/redis.json +423 -389
  302. package/data/completion/redshift.json +698 -638
  303. package/data/completion/restructuredtext.json +544 -499
  304. package/data/completion/ruby.json +1930 -1531
  305. package/data/completion/sb.json +434 -398
  306. package/data/completion/scheme.json +555 -510
  307. package/data/completion/scss.json +544 -500
  308. package/data/completion/shell.json +115 -70
  309. package/data/completion/sol.json +720 -660
  310. package/data/completion/sparql.json +643 -587
  311. package/data/completion/st.json +698 -638
  312. package/data/completion/systemverilog.json +698 -638
  313. package/data/completion/tailwindcss.json +2821 -284
  314. package/data/completion/tcl.json +544 -499
  315. package/data/completion/twig.json +555 -510
  316. package/data/completion/vb.json +720 -660
  317. package/data/completion/wgsl.json +709 -649
  318. package/data/foldingRange/abap.json +0 -24
  319. package/data/foldingRange/angular.json +0 -18
  320. package/data/foldingRange/apex.json +0 -24
  321. package/data/foldingRange/awk.json +0 -18
  322. package/data/foldingRange/azcli.json +0 -18
  323. package/data/foldingRange/bicep.json +0 -18
  324. package/data/foldingRange/c.json +0 -24
  325. package/data/foldingRange/caddy.json +0 -18
  326. package/data/foldingRange/cameligo.json +0 -18
  327. package/data/foldingRange/clojure.json +0 -18
  328. package/data/foldingRange/coffee.json +0 -18
  329. package/data/foldingRange/cpp.json +0 -24
  330. package/data/foldingRange/crontab.json +0 -18
  331. package/data/foldingRange/csharp.json +0 -24
  332. package/data/foldingRange/css.json +5 -19
  333. package/data/foldingRange/cypher.json +0 -18
  334. package/data/foldingRange/dart.json +0 -24
  335. package/data/foldingRange/docker-compose.json +0 -18
  336. package/data/foldingRange/dockerfile.json +0 -18
  337. package/data/foldingRange/doctest.json +0 -18
  338. package/data/foldingRange/dotenv.json +0 -18
  339. package/data/foldingRange/ecl.json +0 -30
  340. package/data/foldingRange/elixir.json +0 -24
  341. package/data/foldingRange/flow9.json +0 -12
  342. package/data/foldingRange/freemarker2.json +0 -12
  343. package/data/foldingRange/go.json +0 -24
  344. package/data/foldingRange/graphql.json +0 -12
  345. package/data/foldingRange/hcl.json +0 -12
  346. package/data/foldingRange/html.json +0 -18
  347. package/data/foldingRange/ini.json +0 -18
  348. package/data/foldingRange/java.json +0 -24
  349. package/data/foldingRange/javascript.json +0 -24
  350. package/data/foldingRange/json.json +0 -12
  351. package/data/foldingRange/julia.json +0 -12
  352. package/data/foldingRange/kotlin.json +0 -18
  353. package/data/foldingRange/less.json +0 -18
  354. package/data/foldingRange/lexon.json +0 -12
  355. package/data/foldingRange/liquid.json +0 -18
  356. package/data/foldingRange/lua.json +0 -24
  357. package/data/foldingRange/m3.json +0 -18
  358. package/data/foldingRange/makefile.json +0 -12
  359. package/data/foldingRange/markdown.json +0 -12
  360. package/data/foldingRange/mdx.json +0 -18
  361. package/data/foldingRange/mips.json +0 -18
  362. package/data/foldingRange/msdax.json +0 -12
  363. package/data/foldingRange/mysql.json +0 -18
  364. package/data/foldingRange/nestjs.json +0 -24
  365. package/data/foldingRange/nextjs.json +0 -24
  366. package/data/foldingRange/nginx.json +0 -12
  367. package/data/foldingRange/objective-c.json +0 -18
  368. package/data/foldingRange/pascal.json +0 -18
  369. package/data/foldingRange/pascaligo.json +0 -12
  370. package/data/foldingRange/perl.json +0 -18
  371. package/data/foldingRange/pgsql.json +0 -18
  372. package/data/foldingRange/php.json +0 -18
  373. package/data/foldingRange/pla.json +0 -12
  374. package/data/foldingRange/postiats.json +0 -18
  375. package/data/foldingRange/powerquery.json +0 -12
  376. package/data/foldingRange/powershell.json +0 -18
  377. package/data/foldingRange/protobuf.json +0 -12
  378. package/data/foldingRange/python.json +0 -18
  379. package/data/foldingRange/qsharp.json +0 -12
  380. package/data/foldingRange/r.json +0 -12
  381. package/data/foldingRange/razor.json +0 -18
  382. package/data/foldingRange/react.json +0 -24
  383. package/data/foldingRange/redis-cli.json +0 -12
  384. package/data/foldingRange/redis.json +0 -18
  385. package/data/foldingRange/redshift.json +0 -18
  386. package/data/foldingRange/restructuredtext.json +0 -12
  387. package/data/foldingRange/ruby.json +0 -24
  388. package/data/foldingRange/rust.json +0 -18
  389. package/data/foldingRange/sb.json +0 -18
  390. package/data/foldingRange/scala.json +0 -18
  391. package/data/foldingRange/scheme.json +0 -12
  392. package/data/foldingRange/scss.json +0 -18
  393. package/data/foldingRange/shadcn.json +0 -24
  394. package/data/foldingRange/shell.json +0 -18
  395. package/data/foldingRange/sol.json +0 -18
  396. package/data/foldingRange/sparql.json +0 -12
  397. package/data/foldingRange/sql.json +0 -18
  398. package/data/foldingRange/ssh_config.json +0 -12
  399. package/data/foldingRange/st.json +0 -18
  400. package/data/foldingRange/swift.json +0 -18
  401. package/data/foldingRange/systemd.json +0 -12
  402. package/data/foldingRange/systemverilog.json +0 -12
  403. package/data/foldingRange/tailwindcss.json +0 -12
  404. package/data/foldingRange/tcl.json +0 -18
  405. package/data/foldingRange/toml.json +0 -12
  406. package/data/foldingRange/twig.json +0 -12
  407. package/data/foldingRange/typescript.json +0 -24
  408. package/data/foldingRange/vb.json +0 -18
  409. package/data/foldingRange/wgsl.json +0 -12
  410. package/data/foldingRange/xml.json +0 -18
  411. package/data/foldingRange/yaml.json +0 -12
  412. package/data/formatting/awk.json +5 -5
  413. package/data/formatting/azcli.json +1 -1
  414. package/data/formatting/c.json +5 -5
  415. package/data/formatting/caddy.json +4 -4
  416. package/data/formatting/cpp.json +5 -5
  417. package/data/formatting/crontab.json +2 -2
  418. package/data/formatting/csharp.json +5 -5
  419. package/data/formatting/dockerfile.json +4 -3
  420. package/data/formatting/dotenv.json +2 -2
  421. package/data/formatting/elixir.json +3 -3
  422. package/data/formatting/go.json +5 -5
  423. package/data/formatting/graphql.json +4 -4
  424. package/data/formatting/hcl.json +8 -8
  425. package/data/formatting/html.json +8 -8
  426. package/data/formatting/ini.json +4 -3
  427. package/data/formatting/java.json +5 -5
  428. package/data/formatting/javascript.json +5 -5
  429. package/data/formatting/json.json +4 -4
  430. package/data/formatting/less.json +8 -4
  431. package/data/formatting/lua.json +5 -5
  432. package/data/formatting/makefile.json +8 -4
  433. package/data/formatting/markdown.json +4 -4
  434. package/data/formatting/mips.json +2 -1
  435. package/data/formatting/mysql.json +1 -1
  436. package/data/formatting/nginx.json +5 -5
  437. package/data/formatting/perl.json +5 -5
  438. package/data/formatting/pgsql.json +1 -1
  439. package/data/formatting/php.json +5 -5
  440. package/data/formatting/powershell.json +5 -5
  441. package/data/formatting/protobuf.json +4 -4
  442. package/data/formatting/python.json +5 -5
  443. package/data/formatting/r.json +6 -6
  444. package/data/formatting/redis-cli.json +2 -2
  445. package/data/formatting/redshift.json +1 -1
  446. package/data/formatting/restructuredtext.json +2 -1
  447. package/data/formatting/ruby.json +5 -5
  448. package/data/formatting/rust.json +5 -5
  449. package/data/formatting/scala.json +6 -2
  450. package/data/formatting/scss.json +8 -4
  451. package/data/formatting/shell.json +1 -16
  452. package/data/formatting/sql.json +5 -5
  453. package/data/formatting/ssh_config.json +4 -3
  454. package/data/formatting/swift.json +6 -2
  455. package/data/formatting/systemd.json +2 -2
  456. package/data/formatting/toml.json +4 -3
  457. package/data/formatting/typescript.json +5 -5
  458. package/data/formatting/xml.json +8 -8
  459. package/data/formatting/yaml.json +4 -3
  460. package/data/links/abap.json +14 -14
  461. package/data/links/apex.json +18 -18
  462. package/data/links/awk.json +20 -20
  463. package/data/links/azcli.json +20 -20
  464. package/data/links/bicep.json +12 -12
  465. package/data/links/c.json +22 -22
  466. package/data/links/caddy.json +22 -22
  467. package/data/links/cameligo.json +20 -20
  468. package/data/links/clojure.json +12 -12
  469. package/data/links/coffee.json +14 -14
  470. package/data/links/cpp.json +22 -22
  471. package/data/links/crontab.json +22 -22
  472. package/data/links/csharp.json +22 -22
  473. package/data/links/cypher.json +18 -18
  474. package/data/links/dart.json +2 -2
  475. package/data/links/docker-compose.json +8 -8
  476. package/data/links/dockerfile.json +22 -22
  477. package/data/links/doctest.json +20 -20
  478. package/data/links/dotenv.json +20 -20
  479. package/data/links/ecl.json +18 -18
  480. package/data/links/elixir.json +12 -12
  481. package/data/links/flow9.json +22 -22
  482. package/data/links/freemarker2.json +10 -10
  483. package/data/links/go.json +23 -23
  484. package/data/links/graphql.json +18 -18
  485. package/data/links/hcl.json +22 -22
  486. package/data/links/html.json +19 -19
  487. package/data/links/ini.json +20 -20
  488. package/data/links/java.json +22 -22
  489. package/data/links/javascript.json +20 -20
  490. package/data/links/json.json +16 -16
  491. package/data/links/julia.json +16 -16
  492. package/data/links/kotlin.json +14 -14
  493. package/data/links/less.json +10 -10
  494. package/data/links/lexon.json +24 -24
  495. package/data/links/liquid.json +8 -8
  496. package/data/links/lua.json +22 -22
  497. package/data/links/m3.json +20 -20
  498. package/data/links/makefile.json +22 -22
  499. package/data/links/markdown.json +25 -25
  500. package/data/links/mdx.json +12 -12
  501. package/data/links/mips.json +22 -22
  502. package/data/links/msdax.json +22 -22
  503. package/data/links/mysql.json +17 -17
  504. package/data/links/nginx.json +22 -22
  505. package/data/links/objective-c.json +14 -14
  506. package/data/links/pascal.json +16 -16
  507. package/data/links/pascaligo.json +20 -20
  508. package/data/links/perl.json +22 -22
  509. package/data/links/pgsql.json +14 -14
  510. package/data/links/php.json +22 -22
  511. package/data/links/pla.json +24 -24
  512. package/data/links/postiats.json +18 -18
  513. package/data/links/powerquery.json +20 -20
  514. package/data/links/powershell.json +24 -24
  515. package/data/links/protobuf.json +22 -22
  516. package/data/links/python.json +27 -22
  517. package/data/links/qsharp.json +20 -20
  518. package/data/links/r.json +21 -21
  519. package/data/links/razor.json +8 -8
  520. package/data/links/redis-cli.json +22 -22
  521. package/data/links/redis.json +22 -22
  522. package/data/links/redshift.json +16 -16
  523. package/data/links/restructuredtext.json +10 -10
  524. package/data/links/ruby.json +22 -22
  525. package/data/links/rust.json +22 -22
  526. package/data/links/sb.json +24 -24
  527. package/data/links/scheme.json +12 -12
  528. package/data/links/scss.json +2 -2
  529. package/data/links/shell.json +1 -6
  530. package/data/links/sol.json +16 -16
  531. package/data/links/sparql.json +18 -18
  532. package/data/links/sql.json +18 -18
  533. package/data/links/ssh_config.json +22 -22
  534. package/data/links/st.json +20 -20
  535. package/data/links/swift.json +8 -8
  536. package/data/links/systemd.json +18 -18
  537. package/data/links/systemverilog.json +20 -20
  538. package/data/links/tcl.json +16 -16
  539. package/data/links/toml.json +16 -16
  540. package/data/links/typescript.json +20 -20
  541. package/data/links/vb.json +16 -16
  542. package/data/links/wgsl.json +24 -24
  543. package/data/links/xml.json +22 -22
  544. package/data/links/yaml.json +12 -12
  545. package/data/manifest.json +2 -2
  546. package/package.json +2 -2
@@ -1,959 +1,962 @@
1
- {
2
- "language": "docker-compose",
3
- "completions": [
4
- {
5
- "label": "version",
6
- "kind": 14,
7
- "detail": "Compose file version (deprecated)",
8
- "documentation": {
9
- "value": "```yaml\nversion: '3.8'\n```\nSpecify the Compose file format version. Deprecated in recent Compose specs — the latest format is inferred automatically."
10
- },
11
- "insertText": "version: '${1:3.8}'",
12
- "insertTextRules": 4,
13
- "sortText": "01_version"
14
- },
15
- {
16
- "label": "services",
17
- "kind": 17,
18
- "detail": "Define services",
19
- "documentation": {
20
- "value": "```yaml\nservices:\n web:\n image: nginx\n```\nTop-level element that defines the containers (services) to run."
21
- },
22
- "insertText": "services:\n ${1:service_name}:\n ${0}",
23
- "insertTextRules": 4,
24
- "sortText": "01_services"
25
- },
26
- {
27
- "label": "networks",
28
- "kind": 17,
29
- "detail": "Define networks",
30
- "documentation": {
31
- "value": "```yaml\nnetworks:\n frontend:\n driver: bridge\n```\nTop-level element that defines custom networks for services to connect to."
32
- },
33
- "insertText": "networks:\n ${1:network_name}:\n driver: ${2:bridge}",
34
- "insertTextRules": 4,
35
- "sortText": "01_networks"
36
- },
37
- {
38
- "label": "volumes",
39
- "kind": 17,
40
- "detail": "Define named volumes",
41
- "documentation": {
42
- "value": "```yaml\nvolumes:\n db_data:\n driver: local\n```\nTop-level element that defines named volumes for persistent data storage."
43
- },
44
- "insertText": "volumes:\n ${1:volume_name}:\n driver: ${2:local}",
45
- "insertTextRules": 4,
46
- "sortText": "01_volumes"
47
- },
48
- {
49
- "label": "secrets",
50
- "kind": 17,
51
- "detail": "Define secrets",
52
- "documentation": {
53
- "value": "```yaml\nsecrets:\n db_password:\n file: ./db_password.txt\n```\nTop-level element that defines secrets to be used by services."
54
- },
55
- "insertText": "secrets:\n ${1:secret_name}:\n file: ${2:./secret.txt}",
56
- "insertTextRules": 4,
57
- "sortText": "01_secrets"
58
- },
59
- {
60
- "label": "configs",
61
- "kind": 17,
62
- "detail": "Define configs",
63
- "documentation": {
64
- "value": "```yaml\nconfigs:\n my_config:\n file: ./config.txt\n```\nTop-level element that defines configuration objects to be used by services."
65
- },
66
- "insertText": "configs:\n ${1:config_name}:\n file: ${2:./config.txt}",
67
- "insertTextRules": 4,
68
- "sortText": "01_configs"
69
- },
70
- {
71
- "label": "name",
72
- "kind": 14,
73
- "detail": "Project name",
74
- "documentation": {
75
- "value": "```yaml\nname: my-project\n```\nTop-level element that sets the project name. Overrides the default directory-based naming."
76
- },
77
- "insertText": "name: ${1:my-project}",
78
- "insertTextRules": 4,
79
- "sortText": "01_name"
80
- },
81
- {
82
- "label": "image",
83
- "kind": 9,
84
- "detail": "Service image",
85
- "documentation": {
86
- "value": "```yaml\nservices:\n web:\n image: nginx:latest\n```\nSpecify the Docker image to use for the service container."
87
- },
88
- "insertText": "image: ${1:image_name}:${2:tag}",
89
- "insertTextRules": 4,
90
- "sortText": "02_image"
91
- },
92
- {
93
- "label": "build",
94
- "kind": 9,
95
- "detail": "Build configuration",
96
- "documentation": {
97
- "value": "```yaml\nservices:\n web:\n build:\n context: .\n dockerfile: Dockerfile\n```\nBuild configuration for creating a Docker image from a Dockerfile."
98
- },
99
- "insertText": "build:\n context: ${1:.}\n dockerfile: ${2:Dockerfile}",
100
- "insertTextRules": 4,
101
- "sortText": "02_build"
102
- },
103
- {
104
- "label": "container_name",
105
- "kind": 9,
106
- "detail": "Custom container name",
107
- "documentation": {
108
- "value": "```yaml\ncontainer_name: my-web-container\n```\nSpecify a custom name for the container instead of the generated default."
109
- },
110
- "insertText": "container_name: ${1:name}",
111
- "insertTextRules": 4,
112
- "sortText": "02_container_name"
113
- },
114
- {
115
- "label": "command",
116
- "kind": 9,
117
- "detail": "Override default command",
118
- "documentation": {
119
- "value": "```yaml\ncommand: [\"npm\", \"start\"]\n# or\ncommand: npm start\n```\nOverride the default command specified in the image's Dockerfile."
120
- },
121
- "insertText": "command: ${1:command}",
122
- "insertTextRules": 4,
123
- "sortText": "02_command"
124
- },
125
- {
126
- "label": "entrypoint",
127
- "kind": 9,
128
- "detail": "Override entrypoint",
129
- "documentation": {
130
- "value": "```yaml\nentrypoint: [\"/bin/sh\", \"-c\"]\n# or\nentrypoint: /entrypoint.sh\n```\nOverride the default entrypoint specified in the image's Dockerfile."
131
- },
132
- "insertText": "entrypoint: ${1:entrypoint}",
133
- "insertTextRules": 4,
134
- "sortText": "02_entrypoint"
135
- },
136
- {
137
- "label": "ports",
138
- "kind": 9,
139
- "detail": "Expose ports",
140
- "documentation": {
141
- "value": "```yaml\nports:\n - \"8080:80\"\n - \"443:443\"\n```\nMap host ports to container ports. Format: `HOST:CONTAINER` or `CONTAINER`."
142
- },
143
- "insertText": "ports:\n - \"${1:host_port}:${2:container_port}\"",
144
- "insertTextRules": 4,
145
- "sortText": "02_ports"
146
- },
147
- {
148
- "label": "expose",
149
- "kind": 9,
150
- "detail": "Expose ports internally",
151
- "documentation": {
152
- "value": "```yaml\nexpose:\n - \"3000\"\n - \"8000\"\n```\nExpose ports to linked services without publishing them to the host."
153
- },
154
- "insertText": "expose:\n - \"${1:port}\"",
155
- "insertTextRules": 4,
156
- "sortText": "02_expose"
157
- },
158
- {
159
- "label": "environment",
160
- "kind": 9,
161
- "detail": "Environment variables",
162
- "documentation": {
163
- "value": "```yaml\nenvironment:\n NODE_ENV: production\n DB_HOST: db\n# or list form\nenvironment:\n - NODE_ENV=production\n - DB_HOST=db\n```\nSet environment variables in the container."
164
- },
165
- "insertText": "environment:\n ${1:KEY}: ${2:value}",
166
- "insertTextRules": 4,
167
- "sortText": "02_environment"
168
- },
169
- {
170
- "label": "env_file",
171
- "kind": 9,
172
- "detail": "Environment file",
173
- "documentation": {
174
- "value": "```yaml\nenv_file:\n - .env\n - ./config/.env.production\n```\nLoad environment variables from a file."
175
- },
176
- "insertText": "env_file:\n - ${1:.env}",
177
- "insertTextRules": 4,
178
- "sortText": "02_env_file"
179
- },
180
- {
181
- "label": "depends_on",
182
- "kind": 9,
183
- "detail": "Service dependencies",
184
- "documentation": {
185
- "value": "```yaml\ndepends_on:\n db:\n condition: service_healthy\n redis:\n condition: service_started\n```\nDefine startup and shutdown dependency order between services."
186
- },
187
- "insertText": "depends_on:\n ${1:service}:\n condition: ${2:service_started}",
188
- "insertTextRules": 4,
189
- "sortText": "02_depends_on"
190
- },
191
- {
192
- "label": "restart",
193
- "kind": 9,
194
- "detail": "Restart policy",
195
- "documentation": {
196
- "value": "```yaml\nrestart: unless-stopped\n# Options: no, always, on-failure, unless-stopped\n```\nDefine the restart policy for the container."
197
- },
198
- "insertText": "restart: ${1|no,always,on-failure,unless-stopped|}",
199
- "insertTextRules": 4,
200
- "sortText": "02_restart"
201
- },
202
- {
203
- "label": "healthcheck",
204
- "kind": 9,
205
- "detail": "Health check configuration",
206
- "documentation": {
207
- "value": "```yaml\nhealthcheck:\n test: [\"CMD\", \"curl\", \"-f\", \"http://localhost\"]\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 10s\n```\nConfigure a health check for the service container."
208
- },
209
- "insertText": "healthcheck:\n test: [\"CMD\", \"${1:curl}\", \"${2:-f}\", \"${3:http://localhost}\"]\n interval: ${4:30s}\n timeout: ${5:10s}\n retries: ${6:3}\n start_period: ${7:10s}",
210
- "insertTextRules": 4,
211
- "sortText": "02_healthcheck"
212
- },
213
- {
214
- "label": "logging",
215
- "kind": 9,
216
- "detail": "Logging configuration",
217
- "documentation": {
218
- "value": "```yaml\nlogging:\n driver: json-file\n options:\n max-size: \"10m\"\n max-file: \"3\"\n```\nConfigure the logging driver and options for a service."
219
- },
220
- "insertText": "logging:\n driver: ${1:json-file}\n options:\n max-size: \"${2:10m}\"\n max-file: \"${3:3}\"",
221
- "insertTextRules": 4,
222
- "sortText": "02_logging"
223
- },
224
- {
225
- "label": "deploy",
226
- "kind": 9,
227
- "detail": "Deployment configuration",
228
- "documentation": {
229
- "value": "```yaml\ndeploy:\n replicas: 3\n resources:\n limits:\n cpus: '0.5'\n memory: 512M\n restart_policy:\n condition: on-failure\n```\nSpecify deployment and runtime configuration (Swarm mode or resource limits)."
230
- },
231
- "insertText": "deploy:\n replicas: ${1:1}\n resources:\n limits:\n cpus: '${2:0.5}'\n memory: ${3:512M}",
232
- "insertTextRules": 4,
233
- "sortText": "02_deploy"
234
- },
235
- {
236
- "label": "labels",
237
- "kind": 9,
238
- "detail": "Container labels",
239
- "documentation": {
240
- "value": "```yaml\nlabels:\n com.example.description: \"My web service\"\n com.example.department: \"Finance\"\n```\nAdd metadata labels to the container."
241
- },
242
- "insertText": "labels:\n ${1:key}: \"${2:value}\"",
243
- "insertTextRules": 4,
244
- "sortText": "02_labels"
245
- },
246
- {
247
- "label": "working_dir",
248
- "kind": 9,
249
- "detail": "Working directory",
250
- "documentation": {
251
- "value": "```yaml\nworking_dir: /app\n```\nSet the working directory inside the container."
252
- },
253
- "insertText": "working_dir: ${1:/app}",
254
- "insertTextRules": 4,
255
- "sortText": "02_working_dir"
256
- },
257
- {
258
- "label": "user",
259
- "kind": 9,
260
- "detail": "User override",
261
- "documentation": {
262
- "value": "```yaml\nuser: \"1000:1000\"\n```\nOverride the user used to run the container process."
263
- },
264
- "insertText": "user: \"${1:1000:1000}\"",
265
- "insertTextRules": 4,
266
- "sortText": "02_user"
267
- },
268
- {
269
- "label": "stdin_open",
270
- "kind": 9,
271
- "detail": "Keep STDIN open",
272
- "documentation": {
273
- "value": "```yaml\nstdin_open: true\n```\nKeep STDIN open even if not attached. Equivalent to `docker run -i`."
274
- },
275
- "insertText": "stdin_open: ${1:true}",
276
- "insertTextRules": 4,
277
- "sortText": "02_stdin_open"
278
- },
279
- {
280
- "label": "tty",
281
- "kind": 9,
282
- "detail": "Allocate pseudo-TTY",
283
- "documentation": {
284
- "value": "```yaml\ntty: true\n```\nAllocate a pseudo-TTY. Equivalent to `docker run -t`."
285
- },
286
- "insertText": "tty: ${1:true}",
287
- "insertTextRules": 4,
288
- "sortText": "02_tty"
289
- },
290
- {
291
- "label": "hostname",
292
- "kind": 9,
293
- "detail": "Container hostname",
294
- "documentation": {
295
- "value": "```yaml\nhostname: my-web-host\n```\nSet the container hostname."
296
- },
297
- "insertText": "hostname: ${1:hostname}",
298
- "insertTextRules": 4,
299
- "sortText": "02_hostname"
300
- },
301
- {
302
- "label": "domainname",
303
- "kind": 9,
304
- "detail": "Container domain name",
305
- "documentation": {
306
- "value": "```yaml\ndomainname: example.com\n```\nSet the container domain name."
307
- },
308
- "insertText": "domainname: ${1:example.com}",
309
- "insertTextRules": 4,
310
- "sortText": "02_domainname"
311
- },
312
- {
313
- "label": "extra_hosts",
314
- "kind": 9,
315
- "detail": "Extra host-to-IP mappings",
316
- "documentation": {
317
- "value": "```yaml\nextra_hosts:\n - \"host.docker.internal:host-gateway\"\n - \"myhost:192.168.1.10\"\n```\nAdd hostname mappings to `/etc/hosts` inside the container."
318
- },
319
- "insertText": "extra_hosts:\n - \"${1:hostname}:${2:ip}\"",
320
- "insertTextRules": 4,
321
- "sortText": "02_extra_hosts"
322
- },
323
- {
324
- "label": "dns",
325
- "kind": 9,
326
- "detail": "Custom DNS servers",
327
- "documentation": {
328
- "value": "```yaml\ndns:\n - 8.8.8.8\n - 8.8.4.4\n```\nCustom DNS server addresses."
329
- },
330
- "insertText": "dns:\n - ${1:8.8.8.8}",
331
- "insertTextRules": 4,
332
- "sortText": "02_dns"
333
- },
334
- {
335
- "label": "dns_search",
336
- "kind": 9,
337
- "detail": "DNS search domains",
338
- "documentation": {
339
- "value": "```yaml\ndns_search:\n - example.com\n```\nCustom DNS search domains."
340
- },
341
- "insertText": "dns_search:\n - ${1:example.com}",
342
- "insertTextRules": 4,
343
- "sortText": "02_dns_search"
344
- },
345
- {
346
- "label": "cap_add",
347
- "kind": 9,
348
- "detail": "Add capabilities",
349
- "documentation": {
350
- "value": "```yaml\ncap_add:\n - SYS_PTRACE\n - NET_ADMIN\n```\nAdd Linux capabilities to the container."
351
- },
352
- "insertText": "cap_add:\n - ${1:SYS_PTRACE}",
353
- "insertTextRules": 4,
354
- "sortText": "02_cap_add"
355
- },
356
- {
357
- "label": "cap_drop",
358
- "kind": 9,
359
- "detail": "Drop capabilities",
360
- "documentation": {
361
- "value": "```yaml\ncap_drop:\n - ALL\n```\nDrop Linux capabilities from the container."
362
- },
363
- "insertText": "cap_drop:\n - ${1:ALL}",
364
- "insertTextRules": 4,
365
- "sortText": "02_cap_drop"
366
- },
367
- {
368
- "label": "privileged",
369
- "kind": 9,
370
- "detail": "Privileged mode",
371
- "documentation": {
372
- "value": "```yaml\nprivileged: true\n```\nGive extended privileges to the container. Use with caution."
373
- },
374
- "insertText": "privileged: ${1:false}",
375
- "insertTextRules": 4,
376
- "sortText": "02_privileged"
377
- },
378
- {
379
- "label": "read_only",
380
- "kind": 9,
381
- "detail": "Read-only root filesystem",
382
- "documentation": {
383
- "value": "```yaml\nread_only: true\n```\nMount the container root filesystem as read-only."
384
- },
385
- "insertText": "read_only: ${1:true}",
386
- "insertTextRules": 4,
387
- "sortText": "02_read_only"
388
- },
389
- {
390
- "label": "security_opt",
391
- "kind": 9,
392
- "detail": "Security options",
393
- "documentation": {
394
- "value": "```yaml\nsecurity_opt:\n - no-new-privileges:true\n - seccomp:unconfined\n```\nOverride default labeling and security options."
395
- },
396
- "insertText": "security_opt:\n - ${1:no-new-privileges:true}",
397
- "insertTextRules": 4,
398
- "sortText": "02_security_opt"
399
- },
400
- {
401
- "label": "sysctls",
402
- "kind": 9,
403
- "detail": "Kernel parameters",
404
- "documentation": {
405
- "value": "```yaml\nsysctls:\n net.core.somaxconn: 1024\n net.ipv4.tcp_syncookies: 0\n```\nSet kernel parameters inside the container."
406
- },
407
- "insertText": "sysctls:\n ${1:net.core.somaxconn}: ${2:1024}",
408
- "insertTextRules": 4,
409
- "sortText": "02_sysctls"
410
- },
411
- {
412
- "label": "ulimits",
413
- "kind": 9,
414
- "detail": "Resource limits",
415
- "documentation": {
416
- "value": "```yaml\nulimits:\n nofile:\n soft: 65535\n hard: 65535\n nproc: 65535\n```\nOverride default ulimits for the container."
417
- },
418
- "insertText": "ulimits:\n nofile:\n soft: ${1:65535}\n hard: ${2:65535}",
419
- "insertTextRules": 4,
420
- "sortText": "02_ulimits"
421
- },
422
- {
423
- "label": "tmpfs",
424
- "kind": 9,
425
- "detail": "Tmpfs mount",
426
- "documentation": {
427
- "value": "```yaml\ntmpfs:\n - /tmp\n - /run\n```\nMount a temporary filesystem inside the container."
428
- },
429
- "insertText": "tmpfs:\n - ${1:/tmp}",
430
- "insertTextRules": 4,
431
- "sortText": "02_tmpfs"
432
- },
433
- {
434
- "label": "shm_size",
435
- "kind": 9,
436
- "detail": "Shared memory size",
437
- "documentation": {
438
- "value": "```yaml\nshm_size: '2gb'\n```\nSet the size of the shared memory (`/dev/shm`) allocation for the container."
439
- },
440
- "insertText": "shm_size: '${1:256m}'",
441
- "insertTextRules": 4,
442
- "sortText": "02_shm_size"
443
- },
444
- {
445
- "label": "stop_signal",
446
- "kind": 9,
447
- "detail": "Stop signal",
448
- "documentation": {
449
- "value": "```yaml\nstop_signal: SIGTERM\n```\nThe signal to send when stopping the container. Default is SIGTERM."
450
- },
451
- "insertText": "stop_signal: ${1:SIGTERM}",
452
- "insertTextRules": 4,
453
- "sortText": "02_stop_signal"
454
- },
455
- {
456
- "label": "stop_grace_period",
457
- "kind": 9,
458
- "detail": "Stop grace period",
459
- "documentation": {
460
- "value": "```yaml\nstop_grace_period: 30s\n```\nTime to wait before forcefully killing a container. Default is 10s."
461
- },
462
- "insertText": "stop_grace_period: ${1:30s}",
463
- "insertTextRules": 4,
464
- "sortText": "02_stop_grace_period"
465
- },
466
- {
467
- "label": "init",
468
- "kind": 9,
469
- "detail": "Run init process",
470
- "documentation": {
471
- "value": "```yaml\ninit: true\n```\nRun an init process (tini) inside the container for proper signal handling and zombie process reaping."
472
- },
473
- "insertText": "init: ${1:true}",
474
- "insertTextRules": 4,
475
- "sortText": "02_init"
476
- },
477
- {
478
- "label": "platform",
479
- "kind": 9,
480
- "detail": "Target platform",
481
- "documentation": {
482
- "value": "```yaml\nplatform: linux/amd64\n```\nTarget platform for the service container."
483
- },
484
- "insertText": "platform: ${1:linux/amd64}",
485
- "insertTextRules": 4,
486
- "sortText": "02_platform"
487
- },
488
- {
489
- "label": "profiles",
490
- "kind": 9,
491
- "detail": "Service profiles",
492
- "documentation": {
493
- "value": "```yaml\nprofiles:\n - debug\n - development\n```\nAssign the service to one or more profiles. Service only starts when a matching profile is active."
494
- },
495
- "insertText": "profiles:\n - ${1:profile_name}",
496
- "insertTextRules": 4,
497
- "sortText": "02_profiles"
498
- },
499
- {
500
- "label": "pull_policy",
501
- "kind": 9,
502
- "detail": "Image pull policy",
503
- "documentation": {
504
- "value": "```yaml\npull_policy: always\n# Options: always, never, missing, build\n```\nDefine when Compose should pull the image."
505
- },
506
- "insertText": "pull_policy: ${1|always,never,missing,build|}",
507
- "insertTextRules": 4,
508
- "sortText": "02_pull_policy"
509
- },
510
- {
511
- "label": "network_mode",
512
- "kind": 9,
513
- "detail": "Network mode",
514
- "documentation": {
515
- "value": "```yaml\nnetwork_mode: host\n# Options: bridge, host, none, service:[service name]\n```\nSet the network mode for the service container."
516
- },
517
- "insertText": "network_mode: ${1:host}",
518
- "insertTextRules": 4,
519
- "sortText": "02_network_mode"
520
- },
521
- {
522
- "label": "pid",
523
- "kind": 9,
524
- "detail": "PID mode",
525
- "documentation": {
526
- "value": "```yaml\npid: host\n```\nShare the host PID namespace with the container."
527
- },
528
- "insertText": "pid: ${1:host}",
529
- "insertTextRules": 4,
530
- "sortText": "02_pid"
531
- },
532
- {
533
- "label": "ipc",
534
- "kind": 9,
535
- "detail": "IPC mode",
536
- "documentation": {
537
- "value": "```yaml\nipc: host\n```\nSet the IPC mode for the container."
538
- },
539
- "insertText": "ipc: ${1:host}",
540
- "insertTextRules": 4,
541
- "sortText": "02_ipc"
542
- },
543
- {
544
- "label": "extends",
545
- "kind": 9,
546
- "detail": "Extend service",
547
- "documentation": {
548
- "value": "```yaml\nextends:\n file: common.yml\n service: webapp\n```\nExtend another service, optionally from another Compose file."
549
- },
550
- "insertText": "extends:\n file: ${1:common.yml}\n service: ${2:service_name}",
551
- "insertTextRules": 4,
552
- "sortText": "02_extends"
553
- },
554
- {
555
- "label": "scale",
556
- "kind": 9,
557
- "detail": "Default number of containers",
558
- "documentation": {
559
- "value": "```yaml\nscale: 3\n```\nDefault number of containers to run for this service."
560
- },
561
- "insertText": "scale: ${1:1}",
562
- "insertTextRules": 4,
563
- "sortText": "02_scale"
564
- },
565
- {
566
- "label": "devices",
567
- "kind": 9,
568
- "detail": "Device mappings",
569
- "documentation": {
570
- "value": "```yaml\ndevices:\n - \"/dev/sda:/dev/xvdc:rwm\"\n```\nMap host devices into the container."
571
- },
572
- "insertText": "devices:\n - \"${1:/dev/sda}:${2:/dev/xvdc}\"",
573
- "insertTextRules": 4,
574
- "sortText": "02_devices"
575
- },
576
- {
577
- "label": "isolation",
578
- "kind": 9,
579
- "detail": "Container isolation technology",
580
- "documentation": {
581
- "value": "```yaml\nisolation: default\n# Options: default, process, hyperv (Windows)\n```\nContainer isolation technology."
582
- },
583
- "insertText": "isolation: ${1:default}",
584
- "insertTextRules": 4,
585
- "sortText": "02_isolation"
586
- },
587
- {
588
- "label": "runtime",
589
- "kind": 9,
590
- "detail": "Runtime to use",
591
- "documentation": {
592
- "value": "```yaml\nruntime: nvidia\n```\nSpecify the runtime for the container (e.g., nvidia for GPU support)."
593
- },
594
- "insertText": "runtime: ${1:runc}",
595
- "insertTextRules": 4,
596
- "sortText": "02_runtime"
597
- },
598
- {
599
- "label": "credential_spec",
600
- "kind": 9,
601
- "detail": "Credential specification",
602
- "documentation": {
603
- "value": "```yaml\ncredential_spec:\n config: my_credential_spec\n```\nConfigure the credential spec for managed service accounts (Windows)."
604
- },
605
- "insertText": "credential_spec:\n config: ${1:my_credential_spec}",
606
- "insertTextRules": 4,
607
- "sortText": "02_credential_spec"
608
- },
609
- {
610
- "label": "develop",
611
- "kind": 9,
612
- "detail": "Development watch config",
613
- "documentation": {
614
- "value": "```yaml\ndevelop:\n watch:\n - action: sync\n path: ./src\n target: /app/src\n - action: rebuild\n path: package.json\n```\nConfigure file watching for live development with `docker compose watch`."
615
- },
616
- "insertText": "develop:\n watch:\n - action: ${1|sync,rebuild,sync+restart|}\n path: ${2:./src}\n target: ${3:/app/src}",
617
- "insertTextRules": 4,
618
- "sortText": "02_develop"
619
- },
620
- {
621
- "label": "annotations",
622
- "kind": 9,
623
- "detail": "Container annotations",
624
- "documentation": {
625
- "value": "```yaml\nannotations:\n com.example.foo: bar\n```\nAdd OCI annotations to the container."
626
- },
627
- "insertText": "annotations:\n ${1:key}: ${2:value}",
628
- "insertTextRules": 4,
629
- "sortText": "02_annotations"
630
- },
631
- {
632
- "label": "attach",
633
- "kind": 9,
634
- "detail": "Attach to service logs",
635
- "documentation": {
636
- "value": "```yaml\nattach: false\n```\nWhen set to false, Compose does not collect service logs."
637
- },
638
- "insertText": "attach: ${1:true}",
639
- "insertTextRules": 4,
640
- "sortText": "02_attach"
641
- },
642
- {
643
- "label": "driver",
644
- "kind": 9,
645
- "detail": "Network/volume driver",
646
- "documentation": {
647
- "value": "```yaml\nnetworks:\n mynet:\n driver: bridge\nvolumes:\n mydata:\n driver: local\n```\nSpecify the driver for networks or volumes."
648
- },
649
- "insertText": "driver: ${1:bridge}",
650
- "insertTextRules": 4,
651
- "sortText": "02_driver"
652
- },
653
- {
654
- "label": "driver_opts",
655
- "kind": 9,
656
- "detail": "Driver options",
657
- "documentation": {
658
- "value": "```yaml\ndriver_opts:\n type: nfs\n o: addr=10.0.0.1,rw\n device: \":/exported/path\"\n```\nOptions for the network or volume driver."
659
- },
660
- "insertText": "driver_opts:\n ${1:key}: ${2:value}",
661
- "insertTextRules": 4,
662
- "sortText": "02_driver_opts"
663
- },
664
- {
665
- "label": "external",
666
- "kind": 9,
667
- "detail": "External resource",
668
- "documentation": {
669
- "value": "```yaml\nnetworks:\n mynet:\n external: true\nvolumes:\n mydata:\n external: true\n```\nSpecify that a network or volume is created outside of Compose."
670
- },
671
- "insertText": "external: ${1:true}",
672
- "insertTextRules": 4,
673
- "sortText": "02_external"
674
- },
675
- {
676
- "label": "ipam",
677
- "kind": 9,
678
- "detail": "IP address management",
679
- "documentation": {
680
- "value": "```yaml\nnetworks:\n mynet:\n ipam:\n driver: default\n config:\n - subnet: 172.28.0.0/16\n```\nCustomize IP address management for a network."
681
- },
682
- "insertText": "ipam:\n driver: ${1:default}\n config:\n - subnet: ${2:172.28.0.0/16}",
683
- "insertTextRules": 4,
684
- "sortText": "02_ipam"
685
- },
686
- {
687
- "label": "internal",
688
- "kind": 9,
689
- "detail": "Internal network",
690
- "documentation": {
691
- "value": "```yaml\nnetworks:\n backend:\n internal: true\n```\nRestrict external access to the network."
692
- },
693
- "insertText": "internal: ${1:true}",
694
- "insertTextRules": 4,
695
- "sortText": "02_internal"
696
- },
697
- {
698
- "label": "attachable",
699
- "kind": 9,
700
- "detail": "Attachable network",
701
- "documentation": {
702
- "value": "```yaml\nnetworks:\n mynet:\n attachable: true\n```\nAllow standalone containers to attach to the network."
703
- },
704
- "insertText": "attachable: ${1:true}",
705
- "insertTextRules": 4,
706
- "sortText": "02_attachable"
707
- },
708
- {
709
- "label": "enable_ipv6",
710
- "kind": 9,
711
- "detail": "Enable IPv6",
712
- "documentation": {
713
- "value": "```yaml\nnetworks:\n mynet:\n enable_ipv6: true\n```\nEnable IPv6 networking on the network."
714
- },
715
- "insertText": "enable_ipv6: ${1:true}",
716
- "insertTextRules": 4,
717
- "sortText": "02_enable_ipv6"
718
- },
719
- {
720
- "label": "condition: service_started",
721
- "kind": 13,
722
- "detail": "Depend on service start",
723
- "documentation": {
724
- "value": "```yaml\ndepends_on:\n db:\n condition: service_started\n```\nWait until the dependency service has started."
725
- },
726
- "insertText": "condition: service_started",
727
- "sortText": "04_condition_started"
728
- },
729
- {
730
- "label": "condition: service_healthy",
731
- "kind": 13,
732
- "detail": "Depend on healthy service",
733
- "documentation": {
734
- "value": "```yaml\ndepends_on:\n db:\n condition: service_healthy\n```\nWait until the dependency service's health check passes."
735
- },
736
- "insertText": "condition: service_healthy",
737
- "sortText": "04_condition_healthy"
738
- },
739
- {
740
- "label": "condition: service_completed_successfully",
741
- "kind": 13,
742
- "detail": "Depend on successful completion",
743
- "documentation": {
744
- "value": "```yaml\ndepends_on:\n migrate:\n condition: service_completed_successfully\n```\nWait until the dependency service has completed with exit code 0."
745
- },
746
- "insertText": "condition: service_completed_successfully",
747
- "sortText": "04_condition_completed"
748
- },
749
- {
750
- "label": "Web service (snippet)",
751
- "kind": 28,
752
- "detail": "Complete web service definition",
753
- "documentation": {
754
- "value": "```yaml\nweb:\n image: nginx:alpine\n ports:\n - \"80:80\"\n volumes:\n - ./html:/usr/share/nginx/html\n restart: unless-stopped\n```\nA complete web service configuration snippet."
755
- },
756
- "insertText": "${1:web}:\n image: ${2:nginx:alpine}\n ports:\n - \"${3:80}:${4:80}\"\n volumes:\n - ${5:./html}:${6:/usr/share/nginx/html}\n restart: ${7:unless-stopped}",
757
- "insertTextRules": 4,
758
- "sortText": "00_snippet_web"
759
- },
760
- {
761
- "label": "Database service (snippet)",
762
- "kind": 28,
763
- "detail": "Complete database service definition",
764
- "documentation": {
765
- "value": "```yaml\ndb:\n image: postgres:16\n environment:\n POSTGRES_DB: mydb\n POSTGRES_USER: user\n POSTGRES_PASSWORD: password\n volumes:\n - db_data:/var/lib/postgresql/data\n ports:\n - \"5432:5432\"\n```\nA complete PostgreSQL database service snippet."
766
- },
767
- "insertText": "${1:db}:\n image: ${2:postgres:16}\n environment:\n POSTGRES_DB: ${3:mydb}\n POSTGRES_USER: ${4:user}\n POSTGRES_PASSWORD: ${5:password}\n volumes:\n - ${6:db_data}:/var/lib/postgresql/data\n ports:\n - \"${7:5432}:${8:5432}\"\n restart: unless-stopped",
768
- "insertTextRules": 4,
769
- "sortText": "00_snippet_database"
770
- },
771
- {
772
- "label": "Redis service (snippet)",
773
- "kind": 28,
774
- "detail": "Complete Redis service definition",
775
- "documentation": {
776
- "value": "```yaml\nredis:\n image: redis:7-alpine\n ports:\n - \"6379:6379\"\n volumes:\n - redis_data:/data\n restart: unless-stopped\n```\nA complete Redis cache service snippet."
777
- },
778
- "insertText": "${1:redis}:\n image: redis:${2:7-alpine}\n ports:\n - \"${3:6379}:${4:6379}\"\n volumes:\n - ${5:redis_data}:/data\n restart: unless-stopped",
779
- "insertTextRules": 4,
780
- "sortText": "00_snippet_redis"
781
- },
782
- {
783
- "label": "MySQL service (snippet)",
784
- "kind": 28,
785
- "detail": "Complete MySQL service definition",
786
- "documentation": {
787
- "value": "```yaml\nmysql:\n image: mysql:8\n environment:\n MYSQL_ROOT_PASSWORD: rootpassword\n MYSQL_DATABASE: mydb\n MYSQL_USER: user\n MYSQL_PASSWORD: password\n volumes:\n - mysql_data:/var/lib/mysql\n ports:\n - \"3306:3306\"\n```\nA complete MySQL database service snippet."
788
- },
789
- "insertText": "${1:mysql}:\n image: mysql:${2:8}\n environment:\n MYSQL_ROOT_PASSWORD: ${3:rootpassword}\n MYSQL_DATABASE: ${4:mydb}\n MYSQL_USER: ${5:user}\n MYSQL_PASSWORD: ${6:password}\n volumes:\n - ${7:mysql_data}:/var/lib/mysql\n ports:\n - \"${8:3306}:${9:3306}\"\n restart: unless-stopped",
790
- "insertTextRules": 4,
791
- "sortText": "00_snippet_mysql"
792
- },
793
- {
794
- "label": "MongoDB service (snippet)",
795
- "kind": 28,
796
- "detail": "Complete MongoDB service definition",
797
- "documentation": {
798
- "value": "```yaml\nmongo:\n image: mongo:7\n environment:\n MONGO_INITDB_ROOT_USERNAME: admin\n MONGO_INITDB_ROOT_PASSWORD: password\n volumes:\n - mongo_data:/data/db\n ports:\n - \"27017:27017\"\n```\nA complete MongoDB service snippet."
799
- },
800
- "insertText": "${1:mongo}:\n image: mongo:${2:7}\n environment:\n MONGO_INITDB_ROOT_USERNAME: ${3:admin}\n MONGO_INITDB_ROOT_PASSWORD: ${4:password}\n volumes:\n - ${5:mongo_data}:/data/db\n ports:\n - \"${6:27017}:${7:27017}\"\n restart: unless-stopped",
801
- "insertTextRules": 4,
802
- "sortText": "00_snippet_mongodb"
803
- },
804
- {
805
- "label": "Nginx reverse proxy (snippet)",
806
- "kind": 28,
807
- "detail": "Nginx reverse proxy service",
808
- "documentation": {
809
- "value": "```yaml\nnginx:\n image: nginx:alpine\n ports:\n - \"80:80\"\n - \"443:443\"\n volumes:\n - ./nginx.conf:/etc/nginx/nginx.conf:ro\n - ./certs:/etc/nginx/certs:ro\n depends_on:\n - app\n```\nReverse proxy with Nginx."
810
- },
811
- "insertText": "${1:nginx}:\n image: nginx:alpine\n ports:\n - \"80:80\"\n - \"443:443\"\n volumes:\n - ${2:./nginx.conf}:/etc/nginx/nginx.conf:ro\n depends_on:\n - ${3:app}\n restart: unless-stopped",
812
- "insertTextRules": 4,
813
- "sortText": "00_snippet_nginx_proxy"
814
- },
815
- {
816
- "label": "Docker Compose boilerplate (snippet)",
817
- "kind": 28,
818
- "detail": "Full docker-compose.yml starter",
819
- "documentation": {
820
- "value": "```yaml\nservices:\n app:\n build: .\n ports:\n - \"3000:3000\"\n environment:\n - NODE_ENV=development\n volumes:\n - .:/app\n depends_on:\n - db\n db:\n image: postgres:16\n environment:\n POSTGRES_PASSWORD: postgres\n volumes:\n - db_data:/var/lib/postgresql/data\nvolumes:\n db_data:\n```\nComplete docker-compose.yml boilerplate with app and database."
821
- },
822
- "insertText": "services:\n ${1:app}:\n build: ${2:.}\n ports:\n - \"${3:3000}:${4:3000}\"\n environment:\n - ${5:NODE_ENV}=${6:development}\n volumes:\n - ${7:.}:${8:/app}\n depends_on:\n - ${9:db}\n\n ${9:db}:\n image: ${10:postgres:16}\n environment:\n POSTGRES_PASSWORD: ${11:postgres}\n volumes:\n - ${12:db_data}:/var/lib/postgresql/data\n\nvolumes:\n ${12:db_data}:\n",
823
- "insertTextRules": 4,
824
- "sortText": "00_snippet_boilerplate"
825
- },
826
- {
827
- "label": "Traefik service (snippet)",
828
- "kind": 28,
829
- "detail": "Traefik reverse proxy service",
830
- "documentation": {
831
- "value": "```yaml\ntraefik:\n image: traefik:v3.0\n command:\n - \"--providers.docker=true\"\n - \"--entrypoints.web.address=:80\"\n ports:\n - \"80:80\"\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock:ro\n```\nTraefik reverse proxy with Docker provider."
832
- },
833
- "insertText": "${1:traefik}:\n image: traefik:${2:v3.0}\n command:\n - \"--providers.docker=true\"\n - \"--entrypoints.web.address=:80\"\n ports:\n - \"80:80\"\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock:ro\n restart: unless-stopped",
834
- "insertTextRules": 4,
835
- "sortText": "00_snippet_traefik"
836
- },
837
- {
838
- "label": "Healthcheck (snippet)",
839
- "kind": 28,
840
- "detail": "Healthcheck snippet",
841
- "documentation": {
842
- "value": "```yaml\nhealthcheck:\n test: [\"CMD\", \"curl\", \"-f\", \"http://localhost:8080/health\"]\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 40s\n```\nFull health check configuration."
843
- },
844
- "insertText": "healthcheck:\n test: [\"CMD\", \"${1:curl}\", \"${2:-f}\", \"${3:http://localhost:8080/health}\"]\n interval: ${4:30s}\n timeout: ${5:10s}\n retries: ${6:3}\n start_period: ${7:40s}",
845
- "insertTextRules": 4,
846
- "sortText": "00_snippet_healthcheck"
847
- },
848
- {
849
- "label": "Volume mount (snippet)",
850
- "kind": 28,
851
- "detail": "Named volume with driver",
852
- "documentation": {
853
- "value": "```yaml\nvolumes:\n data:\n driver: local\n driver_opts:\n type: none\n o: bind\n device: /path/on/host\n```\nA named volume with local bind mount driver options."
854
- },
855
- "insertText": "${1:data}:\n driver: local\n driver_opts:\n type: none\n o: bind\n device: ${2:/path/on/host}",
856
- "insertTextRules": 4,
857
- "sortText": "00_snippet_volume"
858
- },
859
- {
860
- "label": "Network with subnet (snippet)",
861
- "kind": 28,
862
- "detail": "Custom network with IPAM",
863
- "documentation": {
864
- "value": "```yaml\nnetworks:\n backend:\n driver: bridge\n ipam:\n config:\n - subnet: 172.28.0.0/16\n```\nCustom bridge network with specific subnet."
865
- },
866
- "insertText": "${1:backend}:\n driver: bridge\n ipam:\n config:\n - subnet: ${2:172.28.0.0/16}",
867
- "insertTextRules": 4,
868
- "sortText": "00_snippet_network"
869
- },
870
- {
871
- "label": "Logging config (snippet)",
872
- "kind": 28,
873
- "detail": "Logging driver configuration",
874
- "documentation": {
875
- "value": "```yaml\nlogging:\n driver: json-file\n options:\n max-size: \"10m\"\n max-file: \"3\"\n```\nJSON file logging with rotation."
876
- },
877
- "insertText": "logging:\n driver: ${1:json-file}\n options:\n max-size: \"${2:10m}\"\n max-file: \"${3:3}\"",
878
- "insertTextRules": 4,
879
- "sortText": "00_snippet_logging"
880
- },
881
- {
882
- "label": "Deploy with resources (snippet)",
883
- "kind": 28,
884
- "detail": "Resource limits and reservations",
885
- "documentation": {
886
- "value": "```yaml\ndeploy:\n resources:\n limits:\n cpus: '0.5'\n memory: 512M\n reservations:\n cpus: '0.25'\n memory: 256M\n```\nResource limits and reservations for the service."
887
- },
888
- "insertText": "deploy:\n resources:\n limits:\n cpus: '${1:0.5}'\n memory: ${2:512M}\n reservations:\n cpus: '${3:0.25}'\n memory: ${4:256M}",
889
- "insertTextRules": 4,
890
- "sortText": "00_snippet_deploy_resources"
891
- },
892
- {
893
- "label": "Build with args (snippet)",
894
- "kind": 28,
895
- "detail": "Build with context, dockerfile and args",
896
- "documentation": {
897
- "value": "```yaml\nbuild:\n context: .\n dockerfile: Dockerfile\n args:\n NODE_VERSION: 20\n ENV: production\n target: production\n```\nBuild configuration with arguments and multi-stage target."
898
- },
899
- "insertText": "build:\n context: ${1:.}\n dockerfile: ${2:Dockerfile}\n args:\n ${3:ARG_NAME}: ${4:value}\n target: ${5:production}",
900
- "insertTextRules": 4,
901
- "sortText": "00_snippet_build_args"
902
- },
903
- {
904
- "label": "Watch config (snippet)",
905
- "kind": 28,
906
- "detail": "Docker Compose Watch configuration",
907
- "documentation": {
908
- "value": "```yaml\ndevelop:\n watch:\n - action: sync\n path: ./src\n target: /app/src\n - action: rebuild\n path: package.json\n - action: sync+restart\n path: ./config\n target: /app/config\n```\nFile watching for `docker compose watch`."
909
- },
910
- "insertText": "develop:\n watch:\n - action: ${1|sync,rebuild,sync+restart|}\n path: ${2:./src}\n target: ${3:/app/src}",
911
- "insertTextRules": 4,
912
- "sortText": "00_snippet_watch"
913
- },
914
- {
915
- "label": "Secrets from file (snippet)",
916
- "kind": 28,
917
- "detail": "Secret from file definition",
918
- "documentation": {
919
- "value": "```yaml\nsecrets:\n db_password:\n file: ./secrets/db_password.txt\nservices:\n db:\n secrets:\n - db_password\n```\nDefine and use a file-based secret."
920
- },
921
- "insertText": "secrets:\n ${1:secret_name}:\n file: ${2:./secrets/secret.txt}",
922
- "insertTextRules": 4,
923
- "sortText": "00_snippet_secrets"
924
- },
925
- {
926
- "label": "include",
927
- "kind": 17,
928
- "detail": "Include other Compose files",
929
- "documentation": {
930
- "value": "```yaml\ninclude:\n - path: ./db/compose.yaml\n - path: ./monitoring/compose.yaml\n```\nInclude other Compose files to combine multiple configurations."
931
- },
932
- "insertText": "include:\n - path: ${1:./compose.yaml}",
933
- "insertTextRules": 4,
934
- "sortText": "01_include"
935
- },
936
- {
937
- "label": "x- extension field",
938
- "kind": 9,
939
- "detail": "Custom extension field",
940
- "documentation": {
941
- "value": "```yaml\nx-common: &common\n restart: unless-stopped\n logging:\n driver: json-file\n\nservices:\n web:\n <<: *common\n image: nginx\n```\nYAML extension fields (prefixed with `x-`) for reuse via anchors and aliases."
942
- },
943
- "insertText": "x-${1:common}: &${1:common}\n ${2:restart: unless-stopped}",
944
- "insertTextRules": 4,
945
- "sortText": "01_extension"
946
- },
947
- {
948
- "label": "YAML anchor",
949
- "kind": 28,
950
- "detail": "YAML anchor and alias",
951
- "documentation": {
952
- "value": "```yaml\nx-logging: &logging\n logging:\n driver: json-file\n options:\n max-size: 10m\n\nservices:\n web:\n <<: *logging\n```\nDefine reusable YAML blocks with anchors (`&name`) and merge with aliases (`<<: *name`)."
953
- },
954
- "insertText": "x-${1:shared}: &${1:shared}\n ${2:key}: ${3:value}\n",
955
- "insertTextRules": 4,
956
- "sortText": "00_snippet_anchor"
957
- }
958
- ]
959
- }
1
+ {
2
+ "language": "docker-compose",
3
+ "completions": [
4
+ {
5
+ "label": "version",
6
+ "kind": 14,
7
+ "detail": "Compose file version (deprecated)",
8
+ "documentation": {
9
+ "value": "```yaml\nversion: '3.8'\n```\nSpecify the Compose file format version. Deprecated in recent Compose specs — the latest format is inferred automatically."
10
+ },
11
+ "insertText": "version: '${1:3.8}'",
12
+ "insertTextRules": 4,
13
+ "sortText": "01_version"
14
+ },
15
+ {
16
+ "label": "services",
17
+ "kind": 17,
18
+ "detail": "Define services",
19
+ "documentation": {
20
+ "value": "```yaml\nservices:\n web:\n image: nginx\n```\nTop-level element that defines the containers (services) to run."
21
+ },
22
+ "insertText": "services:\n ${1:service_name}:\n ${0}",
23
+ "insertTextRules": 4,
24
+ "sortText": "01_services"
25
+ },
26
+ {
27
+ "label": "networks",
28
+ "kind": 17,
29
+ "detail": "Define networks",
30
+ "documentation": {
31
+ "value": "```yaml\nnetworks:\n frontend:\n driver: bridge\n```\nTop-level element that defines custom networks for services to connect to."
32
+ },
33
+ "insertText": "networks:\n ${1:network_name}:\n driver: ${2:bridge}",
34
+ "insertTextRules": 4,
35
+ "sortText": "01_networks"
36
+ },
37
+ {
38
+ "label": "volumes",
39
+ "kind": 17,
40
+ "detail": "Define named volumes",
41
+ "documentation": {
42
+ "value": "```yaml\nvolumes:\n db_data:\n driver: local\n```\nTop-level element that defines named volumes for persistent data storage."
43
+ },
44
+ "insertText": "volumes:\n ${1:volume_name}:\n driver: ${2:local}",
45
+ "insertTextRules": 4,
46
+ "sortText": "01_volumes"
47
+ },
48
+ {
49
+ "label": "secrets",
50
+ "kind": 17,
51
+ "detail": "Define secrets",
52
+ "documentation": {
53
+ "value": "```yaml\nsecrets:\n db_password:\n file: ./db_password.txt\n```\nTop-level element that defines secrets to be used by services."
54
+ },
55
+ "insertText": "secrets:\n ${1:secret_name}:\n file: ${2:./secret.txt}",
56
+ "insertTextRules": 4,
57
+ "sortText": "01_secrets"
58
+ },
59
+ {
60
+ "label": "configs",
61
+ "kind": 17,
62
+ "detail": "Define configs",
63
+ "documentation": {
64
+ "value": "```yaml\nconfigs:\n my_config:\n file: ./config.txt\n```\nTop-level element that defines configuration objects to be used by services."
65
+ },
66
+ "insertText": "configs:\n ${1:config_name}:\n file: ${2:./config.txt}",
67
+ "insertTextRules": 4,
68
+ "sortText": "01_configs"
69
+ },
70
+ {
71
+ "label": "name",
72
+ "kind": 14,
73
+ "detail": "Project name",
74
+ "documentation": {
75
+ "value": "```yaml\nname: my-project\n```\nTop-level element that sets the project name. Overrides the default directory-based naming."
76
+ },
77
+ "insertText": "name: ${1:my-project}",
78
+ "insertTextRules": 4,
79
+ "sortText": "01_name"
80
+ },
81
+ {
82
+ "label": "image",
83
+ "kind": 9,
84
+ "detail": "Service image",
85
+ "documentation": {
86
+ "value": "```yaml\nservices:\n web:\n image: nginx:latest\n```\nSpecify the Docker image to use for the service container."
87
+ },
88
+ "insertText": "image: ${1:image_name}:${2:tag}",
89
+ "insertTextRules": 4,
90
+ "sortText": "02_image"
91
+ },
92
+ {
93
+ "label": "build",
94
+ "kind": 9,
95
+ "detail": "Build configuration",
96
+ "documentation": {
97
+ "value": "```yaml\nservices:\n web:\n build:\n context: .\n dockerfile: Dockerfile\n```\nBuild configuration for creating a Docker image from a Dockerfile."
98
+ },
99
+ "insertText": "build:\n context: ${1:.}\n dockerfile: ${2:Dockerfile}",
100
+ "insertTextRules": 4,
101
+ "sortText": "02_build"
102
+ },
103
+ {
104
+ "label": "container_name",
105
+ "kind": 9,
106
+ "detail": "Custom container name",
107
+ "documentation": {
108
+ "value": "```yaml\ncontainer_name: my-web-container\n```\nSpecify a custom name for the container instead of the generated default."
109
+ },
110
+ "insertText": "container_name: ${1:name}",
111
+ "insertTextRules": 4,
112
+ "sortText": "02_container_name"
113
+ },
114
+ {
115
+ "label": "command",
116
+ "kind": 9,
117
+ "detail": "Override default command",
118
+ "documentation": {
119
+ "value": "```yaml\ncommand: [\"npm\", \"start\"]\n# or\ncommand: npm start\n```\nOverride the default command specified in the image's Dockerfile."
120
+ },
121
+ "insertText": "command: ${1:command}",
122
+ "insertTextRules": 4,
123
+ "sortText": "02_command"
124
+ },
125
+ {
126
+ "label": "entrypoint",
127
+ "kind": 9,
128
+ "detail": "Override entrypoint",
129
+ "documentation": {
130
+ "value": "```yaml\nentrypoint: [\"/bin/sh\", \"-c\"]\n# or\nentrypoint: /entrypoint.sh\n```\nOverride the default entrypoint specified in the image's Dockerfile."
131
+ },
132
+ "insertText": "entrypoint: ${1:entrypoint}",
133
+ "insertTextRules": 4,
134
+ "sortText": "02_entrypoint"
135
+ },
136
+ {
137
+ "label": "ports",
138
+ "kind": 9,
139
+ "detail": "Expose ports",
140
+ "documentation": {
141
+ "value": "```yaml\nports:\n - \"8080:80\"\n - \"443:443\"\n```\nMap host ports to container ports. Format: `HOST:CONTAINER` or `CONTAINER`."
142
+ },
143
+ "insertText": "ports:\n - \"${1:host_port}:${2:container_port}\"",
144
+ "insertTextRules": 4,
145
+ "sortText": "02_ports"
146
+ },
147
+ {
148
+ "label": "expose",
149
+ "kind": 9,
150
+ "detail": "Expose ports internally",
151
+ "documentation": {
152
+ "value": "```yaml\nexpose:\n - \"3000\"\n - \"8000\"\n```\nExpose ports to linked services without publishing them to the host."
153
+ },
154
+ "insertText": "expose:\n - \"${1:port}\"",
155
+ "insertTextRules": 4,
156
+ "sortText": "02_expose"
157
+ },
158
+ {
159
+ "label": "environment",
160
+ "kind": 9,
161
+ "detail": "Environment variables",
162
+ "documentation": {
163
+ "value": "```yaml\nenvironment:\n NODE_ENV: production\n DB_HOST: db\n# or list form\nenvironment:\n - NODE_ENV=production\n - DB_HOST=db\n```\nSet environment variables in the container."
164
+ },
165
+ "insertText": "environment:\n ${1:KEY}: ${2:value}",
166
+ "insertTextRules": 4,
167
+ "sortText": "02_environment"
168
+ },
169
+ {
170
+ "label": "env_file",
171
+ "kind": 9,
172
+ "detail": "Environment file",
173
+ "documentation": {
174
+ "value": "```yaml\nenv_file:\n - .env\n - ./config/.env.production\n```\nLoad environment variables from a file."
175
+ },
176
+ "insertText": "env_file:\n - ${1:.env}",
177
+ "insertTextRules": 4,
178
+ "sortText": "02_env_file"
179
+ },
180
+ {
181
+ "label": "depends_on",
182
+ "kind": 9,
183
+ "detail": "Service dependencies",
184
+ "documentation": {
185
+ "value": "```yaml\ndepends_on:\n db:\n condition: service_healthy\n redis:\n condition: service_started\n```\nDefine startup and shutdown dependency order between services."
186
+ },
187
+ "insertText": "depends_on:\n ${1:service}:\n condition: ${2:service_started}",
188
+ "insertTextRules": 4,
189
+ "sortText": "02_depends_on"
190
+ },
191
+ {
192
+ "label": "restart",
193
+ "kind": 9,
194
+ "detail": "Restart policy",
195
+ "documentation": {
196
+ "value": "```yaml\nrestart: unless-stopped\n# Options: no, always, on-failure, unless-stopped\n```\nDefine the restart policy for the container."
197
+ },
198
+ "insertText": "restart: ${1|no,always,on-failure,unless-stopped|}",
199
+ "insertTextRules": 4,
200
+ "sortText": "02_restart"
201
+ },
202
+ {
203
+ "label": "healthcheck",
204
+ "kind": 9,
205
+ "detail": "Health check configuration",
206
+ "documentation": {
207
+ "value": "```yaml\nhealthcheck:\n test: [\"CMD\", \"curl\", \"-f\", \"http://localhost\"]\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 10s\n```\nConfigure a health check for the service container."
208
+ },
209
+ "insertText": "healthcheck:\n test: [\"CMD\", \"${1:curl}\", \"${2:-f}\", \"${3:http://localhost}\"]\n interval: ${4:30s}\n timeout: ${5:10s}\n retries: ${6:3}\n start_period: ${7:10s}",
210
+ "insertTextRules": 4,
211
+ "sortText": "02_healthcheck"
212
+ },
213
+ {
214
+ "label": "logging",
215
+ "kind": 9,
216
+ "detail": "Logging configuration",
217
+ "documentation": {
218
+ "value": "```yaml\nlogging:\n driver: json-file\n options:\n max-size: \"10m\"\n max-file: \"3\"\n```\nConfigure the logging driver and options for a service."
219
+ },
220
+ "insertText": "logging:\n driver: ${1:json-file}\n options:\n max-size: \"${2:10m}\"\n max-file: \"${3:3}\"",
221
+ "insertTextRules": 4,
222
+ "sortText": "02_logging"
223
+ },
224
+ {
225
+ "label": "deploy",
226
+ "kind": 9,
227
+ "detail": "Deployment configuration",
228
+ "documentation": {
229
+ "value": "```yaml\ndeploy:\n replicas: 3\n resources:\n limits:\n cpus: '0.5'\n memory: 512M\n restart_policy:\n condition: on-failure\n```\nSpecify deployment and runtime configuration (Swarm mode or resource limits)."
230
+ },
231
+ "insertText": "deploy:\n replicas: ${1:1}\n resources:\n limits:\n cpus: '${2:0.5}'\n memory: ${3:512M}",
232
+ "insertTextRules": 4,
233
+ "sortText": "02_deploy"
234
+ },
235
+ {
236
+ "label": "labels",
237
+ "kind": 9,
238
+ "detail": "Container labels",
239
+ "documentation": {
240
+ "value": "```yaml\nlabels:\n com.example.description: \"My web service\"\n com.example.department: \"Finance\"\n```\nAdd metadata labels to the container."
241
+ },
242
+ "insertText": "labels:\n ${1:key}: \"${2:value}\"",
243
+ "insertTextRules": 4,
244
+ "sortText": "02_labels"
245
+ },
246
+ {
247
+ "label": "working_dir",
248
+ "kind": 9,
249
+ "detail": "Working directory",
250
+ "documentation": {
251
+ "value": "```yaml\nworking_dir: /app\n```\nSet the working directory inside the container."
252
+ },
253
+ "insertText": "working_dir: ${1:/app}",
254
+ "insertTextRules": 4,
255
+ "sortText": "02_working_dir"
256
+ },
257
+ {
258
+ "label": "user",
259
+ "kind": 9,
260
+ "detail": "User override",
261
+ "documentation": {
262
+ "value": "```yaml\nuser: \"1000:1000\"\n```\nOverride the user used to run the container process."
263
+ },
264
+ "insertText": "user: \"${1:1000:1000}\"",
265
+ "insertTextRules": 4,
266
+ "sortText": "02_user"
267
+ },
268
+ {
269
+ "label": "stdin_open",
270
+ "kind": 9,
271
+ "detail": "Keep STDIN open",
272
+ "documentation": {
273
+ "value": "```yaml\nstdin_open: true\n```\nKeep STDIN open even if not attached. Equivalent to `docker run -i`."
274
+ },
275
+ "insertText": "stdin_open: ${1:true}",
276
+ "insertTextRules": 4,
277
+ "sortText": "02_stdin_open"
278
+ },
279
+ {
280
+ "label": "tty",
281
+ "kind": 9,
282
+ "detail": "Allocate pseudo-TTY",
283
+ "documentation": {
284
+ "value": "```yaml\ntty: true\n```\nAllocate a pseudo-TTY. Equivalent to `docker run -t`."
285
+ },
286
+ "insertText": "tty: ${1:true}",
287
+ "insertTextRules": 4,
288
+ "sortText": "02_tty"
289
+ },
290
+ {
291
+ "label": "hostname",
292
+ "kind": 9,
293
+ "detail": "Container hostname",
294
+ "documentation": {
295
+ "value": "```yaml\nhostname: my-web-host\n```\nSet the container hostname."
296
+ },
297
+ "insertText": "hostname: ${1:hostname}",
298
+ "insertTextRules": 4,
299
+ "sortText": "02_hostname"
300
+ },
301
+ {
302
+ "label": "domainname",
303
+ "kind": 9,
304
+ "detail": "Container domain name",
305
+ "documentation": {
306
+ "value": "```yaml\ndomainname: example.com\n```\nSet the container domain name."
307
+ },
308
+ "insertText": "domainname: ${1:example.com}",
309
+ "insertTextRules": 4,
310
+ "sortText": "02_domainname"
311
+ },
312
+ {
313
+ "label": "extra_hosts",
314
+ "kind": 9,
315
+ "detail": "Extra host-to-IP mappings",
316
+ "documentation": {
317
+ "value": "```yaml\nextra_hosts:\n - \"host.docker.internal:host-gateway\"\n - \"myhost:192.168.1.10\"\n```\nAdd hostname mappings to `/etc/hosts` inside the container."
318
+ },
319
+ "insertText": "extra_hosts:\n - \"${1:hostname}:${2:ip}\"",
320
+ "insertTextRules": 4,
321
+ "sortText": "02_extra_hosts"
322
+ },
323
+ {
324
+ "label": "dns",
325
+ "kind": 9,
326
+ "detail": "Custom DNS servers",
327
+ "documentation": {
328
+ "value": "```yaml\ndns:\n - 8.8.8.8\n - 8.8.4.4\n```\nCustom DNS server addresses."
329
+ },
330
+ "insertText": "dns:\n - ${1:8.8.8.8}",
331
+ "insertTextRules": 4,
332
+ "sortText": "02_dns"
333
+ },
334
+ {
335
+ "label": "dns_search",
336
+ "kind": 9,
337
+ "detail": "DNS search domains",
338
+ "documentation": {
339
+ "value": "```yaml\ndns_search:\n - example.com\n```\nCustom DNS search domains."
340
+ },
341
+ "insertText": "dns_search:\n - ${1:example.com}",
342
+ "insertTextRules": 4,
343
+ "sortText": "02_dns_search"
344
+ },
345
+ {
346
+ "label": "cap_add",
347
+ "kind": 9,
348
+ "detail": "Add capabilities",
349
+ "documentation": {
350
+ "value": "```yaml\ncap_add:\n - SYS_PTRACE\n - NET_ADMIN\n```\nAdd Linux capabilities to the container."
351
+ },
352
+ "insertText": "cap_add:\n - ${1:SYS_PTRACE}",
353
+ "insertTextRules": 4,
354
+ "sortText": "02_cap_add"
355
+ },
356
+ {
357
+ "label": "cap_drop",
358
+ "kind": 9,
359
+ "detail": "Drop capabilities",
360
+ "documentation": {
361
+ "value": "```yaml\ncap_drop:\n - ALL\n```\nDrop Linux capabilities from the container."
362
+ },
363
+ "insertText": "cap_drop:\n - ${1:ALL}",
364
+ "insertTextRules": 4,
365
+ "sortText": "02_cap_drop"
366
+ },
367
+ {
368
+ "label": "privileged",
369
+ "kind": 9,
370
+ "detail": "Privileged mode",
371
+ "documentation": {
372
+ "value": "```yaml\nprivileged: true\n```\nGive extended privileges to the container. Use with caution."
373
+ },
374
+ "insertText": "privileged: ${1:false}",
375
+ "insertTextRules": 4,
376
+ "sortText": "02_privileged"
377
+ },
378
+ {
379
+ "label": "read_only",
380
+ "kind": 9,
381
+ "detail": "Read-only root filesystem",
382
+ "documentation": {
383
+ "value": "```yaml\nread_only: true\n```\nMount the container root filesystem as read-only."
384
+ },
385
+ "insertText": "read_only: ${1:true}",
386
+ "insertTextRules": 4,
387
+ "sortText": "02_read_only"
388
+ },
389
+ {
390
+ "label": "security_opt",
391
+ "kind": 9,
392
+ "detail": "Security options",
393
+ "documentation": {
394
+ "value": "```yaml\nsecurity_opt:\n - no-new-privileges:true\n - seccomp:unconfined\n```\nOverride default labeling and security options."
395
+ },
396
+ "insertText": "security_opt:\n - ${1:no-new-privileges:true}",
397
+ "insertTextRules": 4,
398
+ "sortText": "02_security_opt"
399
+ },
400
+ {
401
+ "label": "sysctls",
402
+ "kind": 9,
403
+ "detail": "Kernel parameters",
404
+ "documentation": {
405
+ "value": "```yaml\nsysctls:\n net.core.somaxconn: 1024\n net.ipv4.tcp_syncookies: 0\n```\nSet kernel parameters inside the container."
406
+ },
407
+ "insertText": "sysctls:\n ${1:net.core.somaxconn}: ${2:1024}",
408
+ "insertTextRules": 4,
409
+ "sortText": "02_sysctls"
410
+ },
411
+ {
412
+ "label": "ulimits",
413
+ "kind": 9,
414
+ "detail": "Resource limits",
415
+ "documentation": {
416
+ "value": "```yaml\nulimits:\n nofile:\n soft: 65535\n hard: 65535\n nproc: 65535\n```\nOverride default ulimits for the container."
417
+ },
418
+ "insertText": "ulimits:\n nofile:\n soft: ${1:65535}\n hard: ${2:65535}",
419
+ "insertTextRules": 4,
420
+ "sortText": "02_ulimits"
421
+ },
422
+ {
423
+ "label": "tmpfs",
424
+ "kind": 9,
425
+ "detail": "Tmpfs mount",
426
+ "documentation": {
427
+ "value": "```yaml\ntmpfs:\n - /tmp\n - /run\n```\nMount a temporary filesystem inside the container."
428
+ },
429
+ "insertText": "tmpfs:\n - ${1:/tmp}",
430
+ "insertTextRules": 4,
431
+ "sortText": "02_tmpfs"
432
+ },
433
+ {
434
+ "label": "shm_size",
435
+ "kind": 9,
436
+ "detail": "Shared memory size",
437
+ "documentation": {
438
+ "value": "```yaml\nshm_size: '2gb'\n```\nSet the size of the shared memory (`/dev/shm`) allocation for the container."
439
+ },
440
+ "insertText": "shm_size: '${1:256m}'",
441
+ "insertTextRules": 4,
442
+ "sortText": "02_shm_size"
443
+ },
444
+ {
445
+ "label": "stop_signal",
446
+ "kind": 9,
447
+ "detail": "Stop signal",
448
+ "documentation": {
449
+ "value": "```yaml\nstop_signal: SIGTERM\n```\nThe signal to send when stopping the container. Default is SIGTERM."
450
+ },
451
+ "insertText": "stop_signal: ${1:SIGTERM}",
452
+ "insertTextRules": 4,
453
+ "sortText": "02_stop_signal"
454
+ },
455
+ {
456
+ "label": "stop_grace_period",
457
+ "kind": 9,
458
+ "detail": "Stop grace period",
459
+ "documentation": {
460
+ "value": "```yaml\nstop_grace_period: 30s\n```\nTime to wait before forcefully killing a container. Default is 10s."
461
+ },
462
+ "insertText": "stop_grace_period: ${1:30s}",
463
+ "insertTextRules": 4,
464
+ "sortText": "02_stop_grace_period"
465
+ },
466
+ {
467
+ "label": "init",
468
+ "kind": 9,
469
+ "detail": "Run init process",
470
+ "documentation": {
471
+ "value": "```yaml\ninit: true\n```\nRun an init process (tini) inside the container for proper signal handling and zombie process reaping."
472
+ },
473
+ "insertText": "init: ${1:true}",
474
+ "insertTextRules": 4,
475
+ "sortText": "02_init"
476
+ },
477
+ {
478
+ "label": "platform",
479
+ "kind": 9,
480
+ "detail": "Target platform",
481
+ "documentation": {
482
+ "value": "```yaml\nplatform: linux/amd64\n```\nTarget platform for the service container."
483
+ },
484
+ "insertText": "platform: ${1:linux/amd64}",
485
+ "insertTextRules": 4,
486
+ "sortText": "02_platform"
487
+ },
488
+ {
489
+ "label": "profiles",
490
+ "kind": 9,
491
+ "detail": "Service profiles",
492
+ "documentation": {
493
+ "value": "```yaml\nprofiles:\n - debug\n - development\n```\nAssign the service to one or more profiles. Service only starts when a matching profile is active."
494
+ },
495
+ "insertText": "profiles:\n - ${1:profile_name}",
496
+ "insertTextRules": 4,
497
+ "sortText": "02_profiles"
498
+ },
499
+ {
500
+ "label": "pull_policy",
501
+ "kind": 9,
502
+ "detail": "Image pull policy",
503
+ "documentation": {
504
+ "value": "```yaml\npull_policy: always\n# Options: always, never, missing, build\n```\nDefine when Compose should pull the image."
505
+ },
506
+ "insertText": "pull_policy: ${1|always,never,missing,build|}",
507
+ "insertTextRules": 4,
508
+ "sortText": "02_pull_policy"
509
+ },
510
+ {
511
+ "label": "network_mode",
512
+ "kind": 9,
513
+ "detail": "Network mode",
514
+ "documentation": {
515
+ "value": "```yaml\nnetwork_mode: host\n# Options: bridge, host, none, service:[service name]\n```\nSet the network mode for the service container."
516
+ },
517
+ "insertText": "network_mode: ${1:host}",
518
+ "insertTextRules": 4,
519
+ "sortText": "02_network_mode"
520
+ },
521
+ {
522
+ "label": "pid",
523
+ "kind": 9,
524
+ "detail": "PID mode",
525
+ "documentation": {
526
+ "value": "```yaml\npid: host\n```\nShare the host PID namespace with the container."
527
+ },
528
+ "insertText": "pid: ${1:host}",
529
+ "insertTextRules": 4,
530
+ "sortText": "02_pid"
531
+ },
532
+ {
533
+ "label": "ipc",
534
+ "kind": 9,
535
+ "detail": "IPC mode",
536
+ "documentation": {
537
+ "value": "```yaml\nipc: host\n```\nSet the IPC mode for the container."
538
+ },
539
+ "insertText": "ipc: ${1:host}",
540
+ "insertTextRules": 4,
541
+ "sortText": "02_ipc"
542
+ },
543
+ {
544
+ "label": "extends",
545
+ "kind": 9,
546
+ "detail": "Extend service",
547
+ "documentation": {
548
+ "value": "```yaml\nextends:\n file: common.yml\n service: webapp\n```\nExtend another service, optionally from another Compose file."
549
+ },
550
+ "insertText": "extends:\n file: ${1:common.yml}\n service: ${2:service_name}",
551
+ "insertTextRules": 4,
552
+ "sortText": "02_extends"
553
+ },
554
+ {
555
+ "label": "scale",
556
+ "kind": 9,
557
+ "detail": "Default number of containers",
558
+ "documentation": {
559
+ "value": "```yaml\nscale: 3\n```\nDefault number of containers to run for this service."
560
+ },
561
+ "insertText": "scale: ${1:1}",
562
+ "insertTextRules": 4,
563
+ "sortText": "02_scale"
564
+ },
565
+ {
566
+ "label": "devices",
567
+ "kind": 9,
568
+ "detail": "Device mappings",
569
+ "documentation": {
570
+ "value": "```yaml\ndevices:\n - \"/dev/sda:/dev/xvdc:rwm\"\n```\nMap host devices into the container."
571
+ },
572
+ "insertText": "devices:\n - \"${1:/dev/sda}:${2:/dev/xvdc}\"",
573
+ "insertTextRules": 4,
574
+ "sortText": "02_devices"
575
+ },
576
+ {
577
+ "label": "isolation",
578
+ "kind": 9,
579
+ "detail": "Container isolation technology",
580
+ "documentation": {
581
+ "value": "```yaml\nisolation: default\n# Options: default, process, hyperv (Windows)\n```\nContainer isolation technology."
582
+ },
583
+ "insertText": "isolation: ${1:default}",
584
+ "insertTextRules": 4,
585
+ "sortText": "02_isolation"
586
+ },
587
+ {
588
+ "label": "runtime",
589
+ "kind": 9,
590
+ "detail": "Runtime to use",
591
+ "documentation": {
592
+ "value": "```yaml\nruntime: nvidia\n```\nSpecify the runtime for the container (e.g., nvidia for GPU support)."
593
+ },
594
+ "insertText": "runtime: ${1:runc}",
595
+ "insertTextRules": 4,
596
+ "sortText": "02_runtime"
597
+ },
598
+ {
599
+ "label": "credential_spec",
600
+ "kind": 9,
601
+ "detail": "Credential specification",
602
+ "documentation": {
603
+ "value": "```yaml\ncredential_spec:\n config: my_credential_spec\n```\nConfigure the credential spec for managed service accounts (Windows)."
604
+ },
605
+ "insertText": "credential_spec:\n config: ${1:my_credential_spec}",
606
+ "insertTextRules": 4,
607
+ "sortText": "02_credential_spec"
608
+ },
609
+ {
610
+ "label": "develop",
611
+ "kind": 9,
612
+ "detail": "Development watch config",
613
+ "documentation": {
614
+ "value": "```yaml\ndevelop:\n watch:\n - action: sync\n path: ./src\n target: /app/src\n - action: rebuild\n path: package.json\n```\nConfigure file watching for live development with `docker compose watch`."
615
+ },
616
+ "insertText": "develop:\n watch:\n - action: ${1|sync,rebuild,sync+restart|}\n path: ${2:./src}\n target: ${3:/app/src}",
617
+ "insertTextRules": 4,
618
+ "sortText": "02_develop"
619
+ },
620
+ {
621
+ "label": "annotations",
622
+ "kind": 9,
623
+ "detail": "Container annotations",
624
+ "documentation": {
625
+ "value": "```yaml\nannotations:\n com.example.foo: bar\n```\nAdd OCI annotations to the container."
626
+ },
627
+ "insertText": "annotations:\n ${1:key}: ${2:value}",
628
+ "insertTextRules": 4,
629
+ "sortText": "02_annotations"
630
+ },
631
+ {
632
+ "label": "attach",
633
+ "kind": 9,
634
+ "detail": "Attach to service logs",
635
+ "documentation": {
636
+ "value": "```yaml\nattach: false\n```\nWhen set to false, Compose does not collect service logs."
637
+ },
638
+ "insertText": "attach: ${1:true}",
639
+ "insertTextRules": 4,
640
+ "sortText": "02_attach"
641
+ },
642
+ {
643
+ "label": "driver",
644
+ "kind": 9,
645
+ "detail": "Network/volume driver",
646
+ "documentation": {
647
+ "value": "```yaml\nnetworks:\n mynet:\n driver: bridge\nvolumes:\n mydata:\n driver: local\n```\nSpecify the driver for networks or volumes."
648
+ },
649
+ "insertText": "driver: ${1:bridge}",
650
+ "insertTextRules": 4,
651
+ "sortText": "02_driver"
652
+ },
653
+ {
654
+ "label": "driver_opts",
655
+ "kind": 9,
656
+ "detail": "Driver options",
657
+ "documentation": {
658
+ "value": "```yaml\ndriver_opts:\n type: nfs\n o: addr=10.0.0.1,rw\n device: \":/exported/path\"\n```\nOptions for the network or volume driver."
659
+ },
660
+ "insertText": "driver_opts:\n ${1:key}: ${2:value}",
661
+ "insertTextRules": 4,
662
+ "sortText": "02_driver_opts"
663
+ },
664
+ {
665
+ "label": "external",
666
+ "kind": 9,
667
+ "detail": "External resource",
668
+ "documentation": {
669
+ "value": "```yaml\nnetworks:\n mynet:\n external: true\nvolumes:\n mydata:\n external: true\n```\nSpecify that a network or volume is created outside of Compose."
670
+ },
671
+ "insertText": "external: ${1:true}",
672
+ "insertTextRules": 4,
673
+ "sortText": "02_external"
674
+ },
675
+ {
676
+ "label": "ipam",
677
+ "kind": 9,
678
+ "detail": "IP address management",
679
+ "documentation": {
680
+ "value": "```yaml\nnetworks:\n mynet:\n ipam:\n driver: default\n config:\n - subnet: 172.28.0.0/16\n```\nCustomize IP address management for a network."
681
+ },
682
+ "insertText": "ipam:\n driver: ${1:default}\n config:\n - subnet: ${2:172.28.0.0/16}",
683
+ "insertTextRules": 4,
684
+ "sortText": "02_ipam"
685
+ },
686
+ {
687
+ "label": "internal",
688
+ "kind": 9,
689
+ "detail": "Internal network",
690
+ "documentation": {
691
+ "value": "```yaml\nnetworks:\n backend:\n internal: true\n```\nRestrict external access to the network."
692
+ },
693
+ "insertText": "internal: ${1:true}",
694
+ "insertTextRules": 4,
695
+ "sortText": "02_internal"
696
+ },
697
+ {
698
+ "label": "attachable",
699
+ "kind": 9,
700
+ "detail": "Attachable network",
701
+ "documentation": {
702
+ "value": "```yaml\nnetworks:\n mynet:\n attachable: true\n```\nAllow standalone containers to attach to the network."
703
+ },
704
+ "insertText": "attachable: ${1:true}",
705
+ "insertTextRules": 4,
706
+ "sortText": "02_attachable"
707
+ },
708
+ {
709
+ "label": "enable_ipv6",
710
+ "kind": 9,
711
+ "detail": "Enable IPv6",
712
+ "documentation": {
713
+ "value": "```yaml\nnetworks:\n mynet:\n enable_ipv6: true\n```\nEnable IPv6 networking on the network."
714
+ },
715
+ "insertText": "enable_ipv6: ${1:true}",
716
+ "insertTextRules": 4,
717
+ "sortText": "02_enable_ipv6"
718
+ },
719
+ {
720
+ "label": "condition: service_started",
721
+ "kind": 13,
722
+ "detail": "Depend on service start",
723
+ "documentation": {
724
+ "value": "```yaml\ndepends_on:\n db:\n condition: service_started\n```\nWait until the dependency service has started."
725
+ },
726
+ "insertText": "condition: service_started",
727
+ "sortText": "04_condition_started",
728
+ "insertTextRules": 0
729
+ },
730
+ {
731
+ "label": "condition: service_healthy",
732
+ "kind": 13,
733
+ "detail": "Depend on healthy service",
734
+ "documentation": {
735
+ "value": "```yaml\ndepends_on:\n db:\n condition: service_healthy\n```\nWait until the dependency service's health check passes."
736
+ },
737
+ "insertText": "condition: service_healthy",
738
+ "sortText": "04_condition_healthy",
739
+ "insertTextRules": 0
740
+ },
741
+ {
742
+ "label": "condition: service_completed_successfully",
743
+ "kind": 13,
744
+ "detail": "Depend on successful completion",
745
+ "documentation": {
746
+ "value": "```yaml\ndepends_on:\n migrate:\n condition: service_completed_successfully\n```\nWait until the dependency service has completed with exit code 0."
747
+ },
748
+ "insertText": "condition: service_completed_successfully",
749
+ "sortText": "04_condition_completed",
750
+ "insertTextRules": 0
751
+ },
752
+ {
753
+ "label": "Web service (snippet)",
754
+ "kind": 28,
755
+ "detail": "Complete web service definition",
756
+ "documentation": {
757
+ "value": "```yaml\nweb:\n image: nginx:alpine\n ports:\n - \"80:80\"\n volumes:\n - ./html:/usr/share/nginx/html\n restart: unless-stopped\n```\nA complete web service configuration snippet."
758
+ },
759
+ "insertText": "${1:web}:\n image: ${2:nginx:alpine}\n ports:\n - \"${3:80}:${4:80}\"\n volumes:\n - ${5:./html}:${6:/usr/share/nginx/html}\n restart: ${7:unless-stopped}",
760
+ "insertTextRules": 4,
761
+ "sortText": "00_snippet_web"
762
+ },
763
+ {
764
+ "label": "Database service (snippet)",
765
+ "kind": 28,
766
+ "detail": "Complete database service definition",
767
+ "documentation": {
768
+ "value": "```yaml\ndb:\n image: postgres:16\n environment:\n POSTGRES_DB: mydb\n POSTGRES_USER: user\n POSTGRES_PASSWORD: password\n volumes:\n - db_data:/var/lib/postgresql/data\n ports:\n - \"5432:5432\"\n```\nA complete PostgreSQL database service snippet."
769
+ },
770
+ "insertText": "${1:db}:\n image: ${2:postgres:16}\n environment:\n POSTGRES_DB: ${3:mydb}\n POSTGRES_USER: ${4:user}\n POSTGRES_PASSWORD: ${5:password}\n volumes:\n - ${6:db_data}:/var/lib/postgresql/data\n ports:\n - \"${7:5432}:${8:5432}\"\n restart: unless-stopped",
771
+ "insertTextRules": 4,
772
+ "sortText": "00_snippet_database"
773
+ },
774
+ {
775
+ "label": "Redis service (snippet)",
776
+ "kind": 28,
777
+ "detail": "Complete Redis service definition",
778
+ "documentation": {
779
+ "value": "```yaml\nredis:\n image: redis:7-alpine\n ports:\n - \"6379:6379\"\n volumes:\n - redis_data:/data\n restart: unless-stopped\n```\nA complete Redis cache service snippet."
780
+ },
781
+ "insertText": "${1:redis}:\n image: redis:${2:7-alpine}\n ports:\n - \"${3:6379}:${4:6379}\"\n volumes:\n - ${5:redis_data}:/data\n restart: unless-stopped",
782
+ "insertTextRules": 4,
783
+ "sortText": "00_snippet_redis"
784
+ },
785
+ {
786
+ "label": "MySQL service (snippet)",
787
+ "kind": 28,
788
+ "detail": "Complete MySQL service definition",
789
+ "documentation": {
790
+ "value": "```yaml\nmysql:\n image: mysql:8\n environment:\n MYSQL_ROOT_PASSWORD: rootpassword\n MYSQL_DATABASE: mydb\n MYSQL_USER: user\n MYSQL_PASSWORD: password\n volumes:\n - mysql_data:/var/lib/mysql\n ports:\n - \"3306:3306\"\n```\nA complete MySQL database service snippet."
791
+ },
792
+ "insertText": "${1:mysql}:\n image: mysql:${2:8}\n environment:\n MYSQL_ROOT_PASSWORD: ${3:rootpassword}\n MYSQL_DATABASE: ${4:mydb}\n MYSQL_USER: ${5:user}\n MYSQL_PASSWORD: ${6:password}\n volumes:\n - ${7:mysql_data}:/var/lib/mysql\n ports:\n - \"${8:3306}:${9:3306}\"\n restart: unless-stopped",
793
+ "insertTextRules": 4,
794
+ "sortText": "00_snippet_mysql"
795
+ },
796
+ {
797
+ "label": "MongoDB service (snippet)",
798
+ "kind": 28,
799
+ "detail": "Complete MongoDB service definition",
800
+ "documentation": {
801
+ "value": "```yaml\nmongo:\n image: mongo:7\n environment:\n MONGO_INITDB_ROOT_USERNAME: admin\n MONGO_INITDB_ROOT_PASSWORD: password\n volumes:\n - mongo_data:/data/db\n ports:\n - \"27017:27017\"\n```\nA complete MongoDB service snippet."
802
+ },
803
+ "insertText": "${1:mongo}:\n image: mongo:${2:7}\n environment:\n MONGO_INITDB_ROOT_USERNAME: ${3:admin}\n MONGO_INITDB_ROOT_PASSWORD: ${4:password}\n volumes:\n - ${5:mongo_data}:/data/db\n ports:\n - \"${6:27017}:${7:27017}\"\n restart: unless-stopped",
804
+ "insertTextRules": 4,
805
+ "sortText": "00_snippet_mongodb"
806
+ },
807
+ {
808
+ "label": "Nginx reverse proxy (snippet)",
809
+ "kind": 28,
810
+ "detail": "Nginx reverse proxy service",
811
+ "documentation": {
812
+ "value": "```yaml\nnginx:\n image: nginx:alpine\n ports:\n - \"80:80\"\n - \"443:443\"\n volumes:\n - ./nginx.conf:/etc/nginx/nginx.conf:ro\n - ./certs:/etc/nginx/certs:ro\n depends_on:\n - app\n```\nReverse proxy with Nginx."
813
+ },
814
+ "insertText": "${1:nginx}:\n image: nginx:alpine\n ports:\n - \"80:80\"\n - \"443:443\"\n volumes:\n - ${2:./nginx.conf}:/etc/nginx/nginx.conf:ro\n depends_on:\n - ${3:app}\n restart: unless-stopped",
815
+ "insertTextRules": 4,
816
+ "sortText": "00_snippet_nginx_proxy"
817
+ },
818
+ {
819
+ "label": "Docker Compose boilerplate (snippet)",
820
+ "kind": 28,
821
+ "detail": "Full docker-compose.yml starter",
822
+ "documentation": {
823
+ "value": "```yaml\nservices:\n app:\n build: .\n ports:\n - \"3000:3000\"\n environment:\n - NODE_ENV=development\n volumes:\n - .:/app\n depends_on:\n - db\n db:\n image: postgres:16\n environment:\n POSTGRES_PASSWORD: postgres\n volumes:\n - db_data:/var/lib/postgresql/data\nvolumes:\n db_data:\n```\nComplete docker-compose.yml boilerplate with app and database."
824
+ },
825
+ "insertText": "services:\n ${1:app}:\n build: ${2:.}\n ports:\n - \"${3:3000}:${4:3000}\"\n environment:\n - ${5:NODE_ENV}=${6:development}\n volumes:\n - ${7:.}:${8:/app}\n depends_on:\n - ${9:db}\n\n ${9:db}:\n image: ${10:postgres:16}\n environment:\n POSTGRES_PASSWORD: ${11:postgres}\n volumes:\n - ${12:db_data}:/var/lib/postgresql/data\n\nvolumes:\n ${12:db_data}:\n",
826
+ "insertTextRules": 4,
827
+ "sortText": "00_snippet_boilerplate"
828
+ },
829
+ {
830
+ "label": "Traefik service (snippet)",
831
+ "kind": 28,
832
+ "detail": "Traefik reverse proxy service",
833
+ "documentation": {
834
+ "value": "```yaml\ntraefik:\n image: traefik:v3.0\n command:\n - \"--providers.docker=true\"\n - \"--entrypoints.web.address=:80\"\n ports:\n - \"80:80\"\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock:ro\n```\nTraefik reverse proxy with Docker provider."
835
+ },
836
+ "insertText": "${1:traefik}:\n image: traefik:${2:v3.0}\n command:\n - \"--providers.docker=true\"\n - \"--entrypoints.web.address=:80\"\n ports:\n - \"80:80\"\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock:ro\n restart: unless-stopped",
837
+ "insertTextRules": 4,
838
+ "sortText": "00_snippet_traefik"
839
+ },
840
+ {
841
+ "label": "Healthcheck (snippet)",
842
+ "kind": 28,
843
+ "detail": "Healthcheck snippet",
844
+ "documentation": {
845
+ "value": "```yaml\nhealthcheck:\n test: [\"CMD\", \"curl\", \"-f\", \"http://localhost:8080/health\"]\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 40s\n```\nFull health check configuration."
846
+ },
847
+ "insertText": "healthcheck:\n test: [\"CMD\", \"${1:curl}\", \"${2:-f}\", \"${3:http://localhost:8080/health}\"]\n interval: ${4:30s}\n timeout: ${5:10s}\n retries: ${6:3}\n start_period: ${7:40s}",
848
+ "insertTextRules": 4,
849
+ "sortText": "00_snippet_healthcheck"
850
+ },
851
+ {
852
+ "label": "Volume mount (snippet)",
853
+ "kind": 28,
854
+ "detail": "Named volume with driver",
855
+ "documentation": {
856
+ "value": "```yaml\nvolumes:\n data:\n driver: local\n driver_opts:\n type: none\n o: bind\n device: /path/on/host\n```\nA named volume with local bind mount driver options."
857
+ },
858
+ "insertText": "${1:data}:\n driver: local\n driver_opts:\n type: none\n o: bind\n device: ${2:/path/on/host}",
859
+ "insertTextRules": 4,
860
+ "sortText": "00_snippet_volume"
861
+ },
862
+ {
863
+ "label": "Network with subnet (snippet)",
864
+ "kind": 28,
865
+ "detail": "Custom network with IPAM",
866
+ "documentation": {
867
+ "value": "```yaml\nnetworks:\n backend:\n driver: bridge\n ipam:\n config:\n - subnet: 172.28.0.0/16\n```\nCustom bridge network with specific subnet."
868
+ },
869
+ "insertText": "${1:backend}:\n driver: bridge\n ipam:\n config:\n - subnet: ${2:172.28.0.0/16}",
870
+ "insertTextRules": 4,
871
+ "sortText": "00_snippet_network"
872
+ },
873
+ {
874
+ "label": "Logging config (snippet)",
875
+ "kind": 28,
876
+ "detail": "Logging driver configuration",
877
+ "documentation": {
878
+ "value": "```yaml\nlogging:\n driver: json-file\n options:\n max-size: \"10m\"\n max-file: \"3\"\n```\nJSON file logging with rotation."
879
+ },
880
+ "insertText": "logging:\n driver: ${1:json-file}\n options:\n max-size: \"${2:10m}\"\n max-file: \"${3:3}\"",
881
+ "insertTextRules": 4,
882
+ "sortText": "00_snippet_logging"
883
+ },
884
+ {
885
+ "label": "Deploy with resources (snippet)",
886
+ "kind": 28,
887
+ "detail": "Resource limits and reservations",
888
+ "documentation": {
889
+ "value": "```yaml\ndeploy:\n resources:\n limits:\n cpus: '0.5'\n memory: 512M\n reservations:\n cpus: '0.25'\n memory: 256M\n```\nResource limits and reservations for the service."
890
+ },
891
+ "insertText": "deploy:\n resources:\n limits:\n cpus: '${1:0.5}'\n memory: ${2:512M}\n reservations:\n cpus: '${3:0.25}'\n memory: ${4:256M}",
892
+ "insertTextRules": 4,
893
+ "sortText": "00_snippet_deploy_resources"
894
+ },
895
+ {
896
+ "label": "Build with args (snippet)",
897
+ "kind": 28,
898
+ "detail": "Build with context, dockerfile and args",
899
+ "documentation": {
900
+ "value": "```yaml\nbuild:\n context: .\n dockerfile: Dockerfile\n args:\n NODE_VERSION: 20\n ENV: production\n target: production\n```\nBuild configuration with arguments and multi-stage target."
901
+ },
902
+ "insertText": "build:\n context: ${1:.}\n dockerfile: ${2:Dockerfile}\n args:\n ${3:ARG_NAME}: ${4:value}\n target: ${5:production}",
903
+ "insertTextRules": 4,
904
+ "sortText": "00_snippet_build_args"
905
+ },
906
+ {
907
+ "label": "Watch config (snippet)",
908
+ "kind": 28,
909
+ "detail": "Docker Compose Watch configuration",
910
+ "documentation": {
911
+ "value": "```yaml\ndevelop:\n watch:\n - action: sync\n path: ./src\n target: /app/src\n - action: rebuild\n path: package.json\n - action: sync+restart\n path: ./config\n target: /app/config\n```\nFile watching for `docker compose watch`."
912
+ },
913
+ "insertText": "develop:\n watch:\n - action: ${1|sync,rebuild,sync+restart|}\n path: ${2:./src}\n target: ${3:/app/src}",
914
+ "insertTextRules": 4,
915
+ "sortText": "00_snippet_watch"
916
+ },
917
+ {
918
+ "label": "Secrets from file (snippet)",
919
+ "kind": 28,
920
+ "detail": "Secret from file definition",
921
+ "documentation": {
922
+ "value": "```yaml\nsecrets:\n db_password:\n file: ./secrets/db_password.txt\nservices:\n db:\n secrets:\n - db_password\n```\nDefine and use a file-based secret."
923
+ },
924
+ "insertText": "secrets:\n ${1:secret_name}:\n file: ${2:./secrets/secret.txt}",
925
+ "insertTextRules": 4,
926
+ "sortText": "00_snippet_secrets"
927
+ },
928
+ {
929
+ "label": "include",
930
+ "kind": 17,
931
+ "detail": "Include other Compose files",
932
+ "documentation": {
933
+ "value": "```yaml\ninclude:\n - path: ./db/compose.yaml\n - path: ./monitoring/compose.yaml\n```\nInclude other Compose files to combine multiple configurations."
934
+ },
935
+ "insertText": "include:\n - path: ${1:./compose.yaml}",
936
+ "insertTextRules": 4,
937
+ "sortText": "01_include"
938
+ },
939
+ {
940
+ "label": "x- extension field",
941
+ "kind": 9,
942
+ "detail": "Custom extension field",
943
+ "documentation": {
944
+ "value": "```yaml\nx-common: &common\n restart: unless-stopped\n logging:\n driver: json-file\n\nservices:\n web:\n <<: *common\n image: nginx\n```\nYAML extension fields (prefixed with `x-`) for reuse via anchors and aliases."
945
+ },
946
+ "insertText": "x-${1:common}: &${1:common}\n ${2:restart: unless-stopped}",
947
+ "insertTextRules": 4,
948
+ "sortText": "01_extension"
949
+ },
950
+ {
951
+ "label": "YAML anchor",
952
+ "kind": 28,
953
+ "detail": "YAML anchor and alias",
954
+ "documentation": {
955
+ "value": "```yaml\nx-logging: &logging\n logging:\n driver: json-file\n options:\n max-size: 10m\n\nservices:\n web:\n <<: *logging\n```\nDefine reusable YAML blocks with anchors (`&name`) and merge with aliases (`<<: *name`)."
956
+ },
957
+ "insertText": "x-${1:shared}: &${1:shared}\n ${2:key}: ${3:value}\n",
958
+ "insertTextRules": 4,
959
+ "sortText": "00_snippet_anchor"
960
+ }
961
+ ]
962
+ }