@enjoys/context-engine 1.7.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 (484) hide show
  1. package/data/color/abap.json +8 -8
  2. package/data/color/angular.json +11 -36
  3. package/data/color/apex.json +8 -8
  4. package/data/color/awk.json +40 -80
  5. package/data/color/azcli.json +8 -8
  6. package/data/color/bicep.json +8 -8
  7. package/data/color/c.json +4 -4
  8. package/data/color/caddy.json +8 -8
  9. package/data/color/cameligo.json +8 -8
  10. package/data/color/clojure.json +8 -8
  11. package/data/color/coffee.json +10 -17
  12. package/data/color/cpp.json +4 -4
  13. package/data/color/crontab.json +8 -8
  14. package/data/color/csharp.json +49 -109
  15. package/data/color/css.json +8 -32
  16. package/data/color/cypher.json +8 -8
  17. package/data/color/docker-compose.json +8 -8
  18. package/data/color/dockerfile.json +8 -8
  19. package/data/color/doctest.json +8 -8
  20. package/data/color/dotenv.json +8 -8
  21. package/data/color/ecl.json +8 -8
  22. package/data/color/elixir.json +49 -109
  23. package/data/color/flow9.json +8 -8
  24. package/data/color/freemarker2.json +61 -121
  25. package/data/color/go.json +4 -4
  26. package/data/color/graphql.json +8 -8
  27. package/data/color/hcl.json +8 -8
  28. package/data/color/html.json +13 -43
  29. package/data/color/ini.json +8 -8
  30. package/data/color/java.json +49 -109
  31. package/data/color/javascript.json +13 -43
  32. package/data/color/json.json +8 -8
  33. package/data/color/julia.json +49 -109
  34. package/data/color/less.json +10 -17
  35. package/data/color/lexon.json +8 -8
  36. package/data/color/liquid.json +61 -121
  37. package/data/color/lua.json +4 -4
  38. package/data/color/m3.json +8 -8
  39. package/data/color/makefile.json +8 -8
  40. package/data/color/markdown.json +61 -121
  41. package/data/color/mdx.json +61 -121
  42. package/data/color/mips.json +8 -8
  43. package/data/color/msdax.json +8 -8
  44. package/data/color/mysql.json +8 -8
  45. package/data/color/nestjs.json +52 -18
  46. package/data/color/nextjs.json +60 -22
  47. package/data/color/nginx.json +8 -8
  48. package/data/color/objective-c.json +4 -4
  49. package/data/color/pascal.json +8 -8
  50. package/data/color/pascaligo.json +8 -8
  51. package/data/color/perl.json +4 -4
  52. package/data/color/pgsql.json +8 -8
  53. package/data/color/php.json +13 -43
  54. package/data/color/pla.json +8 -8
  55. package/data/color/postiats.json +8 -8
  56. package/data/color/powerquery.json +8 -8
  57. package/data/color/powershell.json +40 -80
  58. package/data/color/protobuf.json +8 -8
  59. package/data/color/python.json +49 -109
  60. package/data/color/qsharp.json +8 -8
  61. package/data/color/r.json +49 -109
  62. package/data/color/razor.json +61 -121
  63. package/data/color/react.json +65 -93
  64. package/data/color/redis-cli.json +8 -8
  65. package/data/color/redis.json +8 -8
  66. package/data/color/redshift.json +8 -8
  67. package/data/color/restructuredtext.json +8 -8
  68. package/data/color/ruby.json +49 -109
  69. package/data/color/rust.json +4 -4
  70. package/data/color/sb.json +8 -8
  71. package/data/color/scala.json +2 -12
  72. package/data/color/scheme.json +8 -8
  73. package/data/color/scss.json +10 -17
  74. package/data/color/shadcn.json +11 -36
  75. package/data/color/shell.json +8 -48
  76. package/data/color/sol.json +8 -8
  77. package/data/color/sparql.json +8 -8
  78. package/data/color/sql.json +8 -8
  79. package/data/color/ssh_config.json +8 -8
  80. package/data/color/st.json +8 -8
  81. package/data/color/swift.json +56 -37
  82. package/data/color/systemd.json +8 -8
  83. package/data/color/systemverilog.json +8 -8
  84. package/data/color/tailwindcss.json +6 -24
  85. package/data/color/tcl.json +40 -80
  86. package/data/color/toml.json +8 -8
  87. package/data/color/twig.json +61 -121
  88. package/data/color/typescript.json +13 -43
  89. package/data/color/vb.json +49 -109
  90. package/data/color/wgsl.json +8 -8
  91. package/data/color/xml.json +61 -121
  92. package/data/color/yaml.json +8 -8
  93. package/data/commands/air.json +117 -59
  94. package/data/commands/alembic.json +487 -301
  95. package/data/commands/ansible.json +236 -24
  96. package/data/commands/apt-get.json +244 -81
  97. package/data/commands/apt.json +294 -91
  98. package/data/commands/atlas.json +956 -426
  99. package/data/commands/aws-vault.json +266 -140
  100. package/data/commands/bazel.json +328 -103
  101. package/data/commands/brew.json +444 -140
  102. package/data/commands/btop.json +132 -59
  103. package/data/commands/cabal.json +1 -1
  104. package/data/commands/cd.json +90 -48
  105. package/data/commands/choco.json +430 -134
  106. package/data/commands/chown.json +139 -59
  107. package/data/commands/clickhouse-client.json +183 -74
  108. package/data/commands/cmake.json +301 -110
  109. package/data/commands/cockroach.json +269 -92
  110. package/data/commands/conda.json +435 -94
  111. package/data/commands/consul.json +377 -125
  112. package/data/commands/crystal.json +1 -1
  113. package/data/commands/dbmate.json +498 -257
  114. package/data/commands/django-admin.json +489 -86
  115. package/data/commands/dnf.json +428 -137
  116. package/data/commands/dockerfile.json +1 -1
  117. package/data/commands/dotnet.json +1 -1
  118. package/data/commands/drizzle-kit.json +435 -217
  119. package/data/commands/erlang.json +1 -1
  120. package/data/commands/eslint.json +193 -69
  121. package/data/commands/expo.json +65 -65
  122. package/data/commands/firebase.json +406 -97
  123. package/data/commands/flask.json +254 -79
  124. package/data/commands/flyctl.json +657 -148
  125. package/data/commands/flyway.json +580 -261
  126. package/data/commands/ghc.json +1 -1
  127. package/data/commands/glab.json +577 -116
  128. package/data/commands/gofmt.json +101 -51
  129. package/data/commands/golangci-lint.json +243 -89
  130. package/data/commands/gradle.json +182 -44
  131. package/data/commands/gunicorn.json +243 -83
  132. package/data/commands/hg.json +502 -92
  133. package/data/commands/htop.json +151 -56
  134. package/data/commands/influx.json +363 -119
  135. package/data/commands/iptables.json +251 -86
  136. package/data/commands/javac.json +1 -1
  137. package/data/commands/just.json +262 -93
  138. package/data/commands/linode-cli.json +360 -117
  139. package/data/commands/linux.json +1 -1
  140. package/data/commands/liquibase.json +739 -399
  141. package/data/commands/manifest.json +1 -1
  142. package/data/commands/mix.json +1 -1
  143. package/data/commands/mongosh.json +174 -73
  144. package/data/commands/mvn.json +179 -45
  145. package/data/commands/mysql.json +1 -1
  146. package/data/commands/nest.json +270 -69
  147. package/data/commands/netlify.json +384 -92
  148. package/data/commands/next.json +221 -71
  149. package/data/commands/nft.json +299 -105
  150. package/data/commands/nim.json +1 -1
  151. package/data/commands/nomad.json +398 -139
  152. package/data/commands/npx.json +141 -58
  153. package/data/commands/nx.json +348 -82
  154. package/data/commands/ocaml.json +1 -1
  155. package/data/commands/opam.json +1 -1
  156. package/data/commands/packer.json +273 -92
  157. package/data/commands/pacman.json +228 -82
  158. package/data/commands/pg_dump.json +233 -83
  159. package/data/commands/pg_restore.json +224 -74
  160. package/data/commands/pipenv.json +300 -79
  161. package/data/commands/pipx.json +241 -53
  162. package/data/commands/poetry.json +521 -96
  163. package/data/commands/prettier.json +201 -71
  164. package/data/commands/pulumi.json +409 -130
  165. package/data/commands/pytest.json +240 -92
  166. package/data/commands/railway.json +343 -91
  167. package/data/commands/react-native.json +57 -57
  168. package/data/commands/rebar3.json +1 -1
  169. package/data/commands/render.json +235 -72
  170. package/data/commands/rustc.json +1 -1
  171. package/data/commands/rustup.json +339 -103
  172. package/data/commands/scala.json +1 -1
  173. package/data/commands/scp.json +146 -60
  174. package/data/commands/sequelize.json +629 -342
  175. package/data/commands/sqlite3.json +167 -68
  176. package/data/commands/stack.json +1 -1
  177. package/data/commands/supabase.json +433 -108
  178. package/data/commands/svn.json +509 -75
  179. package/data/commands/swiftc.json +1 -1
  180. package/data/commands/terraform.json +1505 -824
  181. package/data/commands/terragrunt.json +217 -83
  182. package/data/commands/top.json +167 -61
  183. package/data/commands/tsc.json +234 -85
  184. package/data/commands/turbo.json +263 -72
  185. package/data/commands/typeorm.json +427 -262
  186. package/data/commands/ufw.json +254 -76
  187. package/data/commands/unzip.json +154 -59
  188. package/data/commands/uvicorn.json +215 -73
  189. package/data/commands/vault.json +462 -144
  190. package/data/commands/vercel.json +410 -98
  191. package/data/commands/vite.json +239 -63
  192. package/data/commands/wasm-pack.json +254 -90
  193. package/data/commands/winget.json +466 -131
  194. package/data/commands/yum.json +323 -98
  195. package/data/commands/zig.json +1 -1
  196. package/data/commands/zip.json +159 -59
  197. package/data/completion/abap.json +423 -341
  198. package/data/completion/apex.json +423 -43
  199. package/data/completion/awk.json +1 -45
  200. package/data/completion/azcli.json +58 -115
  201. package/data/completion/bicep.json +90 -90
  202. package/data/completion/cameligo.json +533 -487
  203. package/data/completion/clojure.json +533 -488
  204. package/data/completion/coffee.json +522 -479
  205. package/data/completion/crontab.json +1 -34
  206. package/data/completion/cypher.json +687 -628
  207. package/data/completion/docker-compose.json +962 -959
  208. package/data/completion/dockerfile.json +1270 -1285
  209. package/data/completion/doctest.json +489 -526
  210. package/data/completion/ecl.json +588 -598
  211. package/data/completion/elixir.json +709 -649
  212. package/data/completion/flow9.json +401 -376
  213. package/data/completion/freemarker2.json +632 -579
  214. package/data/completion/go.json +10037 -10037
  215. package/data/completion/julia.json +698 -638
  216. package/data/completion/less.json +412 -378
  217. package/data/completion/lexon.json +80 -52
  218. package/data/completion/liquid.json +544 -499
  219. package/data/completion/lua.json +2535 -2634
  220. package/data/completion/m3.json +643 -587
  221. package/data/completion/makefile.json +1 -56
  222. package/data/completion/markdown.json +1 -56
  223. package/data/completion/mips.json +83 -49
  224. package/data/completion/msdax.json +511 -467
  225. package/data/completion/mysql.json +676 -638
  226. package/data/completion/objective-c.json +687 -629
  227. package/data/completion/pascal.json +709 -649
  228. package/data/completion/pascaligo.json +544 -517
  229. package/data/completion/perl.json +1 -89
  230. package/data/completion/pgsql.json +698 -638
  231. package/data/completion/postiats.json +445 -417
  232. package/data/completion/powerquery.json +621 -587
  233. package/data/completion/powershell.json +1 -166
  234. package/data/completion/protobuf.json +7 -117
  235. package/data/completion/qsharp.json +643 -587
  236. package/data/completion/r.json +2469 -1985
  237. package/data/completion/razor.json +533 -488
  238. package/data/completion/redis-cli.json +120 -60
  239. package/data/completion/redis.json +423 -389
  240. package/data/completion/redshift.json +698 -638
  241. package/data/completion/restructuredtext.json +544 -499
  242. package/data/completion/ruby.json +1930 -1531
  243. package/data/completion/sb.json +434 -398
  244. package/data/completion/scheme.json +555 -510
  245. package/data/completion/scss.json +544 -500
  246. package/data/completion/shell.json +115 -70
  247. package/data/completion/sol.json +720 -660
  248. package/data/completion/sparql.json +643 -587
  249. package/data/completion/st.json +698 -638
  250. package/data/completion/systemverilog.json +698 -638
  251. package/data/completion/tailwindcss.json +2821 -284
  252. package/data/completion/tcl.json +544 -499
  253. package/data/completion/twig.json +555 -510
  254. package/data/completion/vb.json +720 -660
  255. package/data/completion/wgsl.json +709 -649
  256. package/data/foldingRange/abap.json +0 -24
  257. package/data/foldingRange/angular.json +0 -18
  258. package/data/foldingRange/apex.json +0 -24
  259. package/data/foldingRange/awk.json +0 -18
  260. package/data/foldingRange/azcli.json +0 -18
  261. package/data/foldingRange/bicep.json +0 -18
  262. package/data/foldingRange/c.json +0 -24
  263. package/data/foldingRange/caddy.json +0 -18
  264. package/data/foldingRange/cameligo.json +0 -18
  265. package/data/foldingRange/clojure.json +0 -18
  266. package/data/foldingRange/coffee.json +0 -18
  267. package/data/foldingRange/cpp.json +0 -24
  268. package/data/foldingRange/crontab.json +0 -18
  269. package/data/foldingRange/csharp.json +0 -24
  270. package/data/foldingRange/css.json +5 -19
  271. package/data/foldingRange/cypher.json +0 -18
  272. package/data/foldingRange/dart.json +0 -24
  273. package/data/foldingRange/docker-compose.json +0 -18
  274. package/data/foldingRange/dockerfile.json +0 -18
  275. package/data/foldingRange/doctest.json +0 -18
  276. package/data/foldingRange/dotenv.json +0 -18
  277. package/data/foldingRange/ecl.json +0 -30
  278. package/data/foldingRange/elixir.json +0 -24
  279. package/data/foldingRange/flow9.json +0 -12
  280. package/data/foldingRange/freemarker2.json +0 -12
  281. package/data/foldingRange/go.json +0 -24
  282. package/data/foldingRange/graphql.json +0 -12
  283. package/data/foldingRange/hcl.json +0 -12
  284. package/data/foldingRange/html.json +0 -18
  285. package/data/foldingRange/ini.json +0 -18
  286. package/data/foldingRange/java.json +0 -24
  287. package/data/foldingRange/javascript.json +0 -24
  288. package/data/foldingRange/json.json +0 -12
  289. package/data/foldingRange/julia.json +0 -12
  290. package/data/foldingRange/kotlin.json +0 -18
  291. package/data/foldingRange/less.json +0 -18
  292. package/data/foldingRange/lexon.json +0 -12
  293. package/data/foldingRange/liquid.json +0 -18
  294. package/data/foldingRange/lua.json +0 -24
  295. package/data/foldingRange/m3.json +0 -18
  296. package/data/foldingRange/makefile.json +0 -12
  297. package/data/foldingRange/markdown.json +0 -12
  298. package/data/foldingRange/mdx.json +0 -18
  299. package/data/foldingRange/mips.json +0 -18
  300. package/data/foldingRange/msdax.json +0 -12
  301. package/data/foldingRange/mysql.json +0 -18
  302. package/data/foldingRange/nestjs.json +0 -24
  303. package/data/foldingRange/nextjs.json +0 -24
  304. package/data/foldingRange/nginx.json +0 -12
  305. package/data/foldingRange/objective-c.json +0 -18
  306. package/data/foldingRange/pascal.json +0 -18
  307. package/data/foldingRange/pascaligo.json +0 -12
  308. package/data/foldingRange/perl.json +0 -18
  309. package/data/foldingRange/pgsql.json +0 -18
  310. package/data/foldingRange/php.json +0 -18
  311. package/data/foldingRange/pla.json +0 -12
  312. package/data/foldingRange/postiats.json +0 -18
  313. package/data/foldingRange/powerquery.json +0 -12
  314. package/data/foldingRange/powershell.json +0 -18
  315. package/data/foldingRange/protobuf.json +0 -12
  316. package/data/foldingRange/python.json +0 -18
  317. package/data/foldingRange/qsharp.json +0 -12
  318. package/data/foldingRange/r.json +0 -12
  319. package/data/foldingRange/razor.json +0 -18
  320. package/data/foldingRange/react.json +0 -24
  321. package/data/foldingRange/redis-cli.json +0 -12
  322. package/data/foldingRange/redis.json +0 -18
  323. package/data/foldingRange/redshift.json +0 -18
  324. package/data/foldingRange/restructuredtext.json +0 -12
  325. package/data/foldingRange/ruby.json +0 -24
  326. package/data/foldingRange/rust.json +0 -18
  327. package/data/foldingRange/sb.json +0 -18
  328. package/data/foldingRange/scala.json +0 -18
  329. package/data/foldingRange/scheme.json +0 -12
  330. package/data/foldingRange/scss.json +0 -18
  331. package/data/foldingRange/shadcn.json +0 -24
  332. package/data/foldingRange/shell.json +0 -18
  333. package/data/foldingRange/sol.json +0 -18
  334. package/data/foldingRange/sparql.json +0 -12
  335. package/data/foldingRange/sql.json +0 -18
  336. package/data/foldingRange/ssh_config.json +0 -12
  337. package/data/foldingRange/st.json +0 -18
  338. package/data/foldingRange/swift.json +0 -18
  339. package/data/foldingRange/systemd.json +0 -12
  340. package/data/foldingRange/systemverilog.json +0 -12
  341. package/data/foldingRange/tailwindcss.json +0 -12
  342. package/data/foldingRange/tcl.json +0 -18
  343. package/data/foldingRange/toml.json +0 -12
  344. package/data/foldingRange/twig.json +0 -12
  345. package/data/foldingRange/typescript.json +0 -24
  346. package/data/foldingRange/vb.json +0 -18
  347. package/data/foldingRange/wgsl.json +0 -12
  348. package/data/foldingRange/xml.json +0 -18
  349. package/data/foldingRange/yaml.json +0 -12
  350. package/data/formatting/awk.json +5 -5
  351. package/data/formatting/azcli.json +1 -1
  352. package/data/formatting/c.json +5 -5
  353. package/data/formatting/caddy.json +4 -4
  354. package/data/formatting/cpp.json +5 -5
  355. package/data/formatting/crontab.json +2 -2
  356. package/data/formatting/csharp.json +5 -5
  357. package/data/formatting/dockerfile.json +4 -3
  358. package/data/formatting/dotenv.json +2 -2
  359. package/data/formatting/elixir.json +3 -3
  360. package/data/formatting/go.json +5 -5
  361. package/data/formatting/graphql.json +4 -4
  362. package/data/formatting/hcl.json +8 -8
  363. package/data/formatting/html.json +8 -8
  364. package/data/formatting/ini.json +4 -3
  365. package/data/formatting/java.json +5 -5
  366. package/data/formatting/javascript.json +5 -5
  367. package/data/formatting/json.json +4 -4
  368. package/data/formatting/less.json +8 -4
  369. package/data/formatting/lua.json +5 -5
  370. package/data/formatting/makefile.json +8 -4
  371. package/data/formatting/markdown.json +4 -4
  372. package/data/formatting/mips.json +2 -1
  373. package/data/formatting/mysql.json +1 -1
  374. package/data/formatting/nginx.json +5 -5
  375. package/data/formatting/perl.json +5 -5
  376. package/data/formatting/pgsql.json +1 -1
  377. package/data/formatting/php.json +5 -5
  378. package/data/formatting/powershell.json +5 -5
  379. package/data/formatting/protobuf.json +4 -4
  380. package/data/formatting/python.json +5 -5
  381. package/data/formatting/r.json +6 -6
  382. package/data/formatting/redis-cli.json +2 -2
  383. package/data/formatting/redshift.json +1 -1
  384. package/data/formatting/restructuredtext.json +2 -1
  385. package/data/formatting/ruby.json +5 -5
  386. package/data/formatting/rust.json +5 -5
  387. package/data/formatting/scala.json +6 -2
  388. package/data/formatting/scss.json +8 -4
  389. package/data/formatting/shell.json +1 -16
  390. package/data/formatting/sql.json +5 -5
  391. package/data/formatting/ssh_config.json +4 -3
  392. package/data/formatting/swift.json +6 -2
  393. package/data/formatting/systemd.json +2 -2
  394. package/data/formatting/toml.json +4 -3
  395. package/data/formatting/typescript.json +5 -5
  396. package/data/formatting/xml.json +8 -8
  397. package/data/formatting/yaml.json +4 -3
  398. package/data/links/abap.json +14 -14
  399. package/data/links/apex.json +18 -18
  400. package/data/links/awk.json +20 -20
  401. package/data/links/azcli.json +20 -20
  402. package/data/links/bicep.json +12 -12
  403. package/data/links/c.json +22 -22
  404. package/data/links/caddy.json +22 -22
  405. package/data/links/cameligo.json +20 -20
  406. package/data/links/clojure.json +12 -12
  407. package/data/links/coffee.json +14 -14
  408. package/data/links/cpp.json +22 -22
  409. package/data/links/crontab.json +22 -22
  410. package/data/links/csharp.json +22 -22
  411. package/data/links/cypher.json +18 -18
  412. package/data/links/dart.json +2 -2
  413. package/data/links/docker-compose.json +8 -8
  414. package/data/links/dockerfile.json +22 -22
  415. package/data/links/doctest.json +20 -20
  416. package/data/links/dotenv.json +20 -20
  417. package/data/links/ecl.json +18 -18
  418. package/data/links/elixir.json +12 -12
  419. package/data/links/flow9.json +22 -22
  420. package/data/links/freemarker2.json +10 -10
  421. package/data/links/go.json +23 -23
  422. package/data/links/graphql.json +18 -18
  423. package/data/links/hcl.json +22 -22
  424. package/data/links/html.json +19 -19
  425. package/data/links/ini.json +20 -20
  426. package/data/links/java.json +22 -22
  427. package/data/links/javascript.json +20 -20
  428. package/data/links/json.json +16 -16
  429. package/data/links/julia.json +16 -16
  430. package/data/links/kotlin.json +14 -14
  431. package/data/links/less.json +10 -10
  432. package/data/links/lexon.json +24 -24
  433. package/data/links/liquid.json +8 -8
  434. package/data/links/lua.json +22 -22
  435. package/data/links/m3.json +20 -20
  436. package/data/links/makefile.json +22 -22
  437. package/data/links/markdown.json +25 -25
  438. package/data/links/mdx.json +12 -12
  439. package/data/links/mips.json +22 -22
  440. package/data/links/msdax.json +22 -22
  441. package/data/links/mysql.json +17 -17
  442. package/data/links/nginx.json +22 -22
  443. package/data/links/objective-c.json +14 -14
  444. package/data/links/pascal.json +16 -16
  445. package/data/links/pascaligo.json +20 -20
  446. package/data/links/perl.json +22 -22
  447. package/data/links/pgsql.json +14 -14
  448. package/data/links/php.json +22 -22
  449. package/data/links/pla.json +24 -24
  450. package/data/links/postiats.json +18 -18
  451. package/data/links/powerquery.json +20 -20
  452. package/data/links/powershell.json +24 -24
  453. package/data/links/protobuf.json +22 -22
  454. package/data/links/python.json +27 -22
  455. package/data/links/qsharp.json +20 -20
  456. package/data/links/r.json +21 -21
  457. package/data/links/razor.json +8 -8
  458. package/data/links/redis-cli.json +22 -22
  459. package/data/links/redis.json +22 -22
  460. package/data/links/redshift.json +16 -16
  461. package/data/links/restructuredtext.json +10 -10
  462. package/data/links/ruby.json +22 -22
  463. package/data/links/rust.json +22 -22
  464. package/data/links/sb.json +24 -24
  465. package/data/links/scheme.json +12 -12
  466. package/data/links/scss.json +2 -2
  467. package/data/links/shell.json +1 -6
  468. package/data/links/sol.json +16 -16
  469. package/data/links/sparql.json +18 -18
  470. package/data/links/sql.json +18 -18
  471. package/data/links/ssh_config.json +22 -22
  472. package/data/links/st.json +20 -20
  473. package/data/links/swift.json +8 -8
  474. package/data/links/systemd.json +18 -18
  475. package/data/links/systemverilog.json +20 -20
  476. package/data/links/tcl.json +16 -16
  477. package/data/links/toml.json +16 -16
  478. package/data/links/typescript.json +20 -20
  479. package/data/links/vb.json +16 -16
  480. package/data/links/wgsl.json +24 -24
  481. package/data/links/xml.json +22 -22
  482. package/data/links/yaml.json +12 -12
  483. package/data/manifest.json +2 -2
  484. package/package.json +1 -1
@@ -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
+ }