@enjoys/context-engine 1.4.1 → 1.4.2

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 (424) hide show
  1. package/data/codeLens/awk.json +1 -1
  2. package/data/codeLens/azcli.json +10 -10
  3. package/data/codeLens/c.json +1 -1
  4. package/data/codeLens/caddy.json +1 -1
  5. package/data/codeLens/crontab.json +1 -1
  6. package/data/codeLens/doctest.json +10 -10
  7. package/data/codeLens/hcl.json +1 -1
  8. package/data/codeLens/html.json +1 -1
  9. package/data/codeLens/lua.json +1 -1
  10. package/data/codeLens/nginx.json +1 -1
  11. package/data/codeLens/pla.json +10 -10
  12. package/data/codeLens/xml.json +1 -1
  13. package/data/commands/angular.json +670 -312
  14. package/data/commands/c.json +30 -30
  15. package/data/commands/cpp.json +30 -30
  16. package/data/commands/crontab.json +25 -30
  17. package/data/commands/cypher.json +26 -30
  18. package/data/commands/dockerfile.json +26 -2
  19. package/data/commands/doctest.json +23 -24
  20. package/data/commands/dotenv.json +24 -11
  21. package/data/commands/ecl.json +26 -30
  22. package/data/commands/flow9.json +24 -24
  23. package/data/commands/freemarker2.json +24 -18
  24. package/data/commands/graphql.json +25 -11
  25. package/data/commands/html.json +25 -11
  26. package/data/commands/ini.json +26 -12
  27. package/data/commands/javascript.json +29 -30
  28. package/data/commands/less.json +25 -29
  29. package/data/commands/lexon.json +23 -11
  30. package/data/commands/liquid.json +26 -11
  31. package/data/commands/m3.json +26 -12
  32. package/data/commands/manifest.json +35 -731
  33. package/data/commands/markdown.json +26 -12
  34. package/data/commands/mdx.json +23 -10
  35. package/data/commands/mips.json +26 -18
  36. package/data/commands/msdax.json +23 -11
  37. package/data/commands/nestjs.json +516 -273
  38. package/data/commands/nextjs.json +250 -123
  39. package/data/commands/objective-c.json +26 -24
  40. package/data/commands/pascal.json +27 -24
  41. package/data/commands/pascaligo.json +26 -24
  42. package/data/commands/perl.json +30 -30
  43. package/data/commands/pla.json +23 -11
  44. package/data/commands/postiats.json +26 -24
  45. package/data/commands/powerquery.json +23 -11
  46. package/data/commands/powershell.json +28 -30
  47. package/data/commands/protobuf.json +27 -30
  48. package/data/commands/qsharp.json +26 -30
  49. package/data/commands/razor.json +25 -29
  50. package/data/commands/react.json +244 -210
  51. package/data/commands/redshift.json +27 -18
  52. package/data/commands/restructuredtext.json +29 -30
  53. package/data/commands/sb.json +23 -11
  54. package/data/commands/scheme.json +25 -18
  55. package/data/commands/scss.json +26 -29
  56. package/data/commands/shadcn.json +564 -410
  57. package/data/commands/sol.json +27 -30
  58. package/data/commands/sparql.json +25 -11
  59. package/data/commands/sql.json +16 -2
  60. package/data/commands/ssh_config.json +31 -30
  61. package/data/commands/st.json +23 -11
  62. package/data/commands/systemverilog.json +26 -24
  63. package/data/commands/tailwindcss.json +60 -53
  64. package/data/commands/tcl.json +23 -18
  65. package/data/commands/toml.json +25 -11
  66. package/data/commands/twig.json +23 -10
  67. package/data/commands/vb.json +27 -24
  68. package/data/commands/wgsl.json +24 -11
  69. package/data/commands/yaml.json +29 -30
  70. package/data/completion/awk.json +906 -202
  71. package/data/completion/azcli.json +886 -237
  72. package/data/completion/bicep.json +862 -367
  73. package/data/completion/crontab.json +906 -202
  74. package/data/completion/dotenv.json +895 -169
  75. package/data/completion/graphql.json +895 -180
  76. package/data/completion/hcl.json +906 -191
  77. package/data/completion/ini.json +906 -136
  78. package/data/completion/json.json +895 -169
  79. package/data/completion/lexon.json +856 -295
  80. package/data/completion/makefile.json +906 -202
  81. package/data/completion/markdown.json +906 -224
  82. package/data/completion/mdx.json +895 -87
  83. package/data/completion/mips.json +872 -377
  84. package/data/completion/perl.json +961 -202
  85. package/data/completion/pla.json +895 -154
  86. package/data/completion/powershell.json +906 -224
  87. package/data/completion/protobuf.json +884 -180
  88. package/data/completion/ssh_config.json +906 -158
  89. package/data/completion/xml.json +906 -158
  90. package/data/definition/abap.json +127 -1
  91. package/data/definition/apex.json +97 -1
  92. package/data/definition/coffee.json +51 -1
  93. package/data/definition/dart.json +105 -1
  94. package/data/definition/elixir.json +115 -1
  95. package/data/definition/flow9.json +208 -1
  96. package/data/definition/freemarker2.json +283 -1
  97. package/data/definition/html.json +853 -558
  98. package/data/definition/java.json +1127 -183
  99. package/data/definition/kotlin.json +72 -1
  100. package/data/definition/r.json +692 -83
  101. package/data/definition/ruby.json +789 -669
  102. package/data/definition/rust.json +852 -206
  103. package/data/definition/sb.json +339 -1
  104. package/data/definition/st.json +367 -1
  105. package/data/documentRangeFormatting/nestjs.json +57 -17
  106. package/data/documentRangeFormatting/nextjs.json +57 -17
  107. package/data/documentRangeFormatting/react.json +82 -78
  108. package/data/documentSymbol/abap.json +54 -12
  109. package/data/documentSymbol/apex.json +40 -10
  110. package/data/documentSymbol/awk.json +15 -1
  111. package/data/documentSymbol/bicep.json +39 -39
  112. package/data/documentSymbol/c.json +1 -1
  113. package/data/documentSymbol/clojure.json +46 -46
  114. package/data/documentSymbol/css.json +96 -96
  115. package/data/documentSymbol/dart.json +109 -19
  116. package/data/documentSymbol/dockerfile.json +1 -1
  117. package/data/documentSymbol/elixir.json +39 -39
  118. package/data/documentSymbol/go.json +1 -1
  119. package/data/documentSymbol/graphql.json +1 -1
  120. package/data/documentSymbol/hcl.json +1 -1
  121. package/data/documentSymbol/html.json +29 -1
  122. package/data/documentSymbol/java.json +1 -1
  123. package/data/documentSymbol/javascript.json +1 -1
  124. package/data/documentSymbol/julia.json +46 -46
  125. package/data/documentSymbol/kotlin.json +74 -14
  126. package/data/documentSymbol/less.json +25 -25
  127. package/data/documentSymbol/lua.json +22 -1
  128. package/data/documentSymbol/makefile.json +15 -1
  129. package/data/documentSymbol/markdown.json +36 -1
  130. package/data/documentSymbol/mysql.json +32 -32
  131. package/data/documentSymbol/nginx.json +1 -1
  132. package/data/documentSymbol/pascal.json +46 -46
  133. package/data/documentSymbol/perl.json +1 -1
  134. package/data/documentSymbol/pgsql.json +39 -39
  135. package/data/documentSymbol/php.json +1 -1
  136. package/data/documentSymbol/powershell.json +1 -1
  137. package/data/documentSymbol/protobuf.json +1 -1
  138. package/data/documentSymbol/python.json +1 -1
  139. package/data/documentSymbol/r.json +67 -67
  140. package/data/documentSymbol/redshift.json +60 -18
  141. package/data/documentSymbol/ruby.json +1 -1
  142. package/data/documentSymbol/rust.json +1 -1
  143. package/data/documentSymbol/scala.json +116 -20
  144. package/data/documentSymbol/scheme.json +25 -25
  145. package/data/documentSymbol/scss.json +39 -39
  146. package/data/documentSymbol/shell.json +1 -1
  147. package/data/documentSymbol/sql.json +1 -1
  148. package/data/documentSymbol/swift.json +88 -16
  149. package/data/documentSymbol/typescript.json +1 -1
  150. package/data/documentSymbol/vb.json +53 -53
  151. package/data/documentSymbol/yaml.json +1 -1
  152. package/data/foldingRange/angular.json +100 -99
  153. package/data/foldingRange/nestjs.json +94 -26
  154. package/data/foldingRange/nextjs.json +94 -26
  155. package/data/foldingRange/react.json +118 -120
  156. package/data/foldingRange/shadcn.json +94 -93
  157. package/data/formatting/abap.json +19 -11
  158. package/data/formatting/angular.json +63 -21
  159. package/data/formatting/apex.json +19 -11
  160. package/data/formatting/awk.json +1 -1
  161. package/data/formatting/azcli.json +18 -18
  162. package/data/formatting/bicep.json +18 -18
  163. package/data/formatting/c.json +1 -1
  164. package/data/formatting/caddy.json +1 -1
  165. package/data/formatting/cameligo.json +18 -18
  166. package/data/formatting/clojure.json +18 -18
  167. package/data/formatting/coffee.json +18 -18
  168. package/data/formatting/cpp.json +1 -1
  169. package/data/formatting/crontab.json +1 -1
  170. package/data/formatting/csharp.json +1 -1
  171. package/data/formatting/css.json +73 -73
  172. package/data/formatting/cypher.json +18 -18
  173. package/data/formatting/dart.json +43 -15
  174. package/data/formatting/docker-compose.json +24 -24
  175. package/data/formatting/dockerfile.json +1 -1
  176. package/data/formatting/doctest.json +18 -18
  177. package/data/formatting/dotenv.json +1 -1
  178. package/data/formatting/ecl.json +18 -18
  179. package/data/formatting/elixir.json +43 -18
  180. package/data/formatting/flow9.json +18 -18
  181. package/data/formatting/freemarker2.json +18 -18
  182. package/data/formatting/go.json +1 -1
  183. package/data/formatting/graphql.json +1 -1
  184. package/data/formatting/hcl.json +26 -1
  185. package/data/formatting/html.json +26 -1
  186. package/data/formatting/ini.json +1 -1
  187. package/data/formatting/java.json +1 -1
  188. package/data/formatting/javascript.json +1 -1
  189. package/data/formatting/julia.json +18 -18
  190. package/data/formatting/kotlin.json +33 -13
  191. package/data/formatting/less.json +48 -18
  192. package/data/formatting/lexon.json +18 -18
  193. package/data/formatting/liquid.json +18 -18
  194. package/data/formatting/lua.json +1 -1
  195. package/data/formatting/m3.json +18 -18
  196. package/data/formatting/makefile.json +1 -1
  197. package/data/formatting/markdown.json +26 -1
  198. package/data/formatting/mdx.json +18 -18
  199. package/data/formatting/mips.json +18 -18
  200. package/data/formatting/msdax.json +18 -18
  201. package/data/formatting/mysql.json +43 -18
  202. package/data/formatting/nginx.json +1 -1
  203. package/data/formatting/objective-c.json +18 -18
  204. package/data/formatting/pascal.json +18 -18
  205. package/data/formatting/pascaligo.json +18 -18
  206. package/data/formatting/perl.json +1 -1
  207. package/data/formatting/pgsql.json +43 -18
  208. package/data/formatting/php.json +1 -1
  209. package/data/formatting/pla.json +18 -18
  210. package/data/formatting/postiats.json +18 -18
  211. package/data/formatting/powerquery.json +18 -18
  212. package/data/formatting/powershell.json +1 -1
  213. package/data/formatting/protobuf.json +1 -1
  214. package/data/formatting/python.json +1 -1
  215. package/data/formatting/qsharp.json +18 -18
  216. package/data/formatting/r.json +32 -32
  217. package/data/formatting/razor.json +18 -18
  218. package/data/formatting/redis-cli.json +1 -1
  219. package/data/formatting/redis.json +18 -18
  220. package/data/formatting/redshift.json +43 -18
  221. package/data/formatting/restructuredtext.json +18 -18
  222. package/data/formatting/ruby.json +1 -1
  223. package/data/formatting/rust.json +1 -1
  224. package/data/formatting/sb.json +18 -18
  225. package/data/formatting/scala.json +48 -16
  226. package/data/formatting/scheme.json +18 -18
  227. package/data/formatting/scss.json +48 -18
  228. package/data/formatting/shadcn.json +63 -61
  229. package/data/formatting/shell.json +1 -1
  230. package/data/formatting/sol.json +18 -18
  231. package/data/formatting/sparql.json +18 -18
  232. package/data/formatting/sql.json +1 -1
  233. package/data/formatting/ssh_config.json +1 -1
  234. package/data/formatting/st.json +18 -18
  235. package/data/formatting/swift.json +58 -18
  236. package/data/formatting/systemd.json +1 -1
  237. package/data/formatting/systemverilog.json +18 -18
  238. package/data/formatting/tcl.json +18 -18
  239. package/data/formatting/toml.json +1 -1
  240. package/data/formatting/twig.json +18 -18
  241. package/data/formatting/typescript.json +1 -1
  242. package/data/formatting/vb.json +18 -18
  243. package/data/formatting/wgsl.json +18 -18
  244. package/data/formatting/xml.json +26 -1
  245. package/data/formatting/yaml.json +1 -1
  246. package/data/hover/apex.json +281 -6
  247. package/data/hover/awk.json +251 -6
  248. package/data/hover/crontab.json +251 -6
  249. package/data/hover/dotenv.json +242 -4
  250. package/data/hover/graphql.json +251 -6
  251. package/data/hover/lexon.json +250 -5
  252. package/data/hover/markdown.json +226 -9
  253. package/data/hover/mdx.json +250 -5
  254. package/data/hover/perl.json +251 -6
  255. package/data/hover/pla.json +264 -5
  256. package/data/hover/powershell.json +252 -7
  257. package/data/hover/protobuf.json +251 -6
  258. package/data/hover/redis.json +355 -40
  259. package/data/hover/ssh_config.json +251 -6
  260. package/data/hover/xml.json +231 -7
  261. package/data/inlineCompletions/c.json +49 -1
  262. package/data/inlineCompletions/cpp.json +61 -1
  263. package/data/inlineCompletions/csharp.json +73 -1
  264. package/data/inlineCompletions/css.json +125 -125
  265. package/data/inlineCompletions/dart.json +136 -26
  266. package/data/inlineCompletions/elixir.json +34 -34
  267. package/data/inlineCompletions/go.json +67 -1
  268. package/data/inlineCompletions/html.json +1 -1
  269. package/data/inlineCompletions/java.json +67 -1
  270. package/data/inlineCompletions/javascript.json +97 -1
  271. package/data/inlineCompletions/kotlin.json +88 -18
  272. package/data/inlineCompletions/less.json +76 -28
  273. package/data/inlineCompletions/lua.json +37 -1
  274. package/data/inlineCompletions/mysql.json +34 -34
  275. package/data/inlineCompletions/pgsql.json +34 -34
  276. package/data/inlineCompletions/php.json +43 -1
  277. package/data/inlineCompletions/python.json +73 -1
  278. package/data/inlineCompletions/ruby.json +49 -1
  279. package/data/inlineCompletions/rust.json +61 -1
  280. package/data/inlineCompletions/scala.json +130 -25
  281. package/data/inlineCompletions/scss.json +34 -34
  282. package/data/inlineCompletions/shell.json +1 -1
  283. package/data/inlineCompletions/sql.json +43 -1
  284. package/data/inlineCompletions/swift.json +112 -22
  285. package/data/inlineCompletions/typescript.json +97 -1
  286. package/data/linkedEditingRange/azcli.json +6 -6
  287. package/data/linkedEditingRange/crontab.json +6 -6
  288. package/data/linkedEditingRange/docker-compose.json +6 -6
  289. package/data/linkedEditingRange/doctest.json +6 -6
  290. package/data/linkedEditingRange/dotenv.json +13 -6
  291. package/data/linkedEditingRange/ini.json +13 -6
  292. package/data/linkedEditingRange/json.json +13 -6
  293. package/data/linkedEditingRange/lexon.json +6 -6
  294. package/data/linkedEditingRange/mips.json +6 -6
  295. package/data/linkedEditingRange/msdax.json +6 -6
  296. package/data/linkedEditingRange/nestjs.json +18 -10
  297. package/data/linkedEditingRange/nextjs.json +24 -11
  298. package/data/linkedEditingRange/pla.json +6 -6
  299. package/data/linkedEditingRange/react.json +74 -75
  300. package/data/linkedEditingRange/redis-cli.json +6 -6
  301. package/data/linkedEditingRange/redis.json +6 -6
  302. package/data/linkedEditingRange/ssh_config.json +6 -6
  303. package/data/linkedEditingRange/systemd.json +6 -6
  304. package/data/linkedEditingRange/toml.json +13 -6
  305. package/data/linkedEditingRange/wgsl.json +6 -6
  306. package/data/linkedEditingRange/xml.json +13 -13
  307. package/data/linkedEditingRange/yaml.json +13 -6
  308. package/data/onTypeFormatting/angular.json +63 -14
  309. package/data/onTypeFormatting/nestjs.json +64 -16
  310. package/data/onTypeFormatting/nextjs.json +72 -17
  311. package/data/onTypeFormatting/react.json +148 -127
  312. package/data/onTypeFormatting/shadcn.json +63 -54
  313. package/data/rangeSemanticTokens/angular.json +196 -140
  314. package/data/rangeSemanticTokens/nestjs.json +195 -27
  315. package/data/rangeSemanticTokens/nextjs.json +199 -28
  316. package/data/rangeSemanticTokens/react.json +77 -216
  317. package/data/rangeSemanticTokens/shadcn.json +203 -140
  318. package/data/rename/angular.json +121 -131
  319. package/data/rename/nestjs.json +122 -32
  320. package/data/rename/nextjs.json +116 -31
  321. package/data/rename/react.json +133 -88
  322. package/data/rename/shadcn.json +73 -79
  323. package/data/selectionRange/abap.json +58 -34
  324. package/data/selectionRange/angular.json +126 -95
  325. package/data/selectionRange/apex.json +58 -34
  326. package/data/selectionRange/awk.json +56 -34
  327. package/data/selectionRange/azcli.json +43 -24
  328. package/data/selectionRange/bicep.json +56 -34
  329. package/data/selectionRange/c.json +62 -39
  330. package/data/selectionRange/caddy.json +53 -34
  331. package/data/selectionRange/cameligo.json +56 -34
  332. package/data/selectionRange/clojure.json +57 -34
  333. package/data/selectionRange/coffee.json +59 -34
  334. package/data/selectionRange/cpp.json +73 -44
  335. package/data/selectionRange/crontab.json +39 -29
  336. package/data/selectionRange/csharp.json +69 -39
  337. package/data/selectionRange/css.json +95 -55
  338. package/data/selectionRange/cypher.json +57 -34
  339. package/data/selectionRange/dart.json +65 -34
  340. package/data/selectionRange/docker-compose.json +54 -34
  341. package/data/selectionRange/dockerfile.json +56 -34
  342. package/data/selectionRange/doctest.json +47 -24
  343. package/data/selectionRange/dotenv.json +33 -24
  344. package/data/selectionRange/ecl.json +58 -34
  345. package/data/selectionRange/elixir.json +63 -34
  346. package/data/selectionRange/flow9.json +57 -34
  347. package/data/selectionRange/freemarker2.json +58 -34
  348. package/data/selectionRange/go.json +64 -39
  349. package/data/selectionRange/graphql.json +58 -34
  350. package/data/selectionRange/hcl.json +56 -34
  351. package/data/selectionRange/html.json +63 -34
  352. package/data/selectionRange/ini.json +38 -24
  353. package/data/selectionRange/java.json +68 -39
  354. package/data/selectionRange/javascript.json +65 -39
  355. package/data/selectionRange/julia.json +65 -39
  356. package/data/selectionRange/kotlin.json +68 -39
  357. package/data/selectionRange/less.json +58 -34
  358. package/data/selectionRange/lexon.json +38 -24
  359. package/data/selectionRange/liquid.json +58 -34
  360. package/data/selectionRange/lua.json +59 -34
  361. package/data/selectionRange/m3.json +57 -34
  362. package/data/selectionRange/makefile.json +53 -34
  363. package/data/selectionRange/markdown.json +57 -34
  364. package/data/selectionRange/mdx.json +63 -34
  365. package/data/selectionRange/mips.json +43 -29
  366. package/data/selectionRange/msdax.json +52 -34
  367. package/data/selectionRange/mysql.json +51 -34
  368. package/data/selectionRange/nestjs.json +35 -21
  369. package/data/selectionRange/nextjs.json +35 -22
  370. package/data/selectionRange/nginx.json +53 -34
  371. package/data/selectionRange/objective-c.json +64 -39
  372. package/data/selectionRange/pascal.json +53 -34
  373. package/data/selectionRange/pascaligo.json +57 -34
  374. package/data/selectionRange/perl.json +59 -34
  375. package/data/selectionRange/pgsql.json +50 -34
  376. package/data/selectionRange/php.json +65 -39
  377. package/data/selectionRange/pla.json +52 -29
  378. package/data/selectionRange/postiats.json +61 -34
  379. package/data/selectionRange/powerquery.json +56 -34
  380. package/data/selectionRange/powershell.json +65 -39
  381. package/data/selectionRange/protobuf.json +58 -34
  382. package/data/selectionRange/python.json +66 -39
  383. package/data/selectionRange/qsharp.json +62 -39
  384. package/data/selectionRange/r.json +57 -34
  385. package/data/selectionRange/razor.json +63 -34
  386. package/data/selectionRange/react.json +103 -87
  387. package/data/selectionRange/redis-cli.json +38 -24
  388. package/data/selectionRange/redis.json +38 -24
  389. package/data/selectionRange/redshift.json +49 -34
  390. package/data/selectionRange/restructuredtext.json +58 -34
  391. package/data/selectionRange/ruby.json +65 -39
  392. package/data/selectionRange/rust.json +73 -44
  393. package/data/selectionRange/sb.json +43 -29
  394. package/data/selectionRange/scala.json +65 -39
  395. package/data/selectionRange/scheme.json +52 -34
  396. package/data/selectionRange/scss.json +58 -34
  397. package/data/selectionRange/shadcn.json +120 -89
  398. package/data/selectionRange/shell.json +1 -1
  399. package/data/selectionRange/sol.json +63 -39
  400. package/data/selectionRange/sparql.json +58 -34
  401. package/data/selectionRange/sql.json +50 -34
  402. package/data/selectionRange/ssh_config.json +37 -29
  403. package/data/selectionRange/st.json +49 -29
  404. package/data/selectionRange/swift.json +73 -44
  405. package/data/selectionRange/systemd.json +47 -34
  406. package/data/selectionRange/systemverilog.json +62 -39
  407. package/data/selectionRange/tailwindcss.json +49 -34
  408. package/data/selectionRange/tcl.json +57 -34
  409. package/data/selectionRange/toml.json +49 -29
  410. package/data/selectionRange/twig.json +58 -34
  411. package/data/selectionRange/typescript.json +75 -44
  412. package/data/selectionRange/vb.json +59 -39
  413. package/data/selectionRange/wgsl.json +61 -34
  414. package/data/selectionRange/xml.json +51 -34
  415. package/data/selectionRange/yaml.json +54 -34
  416. package/data/semanticTokens/angular.json +269 -198
  417. package/data/semanticTokens/nestjs.json +245 -35
  418. package/data/semanticTokens/nextjs.json +265 -38
  419. package/data/semanticTokens/react.json +230 -215
  420. package/data/semanticTokens/shadcn.json +235 -180
  421. package/data/signatureHelp/nestjs.json +201 -128
  422. package/data/signatureHelp/nextjs.json +185 -127
  423. package/data/signatureHelp/react.json +285 -281
  424. package/package.json +1 -1
@@ -1,203 +1,907 @@
1
- {
2
- "language": "crontab",
3
- "completions": [
4
- {
5
- "label": "cron expression",
6
- "kind": 15,
7
- "detail": "Cron schedule",
8
- "documentation": {
9
- "value": "A cron expression: minute hour day-of-month month day-of-week command."
10
- },
11
- "insertText": "${1:0} ${2:*} ${3:*} ${4:*} ${5:*} ${6:command}",
12
- "insertTextRules": 4,
13
- "sortText": "00_expr"
14
- },
15
- {
16
- "label": "every minute",
17
- "kind": 15,
18
- "detail": "Every minute",
19
- "documentation": {
20
- "value": "Run a command every minute."
21
- },
22
- "insertText": "* * * * * ${1:command}",
23
- "insertTextRules": 4,
24
- "sortText": "01_everymin"
25
- },
26
- {
27
- "label": "every 5 minutes",
28
- "kind": 15,
29
- "detail": "Every 5 minutes",
30
- "documentation": {
31
- "value": "Run every 5 minutes."
32
- },
33
- "insertText": "*/5 * * * * ${1:command}",
34
- "insertTextRules": 4,
35
- "sortText": "01_every5"
36
- },
37
- {
38
- "label": "every hour",
39
- "kind": 15,
40
- "detail": "Every hour",
41
- "documentation": {
42
- "value": "Run at the start of every hour."
43
- },
44
- "insertText": "0 * * * * ${1:command}",
45
- "insertTextRules": 4,
46
- "sortText": "01_hourly"
47
- },
48
- {
49
- "label": "daily at midnight",
50
- "kind": 15,
51
- "detail": "Daily at midnight",
52
- "documentation": {
53
- "value": "Run once daily at midnight."
54
- },
55
- "insertText": "0 0 * * * ${1:command}",
56
- "insertTextRules": 4,
57
- "sortText": "01_daily"
58
- },
59
- {
60
- "label": "daily at specific time",
61
- "kind": 15,
62
- "detail": "Daily at time",
63
- "documentation": {
64
- "value": "Run daily at a specific hour and minute."
65
- },
66
- "insertText": "${1:30} ${2:2} * * * ${3:command}",
67
- "insertTextRules": 4,
68
- "sortText": "01_dailytime"
69
- },
70
- {
71
- "label": "weekly (Sunday)",
72
- "kind": 15,
73
- "detail": "Weekly on Sunday",
74
- "documentation": {
75
- "value": "Run once a week on Sunday at midnight."
76
- },
77
- "insertText": "0 0 * * 0 ${1:command}",
78
- "insertTextRules": 4,
79
- "sortText": "02_weekly"
80
- },
81
- {
82
- "label": "monthly",
83
- "kind": 15,
84
- "detail": "Monthly (1st)",
85
- "documentation": {
86
- "value": "Run on the first of every month."
87
- },
88
- "insertText": "0 0 1 * * ${1:command}",
89
- "insertTextRules": 4,
90
- "sortText": "02_monthly"
91
- },
92
- {
93
- "label": "weekdays only",
94
- "kind": 15,
95
- "detail": "Weekdays at 9 AM",
96
- "documentation": {
97
- "value": "Run Monday through Friday at 9 AM."
98
- },
99
- "insertText": "0 9 * * 1-5 ${1:command}",
100
- "insertTextRules": 4,
101
- "sortText": "02_weekdays"
102
- },
103
- {
104
- "label": "with logging",
105
- "kind": 15,
106
- "detail": "Cron with logging",
107
- "documentation": {
108
- "value": "Run a command and log output to a file."
109
- },
110
- "insertText": "${1:0 2 * * *} ${2:command} >> ${3:/var/log/cronjob.log} 2>&1",
111
- "insertTextRules": 4,
112
- "sortText": "03_logging"
113
- },
114
- {
115
- "label": "with lock (flock)",
116
- "kind": 15,
117
- "detail": "Prevent overlap",
118
- "documentation": {
119
- "value": "Use flock to prevent overlapping runs."
120
- },
121
- "insertText": "*/5 * * * * flock -n /tmp/${1:job}.lock ${2:command}",
122
- "insertTextRules": 4,
123
- "sortText": "03_flock"
124
- },
125
- {
126
- "label": "MAILTO",
127
- "kind": 14,
128
- "detail": "Email recipient",
129
- "documentation": {
130
- "value": "Set the email address for cron output."
131
- },
132
- "insertText": "MAILTO=${1:admin@example.com}",
133
- "insertTextRules": 4,
134
- "sortText": "04_mailto"
135
- },
136
- {
137
- "label": "PATH",
138
- "kind": 14,
139
- "detail": "PATH variable",
140
- "documentation": {
141
- "value": "Set the PATH for cron commands."
142
- },
143
- "insertText": "PATH=/usr/local/bin:/usr/bin:/bin",
144
- "insertTextRules": 4,
145
- "sortText": "04_path"
146
- },
147
- {
148
- "label": "SHELL",
149
- "kind": 14,
150
- "detail": "Shell variable",
151
- "documentation": {
152
- "value": "Set the shell for cron commands."
153
- },
154
- "insertText": "SHELL=/bin/bash",
155
- "insertTextRules": 4,
156
- "sortText": "04_shell"
157
- },
158
- {
159
- "label": "@reboot",
160
- "kind": 14,
161
- "detail": "Run on reboot",
162
- "documentation": {
163
- "value": "Run once when the system starts/reboots."
164
- },
165
- "insertText": "@reboot ${1:command}",
166
- "insertTextRules": 4,
167
- "sortText": "05_reboot"
168
- },
169
- {
170
- "label": "@daily",
171
- "kind": 14,
172
- "detail": "Run daily",
173
- "documentation": {
174
- "value": "Run once a day (equivalent to 0 0 * * *)."
175
- },
176
- "insertText": "@daily ${1:command}",
177
- "insertTextRules": 4,
178
- "sortText": "05_daily"
179
- },
180
- {
181
- "label": "@hourly",
182
- "kind": 14,
183
- "detail": "Run hourly",
184
- "documentation": {
185
- "value": "Run once an hour (equivalent to 0 * * * *)."
186
- },
187
- "insertText": "@hourly ${1:command}",
188
- "insertTextRules": 4,
189
- "sortText": "05_hourly"
190
- },
191
- {
192
- "label": "@weekly",
193
- "kind": 14,
194
- "detail": "Run weekly",
195
- "documentation": {
196
- "value": "Run once a week (equivalent to 0 0 * * 0)."
197
- },
198
- "insertText": "@weekly ${1:command}",
199
- "insertTextRules": 4,
200
- "sortText": "05_weekly"
201
- }
202
- ]
1
+ {
2
+ "language": "crontab",
3
+ "completions": [
4
+ {
5
+ "label": "cron expression",
6
+ "kind": 15,
7
+ "detail": "Cron schedule",
8
+ "documentation": {
9
+ "value": "A cron expression: minute hour day-of-month month day-of-week command."
10
+ },
11
+ "insertText": "${1:0} ${2:*} ${3:*} ${4:*} ${5:*} ${6:command}",
12
+ "insertTextRules": 4,
13
+ "sortText": "00_expr"
14
+ },
15
+ {
16
+ "label": "every minute",
17
+ "kind": 15,
18
+ "detail": "Every minute",
19
+ "documentation": {
20
+ "value": "Run a command every minute."
21
+ },
22
+ "insertText": "* * * * * ${1:command}",
23
+ "insertTextRules": 4,
24
+ "sortText": "01_everymin"
25
+ },
26
+ {
27
+ "label": "every 5 minutes",
28
+ "kind": 15,
29
+ "detail": "Every 5 minutes",
30
+ "documentation": {
31
+ "value": "Run every 5 minutes."
32
+ },
33
+ "insertText": "*/5 * * * * ${1:command}",
34
+ "insertTextRules": 4,
35
+ "sortText": "01_every5"
36
+ },
37
+ {
38
+ "label": "every hour",
39
+ "kind": 15,
40
+ "detail": "Every hour",
41
+ "documentation": {
42
+ "value": "Run at the start of every hour."
43
+ },
44
+ "insertText": "0 * * * * ${1:command}",
45
+ "insertTextRules": 4,
46
+ "sortText": "01_hourly"
47
+ },
48
+ {
49
+ "label": "daily at midnight",
50
+ "kind": 15,
51
+ "detail": "Daily at midnight",
52
+ "documentation": {
53
+ "value": "Run once daily at midnight."
54
+ },
55
+ "insertText": "0 0 * * * ${1:command}",
56
+ "insertTextRules": 4,
57
+ "sortText": "01_daily"
58
+ },
59
+ {
60
+ "label": "daily at specific time",
61
+ "kind": 15,
62
+ "detail": "Daily at time",
63
+ "documentation": {
64
+ "value": "Run daily at a specific hour and minute."
65
+ },
66
+ "insertText": "${1:30} ${2:2} * * * ${3:command}",
67
+ "insertTextRules": 4,
68
+ "sortText": "01_dailytime"
69
+ },
70
+ {
71
+ "label": "weekly (Sunday)",
72
+ "kind": 15,
73
+ "detail": "Weekly on Sunday",
74
+ "documentation": {
75
+ "value": "Run once a week on Sunday at midnight."
76
+ },
77
+ "insertText": "0 0 * * 0 ${1:command}",
78
+ "insertTextRules": 4,
79
+ "sortText": "02_weekly"
80
+ },
81
+ {
82
+ "label": "monthly",
83
+ "kind": 15,
84
+ "detail": "Monthly (1st)",
85
+ "documentation": {
86
+ "value": "Run on the first of every month."
87
+ },
88
+ "insertText": "0 0 1 * * ${1:command}",
89
+ "insertTextRules": 4,
90
+ "sortText": "02_monthly"
91
+ },
92
+ {
93
+ "label": "weekdays only",
94
+ "kind": 15,
95
+ "detail": "Weekdays at 9 AM",
96
+ "documentation": {
97
+ "value": "Run Monday through Friday at 9 AM."
98
+ },
99
+ "insertText": "0 9 * * 1-5 ${1:command}",
100
+ "insertTextRules": 4,
101
+ "sortText": "02_weekdays"
102
+ },
103
+ {
104
+ "label": "with logging",
105
+ "kind": 15,
106
+ "detail": "Cron with logging",
107
+ "documentation": {
108
+ "value": "Run a command and log output to a file."
109
+ },
110
+ "insertText": "${1:0 2 * * *} ${2:command} >> ${3:/var/log/cronjob.log} 2>&1",
111
+ "insertTextRules": 4,
112
+ "sortText": "03_logging"
113
+ },
114
+ {
115
+ "label": "with lock (flock)",
116
+ "kind": 15,
117
+ "detail": "Prevent overlap",
118
+ "documentation": {
119
+ "value": "Use flock to prevent overlapping runs."
120
+ },
121
+ "insertText": "*/5 * * * * flock -n /tmp/${1:job}.lock ${2:command}",
122
+ "insertTextRules": 4,
123
+ "sortText": "03_flock"
124
+ },
125
+ {
126
+ "label": "MAILTO",
127
+ "kind": 14,
128
+ "detail": "Email recipient",
129
+ "documentation": {
130
+ "value": "Set the email address for cron output."
131
+ },
132
+ "insertText": "MAILTO=${1:admin@example.com}",
133
+ "insertTextRules": 4,
134
+ "sortText": "04_mailto"
135
+ },
136
+ {
137
+ "label": "PATH",
138
+ "kind": 14,
139
+ "detail": "PATH variable",
140
+ "documentation": {
141
+ "value": "Set the PATH for cron commands."
142
+ },
143
+ "insertText": "PATH=/usr/local/bin:/usr/bin:/bin",
144
+ "insertTextRules": 4,
145
+ "sortText": "04_path"
146
+ },
147
+ {
148
+ "label": "SHELL",
149
+ "kind": 14,
150
+ "detail": "Shell variable",
151
+ "documentation": {
152
+ "value": "Set the shell for cron commands."
153
+ },
154
+ "insertText": "SHELL=/bin/bash",
155
+ "insertTextRules": 4,
156
+ "sortText": "04_shell"
157
+ },
158
+ {
159
+ "label": "@reboot",
160
+ "kind": 14,
161
+ "detail": "Run on reboot",
162
+ "documentation": {
163
+ "value": "Run once when the system starts/reboots."
164
+ },
165
+ "insertText": "@reboot ${1:command}",
166
+ "insertTextRules": 4,
167
+ "sortText": "05_reboot"
168
+ },
169
+ {
170
+ "label": "@daily",
171
+ "kind": 14,
172
+ "detail": "Run daily",
173
+ "documentation": {
174
+ "value": "Run once a day (equivalent to 0 0 * * *)."
175
+ },
176
+ "insertText": "@daily ${1:command}",
177
+ "insertTextRules": 4,
178
+ "sortText": "05_daily"
179
+ },
180
+ {
181
+ "label": "@hourly",
182
+ "kind": 14,
183
+ "detail": "Run hourly",
184
+ "documentation": {
185
+ "value": "Run once an hour (equivalent to 0 * * * *)."
186
+ },
187
+ "insertText": "@hourly ${1:command}",
188
+ "insertTextRules": 4,
189
+ "sortText": "05_hourly"
190
+ },
191
+ {
192
+ "label": "@weekly",
193
+ "kind": 14,
194
+ "detail": "Run weekly",
195
+ "documentation": {
196
+ "value": "Run once a week (equivalent to 0 0 * * 0)."
197
+ },
198
+ "insertText": "@weekly ${1:command}",
199
+ "insertTextRules": 4,
200
+ "sortText": "05_weekly"
201
+ },
202
+ {
203
+ "label": "every 10 minutes",
204
+ "kind": 28,
205
+ "detail": "Every 10 min",
206
+ "documentation": {
207
+ "value": "Run every 10 minutes."
208
+ },
209
+ "insertText": "*/10 * * * * ${1:command}",
210
+ "insertTextRules": 4,
211
+ "sortText": "01_sched"
212
+ },
213
+ {
214
+ "label": "every 15 minutes",
215
+ "kind": 28,
216
+ "detail": "Every 15 min",
217
+ "documentation": {
218
+ "value": "Run every 15 minutes."
219
+ },
220
+ "insertText": "*/15 * * * * ${1:command}",
221
+ "insertTextRules": 4,
222
+ "sortText": "01_sched"
223
+ },
224
+ {
225
+ "label": "every 30 minutes",
226
+ "kind": 28,
227
+ "detail": "Every 30 min",
228
+ "documentation": {
229
+ "value": "Run every 30 minutes."
230
+ },
231
+ "insertText": "*/30 * * * * ${1:command}",
232
+ "insertTextRules": 4,
233
+ "sortText": "01_sched"
234
+ },
235
+ {
236
+ "label": "every 2 hours",
237
+ "kind": 28,
238
+ "detail": "Every 2 hours",
239
+ "documentation": {
240
+ "value": "Run every 2 hours."
241
+ },
242
+ "insertText": "0 */2 * * * ${1:command}",
243
+ "insertTextRules": 4,
244
+ "sortText": "01_sched"
245
+ },
246
+ {
247
+ "label": "every 6 hours",
248
+ "kind": 28,
249
+ "detail": "Every 6 hours",
250
+ "documentation": {
251
+ "value": "Run every 6 hours."
252
+ },
253
+ "insertText": "0 */6 * * * ${1:command}",
254
+ "insertTextRules": 4,
255
+ "sortText": "01_sched"
256
+ },
257
+ {
258
+ "label": "every 12 hours",
259
+ "kind": 28,
260
+ "detail": "Twice daily",
261
+ "documentation": {
262
+ "value": "Run every 12 hours."
263
+ },
264
+ "insertText": "0 0,12 * * * ${1:command}",
265
+ "insertTextRules": 4,
266
+ "sortText": "01_sched"
267
+ },
268
+ {
269
+ "label": "twice daily",
270
+ "kind": 28,
271
+ "detail": "At 8am and 8pm",
272
+ "documentation": {
273
+ "value": "Run at 8am and 8pm."
274
+ },
275
+ "insertText": "0 8,20 * * * ${1:command}",
276
+ "insertTextRules": 4,
277
+ "sortText": "01_sched"
278
+ },
279
+ {
280
+ "label": "workdays at 6am",
281
+ "kind": 28,
282
+ "detail": "Workdays 6am",
283
+ "documentation": {
284
+ "value": "Weekdays at 6:00 AM."
285
+ },
286
+ "insertText": "0 6 * * 1-5 ${1:command}",
287
+ "insertTextRules": 4,
288
+ "sortText": "02_work"
289
+ },
290
+ {
291
+ "label": "workdays at noon",
292
+ "kind": 28,
293
+ "detail": "Workdays noon",
294
+ "documentation": {
295
+ "value": "Weekdays at noon."
296
+ },
297
+ "insertText": "0 12 * * 1-5 ${1:command}",
298
+ "insertTextRules": 4,
299
+ "sortText": "02_work"
300
+ },
301
+ {
302
+ "label": "weekends",
303
+ "kind": 28,
304
+ "detail": "Weekends only",
305
+ "documentation": {
306
+ "value": "Saturday and Sunday."
307
+ },
308
+ "insertText": "0 ${1:0} * * 6,0 ${2:command}",
309
+ "insertTextRules": 4,
310
+ "sortText": "02_work"
311
+ },
312
+ {
313
+ "label": "first day quarter",
314
+ "kind": 28,
315
+ "detail": "Quarterly",
316
+ "documentation": {
317
+ "value": "First day of each quarter."
318
+ },
319
+ "insertText": "0 0 1 1,4,7,10 * ${1:command}",
320
+ "insertTextRules": 4,
321
+ "sortText": "02_period"
322
+ },
323
+ {
324
+ "label": "yearly",
325
+ "kind": 28,
326
+ "detail": "Yearly",
327
+ "documentation": {
328
+ "value": "Once a year January 1st."
329
+ },
330
+ "insertText": "0 0 1 1 * ${1:command}",
331
+ "insertTextRules": 4,
332
+ "sortText": "02_period"
333
+ },
334
+ {
335
+ "label": "last day of month",
336
+ "kind": 28,
337
+ "detail": "Last day",
338
+ "documentation": {
339
+ "value": "Approximate last day of month."
340
+ },
341
+ "insertText": "0 0 28-31 * * [ $(date -d tomorrow +%d) -eq 01 ] && ${1:command}",
342
+ "insertTextRules": 4,
343
+ "sortText": "02_period"
344
+ },
345
+ {
346
+ "label": "15th and last",
347
+ "kind": 28,
348
+ "detail": "Bi-monthly",
349
+ "documentation": {
350
+ "value": "15th and last day of month."
351
+ },
352
+ "insertText": "0 0 15,28-31 * * ${1:command}",
353
+ "insertTextRules": 4,
354
+ "sortText": "02_period"
355
+ },
356
+ {
357
+ "label": "every N days",
358
+ "kind": 28,
359
+ "detail": "Every N days",
360
+ "documentation": {
361
+ "value": "Run every N days."
362
+ },
363
+ "insertText": "0 0 */${1:3} * * ${2:command}",
364
+ "insertTextRules": 4,
365
+ "sortText": "01_sched"
366
+ },
367
+ {
368
+ "label": "business hours",
369
+ "kind": 28,
370
+ "detail": "Business hours",
371
+ "documentation": {
372
+ "value": "Every 30 min during business hours."
373
+ },
374
+ "insertText": "*/30 9-17 * * 1-5 ${1:command}",
375
+ "insertTextRules": 4,
376
+ "sortText": "02_work"
377
+ },
378
+ {
379
+ "label": "suppress output",
380
+ "kind": 28,
381
+ "detail": "No output",
382
+ "documentation": {
383
+ "value": "Suppress all output."
384
+ },
385
+ "insertText": "${1:0 * * * *} ${2:command} > /dev/null 2>&1",
386
+ "insertTextRules": 4,
387
+ "sortText": "03_opt"
388
+ },
389
+ {
390
+ "label": "error only",
391
+ "kind": 28,
392
+ "detail": "Errors only",
393
+ "documentation": {
394
+ "value": "Only capture error output."
395
+ },
396
+ "insertText": "${1:0 * * * *} ${2:command} > /dev/null",
397
+ "insertTextRules": 4,
398
+ "sortText": "03_opt"
399
+ },
400
+ {
401
+ "label": "with timestamp",
402
+ "kind": 28,
403
+ "detail": "Timestamped log",
404
+ "documentation": {
405
+ "value": "Log with timestamp."
406
+ },
407
+ "insertText": "${1:*/5 * * * *} echo \"$(date): running\" >> ${2:/var/log/cron.log} && ${3:command} >> ${2:/var/log/cron.log} 2>&1",
408
+ "insertTextRules": 4,
409
+ "sortText": "03_opt"
410
+ },
411
+ {
412
+ "label": "with timeout",
413
+ "kind": 28,
414
+ "detail": "With timeout",
415
+ "documentation": {
416
+ "value": "Run with timeout."
417
+ },
418
+ "insertText": "${1:*/5 * * * *} timeout ${2:300} ${3:command}",
419
+ "insertTextRules": 4,
420
+ "sortText": "03_opt"
421
+ },
422
+ {
423
+ "label": "with nice",
424
+ "kind": 28,
425
+ "detail": "Low priority",
426
+ "documentation": {
427
+ "value": "Run with low CPU priority."
428
+ },
429
+ "insertText": "${1:0 2 * * *} nice -n 19 ${2:command}",
430
+ "insertTextRules": 4,
431
+ "sortText": "03_opt"
432
+ },
433
+ {
434
+ "label": "with ionice",
435
+ "kind": 28,
436
+ "detail": "Low IO priority",
437
+ "documentation": {
438
+ "value": "Run with low IO priority."
439
+ },
440
+ "insertText": "${1:0 2 * * *} ionice -c3 ${2:command}",
441
+ "insertTextRules": 4,
442
+ "sortText": "03_opt"
443
+ },
444
+ {
445
+ "label": "conditional",
446
+ "kind": 28,
447
+ "detail": "With condition",
448
+ "documentation": {
449
+ "value": "Run only if condition met."
450
+ },
451
+ "insertText": "${1:*/5 * * * *} [ -f ${2:/tmp/flag} ] && ${3:command}",
452
+ "insertTextRules": 4,
453
+ "sortText": "03_opt"
454
+ },
455
+ {
456
+ "label": "@monthly",
457
+ "kind": 28,
458
+ "detail": "Run monthly",
459
+ "documentation": {
460
+ "value": "Shorthand for monthly."
461
+ },
462
+ "insertText": "@monthly ${1:command}",
463
+ "insertTextRules": 4,
464
+ "sortText": "05_special"
465
+ },
466
+ {
467
+ "label": "@yearly",
468
+ "kind": 28,
469
+ "detail": "Run yearly",
470
+ "documentation": {
471
+ "value": "Shorthand for yearly."
472
+ },
473
+ "insertText": "@yearly ${1:command}",
474
+ "insertTextRules": 4,
475
+ "sortText": "05_special"
476
+ },
477
+ {
478
+ "label": "@annually",
479
+ "kind": 28,
480
+ "detail": "Run annually",
481
+ "documentation": {
482
+ "value": "Alias for @yearly."
483
+ },
484
+ "insertText": "@annually ${1:command}",
485
+ "insertTextRules": 4,
486
+ "sortText": "05_special"
487
+ },
488
+ {
489
+ "label": "HOME",
490
+ "kind": 28,
491
+ "detail": "HOME variable",
492
+ "documentation": {
493
+ "value": "Set HOME directory."
494
+ },
495
+ "insertText": "HOME=${1:/home/user}",
496
+ "insertTextRules": 4,
497
+ "sortText": "04_env"
498
+ },
499
+ {
500
+ "label": "LOGNAME",
501
+ "kind": 28,
502
+ "detail": "LOGNAME",
503
+ "documentation": {
504
+ "value": "Set log name."
505
+ },
506
+ "insertText": "LOGNAME=${1:user}",
507
+ "insertTextRules": 4,
508
+ "sortText": "04_env"
509
+ },
510
+ {
511
+ "label": "CRON_TZ",
512
+ "kind": 28,
513
+ "detail": "Timezone",
514
+ "documentation": {
515
+ "value": "Set cron timezone."
516
+ },
517
+ "insertText": "CRON_TZ=${1:America/New_York}",
518
+ "insertTextRules": 4,
519
+ "sortText": "04_env"
520
+ },
521
+ {
522
+ "label": "backup database",
523
+ "kind": 28,
524
+ "detail": "DB backup",
525
+ "documentation": {
526
+ "value": "Database backup cron."
527
+ },
528
+ "insertText": "0 2 * * * pg_dump -U ${1:user} ${2:dbname} | gzip > ${3:/backups/db}-$(date +\\%Y\\%m\\%d).sql.gz",
529
+ "insertTextRules": 4,
530
+ "sortText": "06_task"
531
+ },
532
+ {
533
+ "label": "rotate logs",
534
+ "kind": 28,
535
+ "detail": "Log rotation",
536
+ "documentation": {
537
+ "value": "Rotate log files."
538
+ },
539
+ "insertText": "0 0 * * * find ${1:/var/log/app} -name \"*.log\" -mtime +${2:30} -delete",
540
+ "insertTextRules": 4,
541
+ "sortText": "06_task"
542
+ },
543
+ {
544
+ "label": "cleanup tmp",
545
+ "kind": 28,
546
+ "detail": "Cleanup temp",
547
+ "documentation": {
548
+ "value": "Clean temp files."
549
+ },
550
+ "insertText": "0 3 * * * find ${1:/tmp} -type f -mtime +${2:7} -delete",
551
+ "insertTextRules": 4,
552
+ "sortText": "06_task"
553
+ },
554
+ {
555
+ "label": "SSL cert renew",
556
+ "kind": 28,
557
+ "detail": "Certbot renew",
558
+ "documentation": {
559
+ "value": "Renew SSL certificates."
560
+ },
561
+ "insertText": "0 3 * * 1 certbot renew --quiet && systemctl reload nginx",
562
+ "insertTextRules": 4,
563
+ "sortText": "06_task"
564
+ },
565
+ {
566
+ "label": "health check",
567
+ "kind": 28,
568
+ "detail": "Health check",
569
+ "documentation": {
570
+ "value": "Periodic health check."
571
+ },
572
+ "insertText": "*/5 * * * * curl -sf ${1:http://localhost:3000/health} || echo \"Service down\" | mail -s \"Alert\" ${2:admin@example.com}",
573
+ "insertTextRules": 4,
574
+ "sortText": "06_task"
575
+ },
576
+ {
577
+ "label": "git pull",
578
+ "kind": 28,
579
+ "detail": "Git pull deploy",
580
+ "documentation": {
581
+ "value": "Auto pull latest code."
582
+ },
583
+ "insertText": "*/10 * * * * cd ${1:/opt/app} && git pull origin ${2:main} && ${3:npm run build}",
584
+ "insertTextRules": 4,
585
+ "sortText": "06_task"
586
+ },
587
+ {
588
+ "label": "sync files",
589
+ "kind": 28,
590
+ "detail": "Rsync backup",
591
+ "documentation": {
592
+ "value": "Rsync file synchronization."
593
+ },
594
+ "insertText": "0 1 * * * rsync -avz ${1:/data/} ${2:user@backup:/backups/data/}",
595
+ "insertTextRules": 4,
596
+ "sortText": "06_task"
597
+ },
598
+ {
599
+ "label": "docker prune",
600
+ "kind": 28,
601
+ "detail": "Docker cleanup",
602
+ "documentation": {
603
+ "value": "Docker system cleanup."
604
+ },
605
+ "insertText": "0 4 * * 0 docker system prune -af --volumes",
606
+ "insertTextRules": 4,
607
+ "sortText": "06_task"
608
+ },
609
+ {
610
+ "label": "send report",
611
+ "kind": 28,
612
+ "detail": "Daily report",
613
+ "documentation": {
614
+ "value": "Send daily report email."
615
+ },
616
+ "insertText": "0 8 * * * ${1:/opt/scripts/report.sh} | mail -s \"${2:Daily Report}\" ${3:team@example.com}",
617
+ "insertTextRules": 4,
618
+ "sortText": "06_task"
619
+ },
620
+ {
621
+ "label": "disk check",
622
+ "kind": 28,
623
+ "detail": "Disk space check",
624
+ "documentation": {
625
+ "value": "Check disk space."
626
+ },
627
+ "insertText": "0 */4 * * * df -h / | awk 'NR==2 && $5+0 > 80 { print \"Disk usage:\", $5 }' | mail -s \"Disk Alert\" ${1:admin@example.com}",
628
+ "insertTextRules": 4,
629
+ "sortText": "06_task"
630
+ },
631
+ {
632
+ "label": "pip output",
633
+ "kind": 28,
634
+ "detail": "Pipe to mail",
635
+ "documentation": {
636
+ "value": "Pipe output to mail."
637
+ },
638
+ "insertText": "${1:0 6 * * *} ${2:command} 2>&1 | mail -s \"${3:Cron output}\" ${4:user@example.com}",
639
+ "insertTextRules": 4,
640
+ "sortText": "03_opt"
641
+ },
642
+ {
643
+ "label": "multiple commands",
644
+ "kind": 28,
645
+ "detail": "Run multiple",
646
+ "documentation": {
647
+ "value": "Multiple commands."
648
+ },
649
+ "insertText": "${1:0 2 * * *} ${2:command1} && ${3:command2} && ${4:command3}",
650
+ "insertTextRules": 4,
651
+ "sortText": "03_opt"
652
+ },
653
+ {
654
+ "label": "random delay",
655
+ "kind": 28,
656
+ "detail": "Random delay",
657
+ "documentation": {
658
+ "value": "Add random delay to avoid thundering herd."
659
+ },
660
+ "insertText": "${1:*/5 * * * *} sleep $((RANDOM \\% ${2:60})) && ${3:command}",
661
+ "insertTextRules": 4,
662
+ "sortText": "03_opt"
663
+ },
664
+ {
665
+ "label": "cron header",
666
+ "kind": 28,
667
+ "detail": "Section header",
668
+ "documentation": {
669
+ "value": "Comment section header."
670
+ },
671
+ "insertText": "# ============================================\n# ${1:Section Name}\n# Schedule: ${2:description}\n# ============================================",
672
+ "insertTextRules": 4,
673
+ "sortText": "00_header"
674
+ },
675
+ {
676
+ "label": "# field reference",
677
+ "kind": 28,
678
+ "detail": "Field reference",
679
+ "documentation": {
680
+ "value": "Cron field reference comment."
681
+ },
682
+ "insertText": "# .---------------- minute (0-59)\n# | .------------- hour (0-23)\n# | | .---------- day of month (1-31)\n# | | | .------- month (1-12)\n# | | | | .---- day of week (0-7, Sun=0/7)\n# | | | | |\n# * * * * * command",
683
+ "insertTextRules": 4,
684
+ "sortText": "00_header"
685
+ },
686
+ {
687
+ "label": "full crontab",
688
+ "kind": 28,
689
+ "detail": "Complete crontab",
690
+ "documentation": {
691
+ "value": "Full crontab template."
692
+ },
693
+ "insertText": "# Environment\nSHELL=/bin/bash\nPATH=/usr/local/bin:/usr/bin:/bin\nMAILTO=${1:admin@example.com}\n\n# Schedules\n*/5 * * * * ${2:/opt/scripts/health.sh} > /dev/null 2>&1\n0 2 * * * ${3:/opt/scripts/backup.sh} >> /var/log/backup.log 2>&1\n0 0 * * 0 ${4:/opt/scripts/weekly.sh}",
694
+ "insertTextRules": 4,
695
+ "sortText": "07_tpl"
696
+ },
697
+ {
698
+ "label": "at midnight",
699
+ "kind": 28,
700
+ "detail": "Daily midnight",
701
+ "documentation": {
702
+ "value": "Run daily at midnight."
703
+ },
704
+ "insertText": "0 0 * * * ${1:command}",
705
+ "insertTextRules": 4,
706
+ "sortText": "01_sched"
707
+ },
708
+ {
709
+ "label": "at 3am",
710
+ "kind": 28,
711
+ "detail": "Daily 3 AM",
712
+ "documentation": {
713
+ "value": "Run daily at 3:00 AM."
714
+ },
715
+ "insertText": "0 3 * * * ${1:command}",
716
+ "insertTextRules": 4,
717
+ "sortText": "01_sched"
718
+ },
719
+ {
720
+ "label": "at 6am",
721
+ "kind": 28,
722
+ "detail": "Daily 6 AM",
723
+ "documentation": {
724
+ "value": "Run daily at 6:00 AM."
725
+ },
726
+ "insertText": "0 6 * * * ${1:command}",
727
+ "insertTextRules": 4,
728
+ "sortText": "01_sched"
729
+ },
730
+ {
731
+ "label": "at 9pm",
732
+ "kind": 28,
733
+ "detail": "Daily 9 PM",
734
+ "documentation": {
735
+ "value": "Run at 9:00 PM."
736
+ },
737
+ "insertText": "0 21 * * * ${1:command}",
738
+ "insertTextRules": 4,
739
+ "sortText": "01_sched"
740
+ },
741
+ {
742
+ "label": "monday 5am",
743
+ "kind": 28,
744
+ "detail": "Monday 5 AM",
745
+ "documentation": {
746
+ "value": "Every Monday at 5:00 AM."
747
+ },
748
+ "insertText": "0 5 * * 1 ${1:command}",
749
+ "insertTextRules": 4,
750
+ "sortText": "02_work"
751
+ },
752
+ {
753
+ "label": "friday evening",
754
+ "kind": 28,
755
+ "detail": "Friday 6 PM",
756
+ "documentation": {
757
+ "value": "Every Friday at 6:00 PM."
758
+ },
759
+ "insertText": "0 18 * * 5 ${1:command}",
760
+ "insertTextRules": 4,
761
+ "sortText": "02_work"
762
+ },
763
+ {
764
+ "label": "first monday",
765
+ "kind": 28,
766
+ "detail": "First Monday",
767
+ "documentation": {
768
+ "value": "First Monday of month."
769
+ },
770
+ "insertText": "0 0 1-7 * 1 ${1:command}",
771
+ "insertTextRules": 4,
772
+ "sortText": "02_period"
773
+ },
774
+ {
775
+ "label": "biweekly",
776
+ "kind": 28,
777
+ "detail": "Biweekly",
778
+ "documentation": {
779
+ "value": "Every two weeks."
780
+ },
781
+ "insertText": "0 0 1,15 * * ${1:command}",
782
+ "insertTextRules": 4,
783
+ "sortText": "02_period"
784
+ },
785
+ {
786
+ "label": "PATH",
787
+ "kind": 28,
788
+ "detail": "PATH variable",
789
+ "documentation": {
790
+ "value": "Set PATH for cron."
791
+ },
792
+ "insertText": "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
793
+ "insertTextRules": 4,
794
+ "sortText": "04_env"
795
+ },
796
+ {
797
+ "label": "SHELL",
798
+ "kind": 28,
799
+ "detail": "SHELL variable",
800
+ "documentation": {
801
+ "value": "Set shell for cron."
802
+ },
803
+ "insertText": "SHELL=/bin/bash",
804
+ "insertTextRules": 4,
805
+ "sortText": "04_env"
806
+ },
807
+ {
808
+ "label": "MAILTO",
809
+ "kind": 28,
810
+ "detail": "MAILTO variable",
811
+ "documentation": {
812
+ "value": "Set email recipient."
813
+ },
814
+ "insertText": "MAILTO=${1:admin@example.com}",
815
+ "insertTextRules": 4,
816
+ "sortText": "04_env"
817
+ },
818
+ {
819
+ "label": "monitor memory",
820
+ "kind": 28,
821
+ "detail": "Memory monitor",
822
+ "documentation": {
823
+ "value": "Check memory usage."
824
+ },
825
+ "insertText": "*/15 * * * * free -m | awk 'NR==2{if($3/$2*100>${1:80})print \"Memory:\",$3/$2*100\"%\"}' | mail -s \"Memory Alert\" ${2:admin@example.com}",
826
+ "insertTextRules": 4,
827
+ "sortText": "06_task"
828
+ },
829
+ {
830
+ "label": "compress logs",
831
+ "kind": 28,
832
+ "detail": "Compress logs",
833
+ "documentation": {
834
+ "value": "Compress old log files."
835
+ },
836
+ "insertText": "0 1 * * * find ${1:/var/log} -name \"*.log\" -mtime +${2:1} ! -name \"*.gz\" -exec gzip {} \\;",
837
+ "insertTextRules": 4,
838
+ "sortText": "06_task"
839
+ },
840
+ {
841
+ "label": "truncate log",
842
+ "kind": 28,
843
+ "detail": "Truncate log",
844
+ "documentation": {
845
+ "value": "Truncate large log files."
846
+ },
847
+ "insertText": "0 4 * * * for f in ${1:/var/log/app}/*.log; do [ $(stat -f%z \"$$f\" 2>/dev/null || stat -c%s \"$$f\") -gt ${2:104857600} ] && : > \"$$f\"; done",
848
+ "insertTextRules": 4,
849
+ "sortText": "06_task"
850
+ },
851
+ {
852
+ "label": "mysql backup",
853
+ "kind": 28,
854
+ "detail": "MySQL backup",
855
+ "documentation": {
856
+ "value": "MySQL dump backup."
857
+ },
858
+ "insertText": "0 2 * * * mysqldump -u ${1:root} -p${2:password} ${3:dbname} | gzip > ${4:/backups}/mysql-$(date +\\%Y\\%m\\%d).sql.gz",
859
+ "insertTextRules": 4,
860
+ "sortText": "06_task"
861
+ },
862
+ {
863
+ "label": "redis backup",
864
+ "kind": 28,
865
+ "detail": "Redis backup",
866
+ "documentation": {
867
+ "value": "Redis RDB backup."
868
+ },
869
+ "insertText": "0 3 * * * redis-cli BGSAVE && cp ${1:/var/lib/redis/dump.rdb} ${2:/backups}/redis-$(date +\\%Y\\%m\\%d).rdb",
870
+ "insertTextRules": 4,
871
+ "sortText": "06_task"
872
+ },
873
+ {
874
+ "label": "container restart",
875
+ "kind": 28,
876
+ "detail": "Restart container",
877
+ "documentation": {
878
+ "value": "Restart Docker container."
879
+ },
880
+ "insertText": "0 4 * * 0 docker restart ${1:container_name}",
881
+ "insertTextRules": 4,
882
+ "sortText": "06_task"
883
+ },
884
+ {
885
+ "label": "apt update",
886
+ "kind": 28,
887
+ "detail": "Apt update",
888
+ "documentation": {
889
+ "value": "Auto update packages."
890
+ },
891
+ "insertText": "0 3 * * 0 apt-get update && apt-get upgrade -y >> /var/log/apt-auto.log 2>&1",
892
+ "insertTextRules": 4,
893
+ "sortText": "06_task"
894
+ },
895
+ {
896
+ "label": "with lock",
897
+ "kind": 28,
898
+ "detail": "With flock",
899
+ "documentation": {
900
+ "value": "Prevent overlapping runs."
901
+ },
902
+ "insertText": "${1:*/5 * * * *} flock -n ${2:/tmp/myjob.lock} ${3:command}",
903
+ "insertTextRules": 4,
904
+ "sortText": "03_opt"
905
+ }
906
+ ]
203
907
  }