@enjoys/context-engine 1.3.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 (593) hide show
  1. package/data/codeActions/angular.json +126 -0
  2. package/data/codeActions/nestjs.json +124 -0
  3. package/data/codeActions/nextjs.json +198 -0
  4. package/data/codeActions/react.json +154 -0
  5. package/data/codeActions/shadcn.json +112 -0
  6. package/data/codeActions/shell.json +169 -26
  7. package/data/codeLens/angular.json +22 -0
  8. package/data/codeLens/awk.json +1 -1
  9. package/data/codeLens/azcli.json +10 -10
  10. package/data/codeLens/c.json +1 -1
  11. package/data/codeLens/caddy.json +1 -1
  12. package/data/codeLens/crontab.json +1 -1
  13. package/data/codeLens/doctest.json +10 -10
  14. package/data/codeLens/hcl.json +1 -1
  15. package/data/codeLens/html.json +1 -1
  16. package/data/codeLens/lua.json +1 -1
  17. package/data/codeLens/nestjs.json +21 -0
  18. package/data/codeLens/nextjs.json +117 -0
  19. package/data/codeLens/nginx.json +1 -1
  20. package/data/codeLens/pla.json +10 -10
  21. package/data/codeLens/react.json +89 -0
  22. package/data/codeLens/shadcn.json +89 -0
  23. package/data/codeLens/shell.json +59 -17
  24. package/data/codeLens/tailwindcss.json +56 -0
  25. package/data/codeLens/xml.json +1 -1
  26. package/data/color/angular.json +21 -0
  27. package/data/color/nestjs.json +18 -0
  28. package/data/color/nextjs.json +22 -0
  29. package/data/color/react.json +93 -0
  30. package/data/color/shadcn.json +66 -0
  31. package/data/color/shell.json +106 -80
  32. package/data/commands/angular.json +670 -0
  33. package/data/commands/c.json +30 -30
  34. package/data/commands/cpp.json +30 -30
  35. package/data/commands/crontab.json +25 -30
  36. package/data/commands/cypher.json +26 -30
  37. package/data/commands/dockerfile.json +26 -2
  38. package/data/commands/doctest.json +23 -24
  39. package/data/commands/dotenv.json +24 -11
  40. package/data/commands/ecl.json +26 -30
  41. package/data/commands/flow9.json +24 -24
  42. package/data/commands/freemarker2.json +24 -18
  43. package/data/commands/graphql.json +25 -11
  44. package/data/commands/html.json +25 -11
  45. package/data/commands/ini.json +26 -12
  46. package/data/commands/javascript.json +29 -30
  47. package/data/commands/less.json +25 -29
  48. package/data/commands/lexon.json +23 -11
  49. package/data/commands/liquid.json +26 -11
  50. package/data/commands/m3.json +26 -12
  51. package/data/commands/manifest.json +35 -726
  52. package/data/commands/markdown.json +26 -12
  53. package/data/commands/mdx.json +23 -10
  54. package/data/commands/mips.json +26 -18
  55. package/data/commands/msdax.json +23 -11
  56. package/data/commands/nestjs.json +516 -0
  57. package/data/commands/nextjs.json +250 -0
  58. package/data/commands/objective-c.json +26 -24
  59. package/data/commands/pascal.json +27 -24
  60. package/data/commands/pascaligo.json +26 -24
  61. package/data/commands/perl.json +30 -30
  62. package/data/commands/pla.json +23 -11
  63. package/data/commands/postiats.json +26 -24
  64. package/data/commands/powerquery.json +23 -11
  65. package/data/commands/powershell.json +28 -30
  66. package/data/commands/protobuf.json +27 -30
  67. package/data/commands/qsharp.json +26 -30
  68. package/data/commands/razor.json +25 -29
  69. package/data/commands/react.json +244 -0
  70. package/data/commands/redshift.json +27 -18
  71. package/data/commands/restructuredtext.json +29 -30
  72. package/data/commands/sb.json +23 -11
  73. package/data/commands/scheme.json +25 -18
  74. package/data/commands/scss.json +26 -29
  75. package/data/commands/shadcn.json +564 -0
  76. package/data/commands/shell.json +571 -41
  77. package/data/commands/sol.json +27 -30
  78. package/data/commands/sparql.json +25 -11
  79. package/data/commands/sql.json +16 -2
  80. package/data/commands/ssh_config.json +31 -30
  81. package/data/commands/st.json +23 -11
  82. package/data/commands/systemverilog.json +26 -24
  83. package/data/commands/tailwindcss.json +60 -53
  84. package/data/commands/tcl.json +23 -18
  85. package/data/commands/toml.json +25 -11
  86. package/data/commands/twig.json +23 -10
  87. package/data/commands/vb.json +27 -24
  88. package/data/commands/wgsl.json +24 -11
  89. package/data/commands/yaml.json +29 -30
  90. package/data/completion/angular.json +1490 -0
  91. package/data/completion/awk.json +906 -202
  92. package/data/completion/azcli.json +886 -237
  93. package/data/completion/bicep.json +862 -367
  94. package/data/completion/crontab.json +906 -202
  95. package/data/completion/css.json +793 -0
  96. package/data/completion/dotenv.json +895 -169
  97. package/data/completion/graphql.json +895 -180
  98. package/data/completion/hcl.json +906 -191
  99. package/data/completion/ini.json +906 -136
  100. package/data/completion/json.json +895 -169
  101. package/data/completion/lexon.json +856 -295
  102. package/data/completion/makefile.json +906 -202
  103. package/data/completion/markdown.json +906 -224
  104. package/data/completion/mdx.json +895 -87
  105. package/data/completion/mips.json +872 -377
  106. package/data/completion/nestjs.json +1454 -0
  107. package/data/completion/nextjs.json +1373 -0
  108. package/data/completion/perl.json +961 -202
  109. package/data/completion/pla.json +895 -154
  110. package/data/completion/powershell.json +906 -224
  111. package/data/completion/protobuf.json +884 -180
  112. package/data/completion/react.json +1319 -0
  113. package/data/completion/shadcn.json +1202 -0
  114. package/data/completion/shell.json +2446 -510
  115. package/data/completion/ssh_config.json +906 -158
  116. package/data/completion/xml.json +906 -158
  117. package/data/declaration/angular.json +46 -0
  118. package/data/declaration/nestjs.json +47 -0
  119. package/data/declaration/nextjs.json +274 -0
  120. package/data/declaration/react.json +199 -0
  121. package/data/declaration/shadcn.json +211 -0
  122. package/data/declaration/shell.json +343 -24
  123. package/data/declaration/tailwindcss.json +72 -0
  124. package/data/definition/abap.json +127 -1
  125. package/data/definition/angular.json +670 -0
  126. package/data/definition/apex.json +97 -1
  127. package/data/definition/coffee.json +51 -1
  128. package/data/definition/dart.json +105 -1
  129. package/data/definition/elixir.json +115 -1
  130. package/data/definition/flow9.json +208 -1
  131. package/data/definition/freemarker2.json +283 -1
  132. package/data/definition/html.json +853 -558
  133. package/data/definition/java.json +1127 -183
  134. package/data/definition/kotlin.json +72 -1
  135. package/data/definition/nestjs.json +684 -0
  136. package/data/definition/nextjs.json +439 -0
  137. package/data/definition/r.json +692 -83
  138. package/data/definition/react.json +397 -0
  139. package/data/definition/ruby.json +789 -669
  140. package/data/definition/rust.json +852 -206
  141. package/data/definition/sb.json +339 -1
  142. package/data/definition/shadcn.json +99 -0
  143. package/data/definition/shell.json +820 -0
  144. package/data/definition/st.json +367 -1
  145. package/data/documentHighlight/angular.json +414 -0
  146. package/data/documentHighlight/css.json +77 -2
  147. package/data/documentHighlight/nestjs.json +115 -0
  148. package/data/documentHighlight/nextjs.json +212 -0
  149. package/data/documentHighlight/react.json +119 -0
  150. package/data/documentHighlight/shadcn.json +168 -0
  151. package/data/documentHighlight/shell.json +664 -334
  152. package/data/documentHighlight/tailwindcss.json +105 -10
  153. package/data/documentRangeFormatting/angular.json +45 -0
  154. package/data/documentRangeFormatting/nestjs.json +57 -0
  155. package/data/documentRangeFormatting/nextjs.json +57 -0
  156. package/data/documentRangeFormatting/react.json +82 -0
  157. package/data/documentRangeFormatting/shadcn.json +45 -0
  158. package/data/documentRangeFormatting/shell.json +120 -53
  159. package/data/documentSymbol/abap.json +54 -12
  160. package/data/documentSymbol/angular.json +180 -0
  161. package/data/documentSymbol/apex.json +40 -10
  162. package/data/documentSymbol/awk.json +15 -1
  163. package/data/documentSymbol/bicep.json +39 -39
  164. package/data/documentSymbol/c.json +1 -1
  165. package/data/documentSymbol/clojure.json +46 -46
  166. package/data/documentSymbol/css.json +96 -96
  167. package/data/documentSymbol/dart.json +109 -19
  168. package/data/documentSymbol/dockerfile.json +1 -1
  169. package/data/documentSymbol/elixir.json +39 -39
  170. package/data/documentSymbol/go.json +1 -1
  171. package/data/documentSymbol/graphql.json +1 -1
  172. package/data/documentSymbol/hcl.json +1 -1
  173. package/data/documentSymbol/html.json +29 -1
  174. package/data/documentSymbol/java.json +1 -1
  175. package/data/documentSymbol/javascript.json +1 -1
  176. package/data/documentSymbol/julia.json +46 -46
  177. package/data/documentSymbol/kotlin.json +74 -14
  178. package/data/documentSymbol/less.json +25 -25
  179. package/data/documentSymbol/lua.json +22 -1
  180. package/data/documentSymbol/makefile.json +15 -1
  181. package/data/documentSymbol/markdown.json +36 -1
  182. package/data/documentSymbol/mysql.json +32 -32
  183. package/data/documentSymbol/nestjs.json +152 -0
  184. package/data/documentSymbol/nextjs.json +159 -0
  185. package/data/documentSymbol/nginx.json +1 -1
  186. package/data/documentSymbol/pascal.json +46 -46
  187. package/data/documentSymbol/perl.json +1 -1
  188. package/data/documentSymbol/pgsql.json +39 -39
  189. package/data/documentSymbol/php.json +1 -1
  190. package/data/documentSymbol/powershell.json +1 -1
  191. package/data/documentSymbol/protobuf.json +1 -1
  192. package/data/documentSymbol/python.json +1 -1
  193. package/data/documentSymbol/r.json +67 -67
  194. package/data/documentSymbol/react.json +145 -0
  195. package/data/documentSymbol/redshift.json +60 -18
  196. package/data/documentSymbol/ruby.json +1 -1
  197. package/data/documentSymbol/rust.json +1 -1
  198. package/data/documentSymbol/scala.json +116 -20
  199. package/data/documentSymbol/scheme.json +25 -25
  200. package/data/documentSymbol/scss.json +39 -39
  201. package/data/documentSymbol/shadcn.json +131 -0
  202. package/data/documentSymbol/shell.json +165 -25
  203. package/data/documentSymbol/sql.json +1 -1
  204. package/data/documentSymbol/swift.json +88 -16
  205. package/data/documentSymbol/tailwindcss.json +49 -0
  206. package/data/documentSymbol/typescript.json +1 -1
  207. package/data/documentSymbol/vb.json +53 -53
  208. package/data/documentSymbol/yaml.json +1 -1
  209. package/data/foldingRange/angular.json +100 -0
  210. package/data/foldingRange/nestjs.json +94 -0
  211. package/data/foldingRange/nextjs.json +94 -0
  212. package/data/foldingRange/react.json +118 -0
  213. package/data/foldingRange/shadcn.json +94 -0
  214. package/data/foldingRange/shell.json +106 -46
  215. package/data/formatting/abap.json +19 -11
  216. package/data/formatting/angular.json +63 -0
  217. package/data/formatting/apex.json +19 -11
  218. package/data/formatting/awk.json +1 -1
  219. package/data/formatting/azcli.json +18 -18
  220. package/data/formatting/bicep.json +18 -18
  221. package/data/formatting/c.json +1 -1
  222. package/data/formatting/caddy.json +1 -1
  223. package/data/formatting/cameligo.json +18 -18
  224. package/data/formatting/clojure.json +18 -18
  225. package/data/formatting/coffee.json +18 -18
  226. package/data/formatting/cpp.json +1 -1
  227. package/data/formatting/crontab.json +1 -1
  228. package/data/formatting/csharp.json +1 -1
  229. package/data/formatting/css.json +73 -73
  230. package/data/formatting/cypher.json +18 -18
  231. package/data/formatting/dart.json +43 -15
  232. package/data/formatting/docker-compose.json +24 -24
  233. package/data/formatting/dockerfile.json +1 -1
  234. package/data/formatting/doctest.json +18 -18
  235. package/data/formatting/dotenv.json +1 -1
  236. package/data/formatting/ecl.json +18 -18
  237. package/data/formatting/elixir.json +43 -18
  238. package/data/formatting/flow9.json +18 -18
  239. package/data/formatting/freemarker2.json +18 -18
  240. package/data/formatting/go.json +1 -1
  241. package/data/formatting/graphql.json +1 -1
  242. package/data/formatting/hcl.json +26 -1
  243. package/data/formatting/html.json +26 -1
  244. package/data/formatting/ini.json +1 -1
  245. package/data/formatting/java.json +1 -1
  246. package/data/formatting/javascript.json +1 -1
  247. package/data/formatting/julia.json +18 -18
  248. package/data/formatting/kotlin.json +33 -13
  249. package/data/formatting/less.json +48 -18
  250. package/data/formatting/lexon.json +18 -18
  251. package/data/formatting/liquid.json +18 -18
  252. package/data/formatting/lua.json +1 -1
  253. package/data/formatting/m3.json +18 -18
  254. package/data/formatting/makefile.json +1 -1
  255. package/data/formatting/markdown.json +26 -1
  256. package/data/formatting/mdx.json +18 -18
  257. package/data/formatting/mips.json +18 -18
  258. package/data/formatting/msdax.json +18 -18
  259. package/data/formatting/mysql.json +43 -18
  260. package/data/formatting/nestjs.json +23 -0
  261. package/data/formatting/nextjs.json +23 -0
  262. package/data/formatting/nginx.json +1 -1
  263. package/data/formatting/objective-c.json +18 -18
  264. package/data/formatting/pascal.json +18 -18
  265. package/data/formatting/pascaligo.json +18 -18
  266. package/data/formatting/perl.json +1 -1
  267. package/data/formatting/pgsql.json +43 -18
  268. package/data/formatting/php.json +1 -1
  269. package/data/formatting/pla.json +18 -18
  270. package/data/formatting/postiats.json +18 -18
  271. package/data/formatting/powerquery.json +18 -18
  272. package/data/formatting/powershell.json +1 -1
  273. package/data/formatting/protobuf.json +1 -1
  274. package/data/formatting/python.json +1 -1
  275. package/data/formatting/qsharp.json +18 -18
  276. package/data/formatting/r.json +32 -32
  277. package/data/formatting/razor.json +18 -18
  278. package/data/formatting/react.json +71 -0
  279. package/data/formatting/redis-cli.json +1 -1
  280. package/data/formatting/redis.json +18 -18
  281. package/data/formatting/redshift.json +43 -18
  282. package/data/formatting/restructuredtext.json +18 -18
  283. package/data/formatting/ruby.json +1 -1
  284. package/data/formatting/rust.json +1 -1
  285. package/data/formatting/sb.json +18 -18
  286. package/data/formatting/scala.json +48 -16
  287. package/data/formatting/scheme.json +18 -18
  288. package/data/formatting/scss.json +48 -18
  289. package/data/formatting/shadcn.json +63 -0
  290. package/data/formatting/shell.json +102 -18
  291. package/data/formatting/sol.json +18 -18
  292. package/data/formatting/sparql.json +18 -18
  293. package/data/formatting/sql.json +1 -1
  294. package/data/formatting/ssh_config.json +1 -1
  295. package/data/formatting/st.json +18 -18
  296. package/data/formatting/swift.json +58 -18
  297. package/data/formatting/systemd.json +1 -1
  298. package/data/formatting/systemverilog.json +18 -18
  299. package/data/formatting/tcl.json +18 -18
  300. package/data/formatting/toml.json +1 -1
  301. package/data/formatting/twig.json +18 -18
  302. package/data/formatting/typescript.json +1 -1
  303. package/data/formatting/vb.json +18 -18
  304. package/data/formatting/wgsl.json +18 -18
  305. package/data/formatting/xml.json +26 -1
  306. package/data/formatting/yaml.json +1 -1
  307. package/data/hover/angular.json +455 -0
  308. package/data/hover/apex.json +281 -6
  309. package/data/hover/awk.json +251 -6
  310. package/data/hover/crontab.json +251 -6
  311. package/data/hover/css.json +232 -0
  312. package/data/hover/dotenv.json +242 -4
  313. package/data/hover/graphql.json +251 -6
  314. package/data/hover/lexon.json +250 -5
  315. package/data/hover/markdown.json +226 -9
  316. package/data/hover/mdx.json +250 -5
  317. package/data/hover/nestjs.json +296 -0
  318. package/data/hover/nextjs.json +305 -0
  319. package/data/hover/perl.json +251 -6
  320. package/data/hover/pla.json +264 -5
  321. package/data/hover/powershell.json +252 -7
  322. package/data/hover/protobuf.json +251 -6
  323. package/data/hover/react.json +173 -0
  324. package/data/hover/redis.json +355 -40
  325. package/data/hover/shadcn.json +450 -0
  326. package/data/hover/shell.json +684 -75
  327. package/data/hover/ssh_config.json +251 -6
  328. package/data/hover/xml.json +231 -7
  329. package/data/implementation/angular.json +22 -0
  330. package/data/implementation/nestjs.json +24 -0
  331. package/data/implementation/nextjs.json +137 -0
  332. package/data/implementation/react.json +125 -0
  333. package/data/implementation/shadcn.json +89 -0
  334. package/data/implementation/shell.json +59 -3
  335. package/data/inlayHints/angular.json +24 -0
  336. package/data/inlayHints/nestjs.json +24 -0
  337. package/data/inlayHints/nextjs.json +143 -0
  338. package/data/inlayHints/react.json +177 -0
  339. package/data/inlayHints/shadcn.json +109 -0
  340. package/data/inlayHints/shell.json +223 -35
  341. package/data/inlineCompletions/angular.json +135 -0
  342. package/data/inlineCompletions/c.json +49 -1
  343. package/data/inlineCompletions/cpp.json +61 -1
  344. package/data/inlineCompletions/csharp.json +73 -1
  345. package/data/inlineCompletions/css.json +125 -125
  346. package/data/inlineCompletions/dart.json +136 -26
  347. package/data/inlineCompletions/elixir.json +34 -34
  348. package/data/inlineCompletions/go.json +67 -1
  349. package/data/inlineCompletions/html.json +1 -1
  350. package/data/inlineCompletions/java.json +67 -1
  351. package/data/inlineCompletions/javascript.json +97 -1
  352. package/data/inlineCompletions/kotlin.json +88 -18
  353. package/data/inlineCompletions/less.json +76 -28
  354. package/data/inlineCompletions/lua.json +37 -1
  355. package/data/inlineCompletions/mysql.json +34 -34
  356. package/data/inlineCompletions/nestjs.json +25 -0
  357. package/data/inlineCompletions/nextjs.json +179 -0
  358. package/data/inlineCompletions/pgsql.json +34 -34
  359. package/data/inlineCompletions/php.json +43 -1
  360. package/data/inlineCompletions/python.json +73 -1
  361. package/data/inlineCompletions/react.json +203 -0
  362. package/data/inlineCompletions/ruby.json +49 -1
  363. package/data/inlineCompletions/rust.json +61 -1
  364. package/data/inlineCompletions/scala.json +130 -25
  365. package/data/inlineCompletions/scss.json +34 -34
  366. package/data/inlineCompletions/shadcn.json +115 -0
  367. package/data/inlineCompletions/shell.json +184 -34
  368. package/data/inlineCompletions/sql.json +43 -1
  369. package/data/inlineCompletions/swift.json +112 -22
  370. package/data/inlineCompletions/typescript.json +97 -1
  371. package/data/linkedEditingRange/angular.json +23 -0
  372. package/data/linkedEditingRange/azcli.json +6 -6
  373. package/data/linkedEditingRange/crontab.json +6 -6
  374. package/data/linkedEditingRange/docker-compose.json +6 -6
  375. package/data/linkedEditingRange/doctest.json +6 -6
  376. package/data/linkedEditingRange/dotenv.json +13 -6
  377. package/data/linkedEditingRange/ini.json +13 -6
  378. package/data/linkedEditingRange/json.json +13 -6
  379. package/data/linkedEditingRange/lexon.json +6 -6
  380. package/data/linkedEditingRange/mips.json +6 -6
  381. package/data/linkedEditingRange/msdax.json +6 -6
  382. package/data/linkedEditingRange/nestjs.json +18 -0
  383. package/data/linkedEditingRange/nextjs.json +24 -0
  384. package/data/linkedEditingRange/pla.json +6 -6
  385. package/data/linkedEditingRange/react.json +74 -0
  386. package/data/linkedEditingRange/redis-cli.json +6 -6
  387. package/data/linkedEditingRange/redis.json +6 -6
  388. package/data/linkedEditingRange/shadcn.json +23 -0
  389. package/data/linkedEditingRange/shell.json +25 -25
  390. package/data/linkedEditingRange/ssh_config.json +6 -6
  391. package/data/linkedEditingRange/systemd.json +6 -6
  392. package/data/linkedEditingRange/toml.json +13 -6
  393. package/data/linkedEditingRange/wgsl.json +6 -6
  394. package/data/linkedEditingRange/xml.json +13 -13
  395. package/data/linkedEditingRange/yaml.json +13 -6
  396. package/data/links/angular.json +95 -0
  397. package/data/links/nestjs.json +130 -0
  398. package/data/links/nextjs.json +91 -0
  399. package/data/links/react.json +75 -0
  400. package/data/links/shadcn.json +98 -0
  401. package/data/links/shell.json +56 -0
  402. package/data/links/tailwindcss.json +25 -0
  403. package/data/manifest.json +339 -152
  404. package/data/onTypeFormatting/angular.json +63 -0
  405. package/data/onTypeFormatting/nestjs.json +64 -0
  406. package/data/onTypeFormatting/nextjs.json +72 -0
  407. package/data/onTypeFormatting/react.json +148 -0
  408. package/data/onTypeFormatting/shadcn.json +63 -0
  409. package/data/onTypeFormatting/shell.json +72 -68
  410. package/data/rangeSemanticTokens/angular.json +196 -0
  411. package/data/rangeSemanticTokens/nestjs.json +195 -0
  412. package/data/rangeSemanticTokens/nextjs.json +199 -0
  413. package/data/rangeSemanticTokens/react.json +77 -0
  414. package/data/rangeSemanticTokens/shadcn.json +203 -0
  415. package/data/rangeSemanticTokens/shell.json +247 -69
  416. package/data/rangeSemanticTokens/tailwindcss.json +99 -8
  417. package/data/references/angular.json +26 -0
  418. package/data/references/nestjs.json +24 -0
  419. package/data/references/nextjs.json +178 -0
  420. package/data/references/react.json +192 -0
  421. package/data/references/shadcn.json +101 -0
  422. package/data/references/shell.json +323 -92
  423. package/data/references/tailwindcss.json +66 -0
  424. package/data/rename/angular.json +121 -0
  425. package/data/rename/nestjs.json +122 -0
  426. package/data/rename/nextjs.json +116 -0
  427. package/data/rename/react.json +133 -0
  428. package/data/rename/shadcn.json +73 -0
  429. package/data/rename/shell.json +101 -31
  430. package/data/selectionRange/abap.json +58 -34
  431. package/data/selectionRange/angular.json +126 -0
  432. package/data/selectionRange/apex.json +58 -34
  433. package/data/selectionRange/awk.json +56 -34
  434. package/data/selectionRange/azcli.json +43 -24
  435. package/data/selectionRange/bicep.json +56 -34
  436. package/data/selectionRange/c.json +62 -39
  437. package/data/selectionRange/caddy.json +53 -34
  438. package/data/selectionRange/cameligo.json +56 -34
  439. package/data/selectionRange/clojure.json +57 -34
  440. package/data/selectionRange/coffee.json +59 -34
  441. package/data/selectionRange/cpp.json +73 -44
  442. package/data/selectionRange/crontab.json +39 -29
  443. package/data/selectionRange/csharp.json +69 -39
  444. package/data/selectionRange/css.json +95 -55
  445. package/data/selectionRange/cypher.json +57 -34
  446. package/data/selectionRange/dart.json +65 -34
  447. package/data/selectionRange/docker-compose.json +54 -34
  448. package/data/selectionRange/dockerfile.json +56 -34
  449. package/data/selectionRange/doctest.json +47 -24
  450. package/data/selectionRange/dotenv.json +33 -24
  451. package/data/selectionRange/ecl.json +58 -34
  452. package/data/selectionRange/elixir.json +63 -34
  453. package/data/selectionRange/flow9.json +57 -34
  454. package/data/selectionRange/freemarker2.json +58 -34
  455. package/data/selectionRange/go.json +64 -39
  456. package/data/selectionRange/graphql.json +58 -34
  457. package/data/selectionRange/hcl.json +56 -34
  458. package/data/selectionRange/html.json +63 -34
  459. package/data/selectionRange/ini.json +38 -24
  460. package/data/selectionRange/java.json +68 -39
  461. package/data/selectionRange/javascript.json +65 -39
  462. package/data/selectionRange/julia.json +65 -39
  463. package/data/selectionRange/kotlin.json +68 -39
  464. package/data/selectionRange/less.json +58 -34
  465. package/data/selectionRange/lexon.json +38 -24
  466. package/data/selectionRange/liquid.json +58 -34
  467. package/data/selectionRange/lua.json +59 -34
  468. package/data/selectionRange/m3.json +57 -34
  469. package/data/selectionRange/makefile.json +53 -34
  470. package/data/selectionRange/markdown.json +57 -34
  471. package/data/selectionRange/mdx.json +63 -34
  472. package/data/selectionRange/mips.json +43 -29
  473. package/data/selectionRange/msdax.json +52 -34
  474. package/data/selectionRange/mysql.json +51 -34
  475. package/data/selectionRange/nestjs.json +35 -0
  476. package/data/selectionRange/nextjs.json +35 -0
  477. package/data/selectionRange/nginx.json +53 -34
  478. package/data/selectionRange/objective-c.json +64 -39
  479. package/data/selectionRange/pascal.json +53 -34
  480. package/data/selectionRange/pascaligo.json +57 -34
  481. package/data/selectionRange/perl.json +59 -34
  482. package/data/selectionRange/pgsql.json +50 -34
  483. package/data/selectionRange/php.json +65 -39
  484. package/data/selectionRange/pla.json +52 -29
  485. package/data/selectionRange/postiats.json +61 -34
  486. package/data/selectionRange/powerquery.json +56 -34
  487. package/data/selectionRange/powershell.json +65 -39
  488. package/data/selectionRange/protobuf.json +58 -34
  489. package/data/selectionRange/python.json +66 -39
  490. package/data/selectionRange/qsharp.json +62 -39
  491. package/data/selectionRange/r.json +57 -34
  492. package/data/selectionRange/razor.json +63 -34
  493. package/data/selectionRange/react.json +103 -0
  494. package/data/selectionRange/redis-cli.json +38 -24
  495. package/data/selectionRange/redis.json +38 -24
  496. package/data/selectionRange/redshift.json +49 -34
  497. package/data/selectionRange/restructuredtext.json +58 -34
  498. package/data/selectionRange/ruby.json +65 -39
  499. package/data/selectionRange/rust.json +73 -44
  500. package/data/selectionRange/sb.json +43 -29
  501. package/data/selectionRange/scala.json +65 -39
  502. package/data/selectionRange/scheme.json +52 -34
  503. package/data/selectionRange/scss.json +58 -34
  504. package/data/selectionRange/shadcn.json +120 -0
  505. package/data/selectionRange/shell.json +64 -34
  506. package/data/selectionRange/sol.json +63 -39
  507. package/data/selectionRange/sparql.json +58 -34
  508. package/data/selectionRange/sql.json +50 -34
  509. package/data/selectionRange/ssh_config.json +37 -29
  510. package/data/selectionRange/st.json +49 -29
  511. package/data/selectionRange/swift.json +73 -44
  512. package/data/selectionRange/systemd.json +47 -34
  513. package/data/selectionRange/systemverilog.json +62 -39
  514. package/data/selectionRange/tailwindcss.json +49 -34
  515. package/data/selectionRange/tcl.json +57 -34
  516. package/data/selectionRange/toml.json +49 -29
  517. package/data/selectionRange/twig.json +58 -34
  518. package/data/selectionRange/typescript.json +75 -44
  519. package/data/selectionRange/vb.json +59 -39
  520. package/data/selectionRange/wgsl.json +61 -34
  521. package/data/selectionRange/xml.json +51 -34
  522. package/data/selectionRange/yaml.json +54 -34
  523. package/data/semanticTokens/angular.json +269 -0
  524. package/data/semanticTokens/nestjs.json +245 -0
  525. package/data/semanticTokens/nextjs.json +265 -0
  526. package/data/semanticTokens/react.json +230 -0
  527. package/data/semanticTokens/shadcn.json +235 -0
  528. package/data/semanticTokens/shell.json +238 -65
  529. package/data/signatureHelp/angular.json +182 -0
  530. package/data/signatureHelp/nestjs.json +201 -0
  531. package/data/signatureHelp/nextjs.json +185 -0
  532. package/data/signatureHelp/react.json +285 -0
  533. package/data/signatureHelp/shadcn.json +237 -0
  534. package/data/signatureHelp/shell.json +797 -104
  535. package/data/typeDefinition/angular.json +362 -0
  536. package/data/typeDefinition/nestjs.json +334 -0
  537. package/data/typeDefinition/nextjs.json +285 -0
  538. package/data/typeDefinition/react.json +236 -0
  539. package/data/typeDefinition/shadcn.json +292 -0
  540. package/data/typeDefinition/shell.json +104 -40
  541. package/package.json +1 -1
  542. package/data/codeActions/bash.json +0 -169
  543. package/data/codeActions/zsh.json +0 -49
  544. package/data/codeLens/bash.json +0 -75
  545. package/data/codeLens/zsh.json +0 -19
  546. package/data/color/bash.json +0 -100
  547. package/data/color/zsh.json +0 -80
  548. package/data/commands/bash.json +0 -102
  549. package/data/commands/zsh.json +0 -166
  550. package/data/completion/bash.json +0 -1184
  551. package/data/completion/zsh.json +0 -973
  552. package/data/declaration/bash.json +0 -301
  553. package/data/declaration/zsh.json +0 -205
  554. package/data/definition/bash.json +0 -565
  555. package/data/definition/zsh.json +0 -350
  556. package/data/documentHighlight/bash.json +0 -393
  557. package/data/documentHighlight/zsh.json +0 -266
  558. package/data/documentRangeFormatting/bash.json +0 -41
  559. package/data/documentRangeFormatting/zsh.json +0 -59
  560. package/data/documentSymbol/bash.json +0 -124
  561. package/data/documentSymbol/zsh.json +0 -26
  562. package/data/foldingRange/bash.json +0 -76
  563. package/data/foldingRange/zsh.json +0 -46
  564. package/data/formatting/bash.json +0 -88
  565. package/data/formatting/zsh.json +0 -28
  566. package/data/hover/bash.json +0 -579
  567. package/data/hover/zsh.json +0 -96
  568. package/data/implementation/bash.json +0 -44
  569. package/data/implementation/zsh.json +0 -41
  570. package/data/inlayHints/bash.json +0 -207
  571. package/data/inlayHints/zsh.json +0 -43
  572. package/data/inlineCompletions/bash.json +0 -155
  573. package/data/inlineCompletions/zsh.json +0 -17
  574. package/data/linkedEditingRange/bash.json +0 -25
  575. package/data/linkedEditingRange/zsh.json +0 -25
  576. package/data/links/bash.json +0 -56
  577. package/data/links/zsh.json +0 -15
  578. package/data/onTypeFormatting/bash.json +0 -68
  579. package/data/onTypeFormatting/zsh.json +0 -68
  580. package/data/rangeSemanticTokens/bash.json +0 -90
  581. package/data/rangeSemanticTokens/zsh.json +0 -76
  582. package/data/references/bash.json +0 -221
  583. package/data/references/zsh.json +0 -166
  584. package/data/rename/bash.json +0 -37
  585. package/data/rename/zsh.json +0 -31
  586. package/data/selectionRange/bash.json +0 -35
  587. package/data/selectionRange/zsh.json +0 -35
  588. package/data/semanticTokens/bash.json +0 -71
  589. package/data/semanticTokens/zsh.json +0 -71
  590. package/data/signatureHelp/bash.json +0 -111
  591. package/data/signatureHelp/zsh.json +0 -118
  592. package/data/typeDefinition/bash.json +0 -95
  593. package/data/typeDefinition/zsh.json +0 -40
@@ -0,0 +1,115 @@
1
+ {
2
+ "language": "shadcn",
3
+ "inlineCompletions": [
4
+ {
5
+ "text": "import { Button } from \"@/components/ui/button\"\n\n<Button variant=\"default\" size=\"default\">\n Click me\n</Button>",
6
+ "description": "Button component with variant and size props",
7
+ "triggerPrefix": "shadcn-button"
8
+ },
9
+ {
10
+ "text": "import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from \"@/components/ui/card\"\n\n<Card>\n <CardHeader>\n <CardTitle>Title</CardTitle>\n <CardDescription>Description</CardDescription>\n </CardHeader>\n <CardContent>\n <p>Content</p>\n </CardContent>\n <CardFooter>\n <p>Footer</p>\n </CardFooter>\n</Card>",
11
+ "description": "Card with all sub-components",
12
+ "triggerPrefix": "shadcn-card"
13
+ },
14
+ {
15
+ "text": "import {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"\n\n<Dialog>\n <DialogTrigger asChild>\n <Button variant=\"outline\">Open</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Dialog Title</DialogTitle>\n <DialogDescription>Dialog description text.</DialogDescription>\n </DialogHeader>\n <div className=\"py-4\">\n Content here\n </div>\n <DialogFooter>\n <Button type=\"submit\">Save</Button>\n </DialogFooter>\n </DialogContent>\n</Dialog>",
16
+ "description": "Dialog with header, content, and footer",
17
+ "triggerPrefix": "shadcn-dialog"
18
+ },
19
+ {
20
+ "text": "import { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useForm } from \"react-hook-form\"\nimport * as z from \"zod\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form\"\nimport { Input } from \"@/components/ui/input\"\n\nconst formSchema = z.object({\n username: z.string().min(2).max(50),\n})\n\nexport function MyForm() {\n const form = useForm<z.infer<typeof formSchema>>({\n resolver: zodResolver(formSchema),\n defaultValues: {\n username: \"\",\n },\n })\n\n function onSubmit(values: z.infer<typeof formSchema>) {\n console.log(values)\n }\n\n return (\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className=\"space-y-8\">\n <FormField\n control={form.control}\n name=\"username\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Username</FormLabel>\n <FormControl>\n <Input placeholder=\"username\" {...field} />\n </FormControl>\n <FormDescription>Your display name.</FormDescription>\n <FormMessage />\n </FormItem>\n )}\n />\n <Button type=\"submit\">Submit</Button>\n </form>\n </Form>\n )\n}",
21
+ "description": "Form with react-hook-form, zod validation, and shadcn fields",
22
+ "triggerPrefix": "shadcn-form"
23
+ },
24
+ {
25
+ "text": "import {\n ColumnDef,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n SortingState,\n ColumnFiltersState,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { useState } from \"react\"\n\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n}\n\nexport function DataTable<TData, TValue>({\n columns,\n data,\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = useState<SortingState>([])\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([])\n\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n onSortingChange: setSorting,\n getSortedRowModel: getSortedRowModel(),\n onColumnFiltersChange: setColumnFilters,\n getFilteredRowModel: getFilteredRowModel(),\n state: { sorting, columnFilters },\n })\n\n return (\n <div>\n <div className=\"flex items-center py-4\">\n <Input\n placeholder=\"Filter...\"\n value={(table.getColumn(\"name\")?.getFilterValue() as string) ?? \"\"}\n onChange={(e) => table.getColumn(\"name\")?.setFilterValue(e.target.value)}\n className=\"max-w-sm\"\n />\n </div>\n <div className=\"rounded-md border\">\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow key={row.id}>\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"h-24 text-center\">\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <div className=\"flex items-center justify-end space-x-2 py-4\">\n <Button variant=\"outline\" size=\"sm\" onClick={() => table.previousPage()} disabled={!table.getCanPreviousPage()}>Previous</Button>\n <Button variant=\"outline\" size=\"sm\" onClick={() => table.nextPage()} disabled={!table.getCanNextPage()}>Next</Button>\n </div>\n </div>\n )\n}",
26
+ "description": "DataTable with columns, sorting, filtering, and pagination",
27
+ "triggerPrefix": "shadcn-datatable"
28
+ },
29
+ {
30
+ "text": "import {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\n\n<Select>\n <SelectTrigger className=\"w-[180px]\">\n <SelectValue placeholder=\"Select an option\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"option1\">Option 1</SelectItem>\n <SelectItem value=\"option2\">Option 2</SelectItem>\n <SelectItem value=\"option3\">Option 3</SelectItem>\n </SelectContent>\n</Select>",
31
+ "description": "Select dropdown with trigger and items",
32
+ "triggerPrefix": "shadcn-select"
33
+ },
34
+ {
35
+ "text": "import {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { Button } from \"@/components/ui/button\"\n\n<DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\">Open Menu</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>My Account</DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuItem>Profile</DropdownMenuItem>\n <DropdownMenuItem>Settings</DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem>Logout</DropdownMenuItem>\n </DropdownMenuContent>\n</DropdownMenu>",
36
+ "description": "Dropdown menu with label, items, and separators",
37
+ "triggerPrefix": "shadcn-dropdown"
38
+ },
39
+ {
40
+ "text": "import {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from \"@/components/ui/command\"\nimport { useState, useEffect } from \"react\"\n\nconst [open, setOpen] = useState(false)\n\nuseEffect(() => {\n const down = (e: KeyboardEvent) => {\n if (e.key === \"k\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault()\n setOpen((open) => !open)\n }\n }\n document.addEventListener(\"keydown\", down)\n return () => document.removeEventListener(\"keydown\", down)\n}, [])\n\n<CommandDialog open={open} onOpenChange={setOpen}>\n <CommandInput placeholder=\"Type a command or search...\" />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n <CommandGroup heading=\"Suggestions\">\n <CommandItem>Calendar</CommandItem>\n <CommandItem>Search</CommandItem>\n <CommandItem>Settings</CommandItem>\n </CommandGroup>\n <CommandSeparator />\n <CommandGroup heading=\"Actions\">\n <CommandItem>New File</CommandItem>\n <CommandItem>New Folder</CommandItem>\n </CommandGroup>\n </CommandList>\n</CommandDialog>",
41
+ "description": "Command palette with keyboard shortcut, search, and grouped items",
42
+ "triggerPrefix": "shadcn-command"
43
+ },
44
+ {
45
+ "text": "import { useToast } from \"@/components/ui/use-toast\"\n\nconst { toast } = useToast()\n\ntoast({\n title: \"Success\",\n description: \"Your action was completed.\",\n})",
46
+ "description": "Toast notification call with title and description",
47
+ "triggerPrefix": "shadcn-toast"
48
+ },
49
+ {
50
+ "text": "import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"@/components/ui/alert-dialog\"\n\n<AlertDialog>\n <AlertDialogTrigger asChild>\n <Button variant=\"destructive\">Delete</Button>\n </AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Are you sure?</AlertDialogTitle>\n <AlertDialogDescription>\n This action cannot be undone.\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction>Continue</AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n</AlertDialog>",
51
+ "description": "AlertDialog confirmation with cancel and continue actions",
52
+ "triggerPrefix": "shadcn-alertdialog"
53
+ },
54
+ {
55
+ "text": "import {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from \"@/components/ui/sheet\"\n\n<Sheet>\n <SheetTrigger asChild>\n <Button variant=\"outline\">Open Sidebar</Button>\n </SheetTrigger>\n <SheetContent side=\"left\">\n <SheetHeader>\n <SheetTitle>Navigation</SheetTitle>\n <SheetDescription>Browse sections.</SheetDescription>\n </SheetHeader>\n <nav className=\"flex flex-col space-y-2 mt-4\">\n <a href=\"#\" className=\"text-sm\">Dashboard</a>\n <a href=\"#\" className=\"text-sm\">Settings</a>\n <a href=\"#\" className=\"text-sm\">Profile</a>\n </nav>\n </SheetContent>\n</Sheet>",
56
+ "description": "Sheet sidebar panel with navigation",
57
+ "triggerPrefix": "shadcn-sheet"
58
+ },
59
+ {
60
+ "text": "import { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\"\n\n<Tabs defaultValue=\"tab1\" className=\"w-full\">\n <TabsList>\n <TabsTrigger value=\"tab1\">Tab 1</TabsTrigger>\n <TabsTrigger value=\"tab2\">Tab 2</TabsTrigger>\n <TabsTrigger value=\"tab3\">Tab 3</TabsTrigger>\n </TabsList>\n <TabsContent value=\"tab1\">Content for tab 1</TabsContent>\n <TabsContent value=\"tab2\">Content for tab 2</TabsContent>\n <TabsContent value=\"tab3\">Content for tab 3</TabsContent>\n</Tabs>",
61
+ "description": "Tabs layout with multiple panels",
62
+ "triggerPrefix": "shadcn-tabs"
63
+ },
64
+ {
65
+ "text": "import {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"@/components/ui/accordion\"\n\n<Accordion type=\"single\" collapsible>\n <AccordionItem value=\"item-1\">\n <AccordionTrigger>Section 1</AccordionTrigger>\n <AccordionContent>Content for section 1.</AccordionContent>\n </AccordionItem>\n <AccordionItem value=\"item-2\">\n <AccordionTrigger>Section 2</AccordionTrigger>\n <AccordionContent>Content for section 2.</AccordionContent>\n </AccordionItem>\n</Accordion>",
66
+ "description": "Accordion with collapsible sections",
67
+ "triggerPrefix": "shadcn-accordion"
68
+ },
69
+ {
70
+ "text": "import { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\n\n<div className=\"grid w-full max-w-sm items-center gap-1.5\">\n <Label htmlFor=\"email\">Email</Label>\n <Input type=\"email\" id=\"email\" placeholder=\"Email\" />\n</div>",
71
+ "description": "Input field with label",
72
+ "triggerPrefix": "shadcn-input"
73
+ },
74
+ {
75
+ "text": "import { Textarea } from \"@/components/ui/textarea\"\nimport { Label } from \"@/components/ui/label\"\n\n<div className=\"grid w-full gap-1.5\">\n <Label htmlFor=\"message\">Message</Label>\n <Textarea placeholder=\"Type your message here.\" id=\"message\" />\n</div>",
76
+ "description": "Textarea with label",
77
+ "triggerPrefix": "shadcn-textarea"
78
+ },
79
+ {
80
+ "text": "import { Badge } from \"@/components/ui/badge\"\n\n<Badge variant=\"default\">Badge</Badge>\n<Badge variant=\"secondary\">Secondary</Badge>\n<Badge variant=\"outline\">Outline</Badge>\n<Badge variant=\"destructive\">Destructive</Badge>",
81
+ "description": "Badge component with variant options",
82
+ "triggerPrefix": "shadcn-badge"
83
+ },
84
+ {
85
+ "text": "import {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n} from \"@/components/ui/navigation-menu\"\n\n<NavigationMenu>\n <NavigationMenuList>\n <NavigationMenuItem>\n <NavigationMenuTrigger>Getting Started</NavigationMenuTrigger>\n <NavigationMenuContent>\n <ul className=\"grid gap-3 p-4 md:w-[400px]\">\n <li><NavigationMenuLink href=\"/docs\">Documentation</NavigationMenuLink></li>\n <li><NavigationMenuLink href=\"/examples\">Examples</NavigationMenuLink></li>\n </ul>\n </NavigationMenuContent>\n </NavigationMenuItem>\n <NavigationMenuItem>\n <NavigationMenuLink className={navigationMenuTriggerStyle()} href=\"/about\">\n About\n </NavigationMenuLink>\n </NavigationMenuItem>\n </NavigationMenuList>\n</NavigationMenu>",
86
+ "description": "Navigation menu with dropdown content",
87
+ "triggerPrefix": "shadcn-navigation"
88
+ },
89
+ {
90
+ "text": "import {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n} from \"@/components/ui/pagination\"\n\n<Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href=\"#\" />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\">1</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\" isActive>2</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\">3</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationEllipsis />\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href=\"#\" />\n </PaginationItem>\n </PaginationContent>\n</Pagination>",
91
+ "description": "Pagination with page links and navigation",
92
+ "triggerPrefix": "shadcn-pagination"
93
+ },
94
+ {
95
+ "text": "import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}",
96
+ "description": "cn() utility function definition using clsx and tailwind-merge",
97
+ "triggerPrefix": "shadcn-cn"
98
+ },
99
+ {
100
+ "text": "import { cva, type VariantProps } from \"class-variance-authority\"\n\nconst myVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\"\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n }\n)",
101
+ "description": "cva() variant definition with multiple variant axes",
102
+ "triggerPrefix": "shadcn-cva"
103
+ },
104
+ {
105
+ "text": "import { Toaster } from \"@/components/ui/toaster\"\n\nexport default function RootLayout({\n children,\n}: {\n children: React.ReactNode\n}) {\n return (\n <html lang=\"en\">\n <body>\n <main>{children}</main>\n <Toaster />\n </body>\n </html>\n )\n}",
106
+ "description": "Toaster provider setup in root layout",
107
+ "triggerPrefix": "shadcn-toaster"
108
+ },
109
+ {
110
+ "text": "import * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface MyComponentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n variant?: \"default\" | \"outline\"\n}\n\nconst MyComponent = React.forwardRef<HTMLDivElement, MyComponentProps>(\n ({ className, variant = \"default\", ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n variant === \"outline\" && \"border-2\",\n className\n )}\n {...props}\n />\n )\n }\n)\nMyComponent.displayName = \"MyComponent\"\n\nexport { MyComponent }",
111
+ "description": "Component with forwardRef, cn(), variants, and displayName",
112
+ "triggerPrefix": "shadcn-component"
113
+ }
114
+ ]
115
+ }
@@ -1,35 +1,185 @@
1
- {
2
- "language": "shell",
3
- "inlineCompletions": [
4
- {
5
- "triggerPattern": "^\\\\s*#!\\\\s*$",
6
- "insertText": "#!/bin/sh\nset -e\n\n${1:# script body}",
7
- "description": "Shell script shebang",
8
- "completeBracketPairs": true
9
- },
10
- {
11
- "triggerPattern": "^\\\\s*if\\\\s*$",
12
- "insertText": "if [ ${1:condition} ]; then\n\t${2:# commands}\nelse\n\t${3:# commands}\nfi",
13
- "description": "If conditional",
14
- "completeBracketPairs": true
15
- },
16
- {
17
- "triggerPattern": "^\\\\s*for\\\\s*$",
18
- "insertText": "for ${1:item} in ${2:list}; do\n\t${3:# commands}\ndone",
19
- "description": "For loop",
20
- "completeBracketPairs": true
21
- },
22
- {
23
- "triggerPattern": "^\\\\s*function\\\\s*$",
24
- "insertText": "${1:function_name}() {\n\t${2:# body}\n}",
25
- "description": "Function definition",
26
- "completeBracketPairs": true
27
- },
28
- {
29
- "triggerPattern": "^\\\\s*case\\\\s*$",
30
- "insertText": "case ${1:\"\\$variable\"} in\n\t${2:pattern1})\n\t\t${3:# commands}\n\t\t;;\n\t${4:pattern2})\n\t\t${5:# commands}\n\t\t;;\n\t*)\n\t\t${6:# default}\n\t\t;;\nesac",
31
- "description": "Case statement",
32
- "completeBracketPairs": true
33
- }
34
- ]
1
+ {
2
+ "language": "shell",
3
+ "inlineCompletions": [
4
+ {
5
+ "triggerPattern": "^\\\\s*#!\\\\s*$",
6
+ "insertText": "#!/bin/sh\nset -e\n\n${1:# script body}",
7
+ "description": "Shell script shebang",
8
+ "completeBracketPairs": true
9
+ },
10
+ {
11
+ "triggerPattern": "^\\\\s*if\\\\s*$",
12
+ "insertText": "if [ ${1:condition} ]; then\n\t${2:# commands}\nelse\n\t${3:# commands}\nfi",
13
+ "description": "If conditional",
14
+ "completeBracketPairs": true
15
+ },
16
+ {
17
+ "triggerPattern": "^\\\\s*for\\\\s*$",
18
+ "insertText": "for ${1:item} in ${2:list}; do\n\t${3:# commands}\ndone",
19
+ "description": "For loop",
20
+ "completeBracketPairs": true
21
+ },
22
+ {
23
+ "triggerPattern": "^\\\\s*function\\\\s*$",
24
+ "insertText": "${1:function_name}() {\n\t${2:# body}\n}",
25
+ "description": "Function definition",
26
+ "completeBracketPairs": true
27
+ },
28
+ {
29
+ "triggerPattern": "^\\\\s*case\\\\s*$",
30
+ "insertText": "case ${1:\"\\$variable\"} in\n\t${2:pattern1})\n\t\t${3:# commands}\n\t\t;;\n\t${4:pattern2})\n\t\t${5:# commands}\n\t\t;;\n\t*)\n\t\t${6:# default}\n\t\t;;\nesac",
31
+ "description": "Case statement",
32
+ "completeBracketPairs": true
33
+ },
34
+ {
35
+ "triggerPattern": "^\\s*if\\s*$",
36
+ "insertText": "if [[ ${1:condition} ]]; then\n\t${2:command}\nfi",
37
+ "description": "If statement",
38
+ "completeBracketPairs": true
39
+ },
40
+ {
41
+ "triggerPattern": "^\\s*if\\s*\\[\\[.*\\]\\];\\s*then\\s*$",
42
+ "insertText": "\n\t${1:command}\nelse\n\t${2:command}\nfi",
43
+ "description": "If-else body",
44
+ "completeBracketPairs": true
45
+ },
46
+ {
47
+ "triggerPattern": "^\\s*elif\\s*$",
48
+ "insertText": "elif [[ ${1:condition} ]]; then\n\t${2:command}",
49
+ "description": "Elif clause",
50
+ "completeBracketPairs": true
51
+ },
52
+ {
53
+ "triggerPattern": "^\\s*for\\s*$",
54
+ "insertText": "for ${1:item} in ${2:list}; do\n\t${3:command}\ndone",
55
+ "description": "For-in loop",
56
+ "completeBracketPairs": true
57
+ },
58
+ {
59
+ "triggerPattern": "^\\s*for\\s*\\(\\(\\s*$",
60
+ "insertText": "for (( ${1:i}=0; ${1:i}<${2:n}; ${1:i}++ )); do\n\t${3:command}\ndone",
61
+ "description": "C-style for loop",
62
+ "completeBracketPairs": true
63
+ },
64
+ {
65
+ "triggerPattern": "^\\s*while\\s*$",
66
+ "insertText": "while [[ ${1:condition} ]]; do\n\t${2:command}\ndone",
67
+ "description": "While loop",
68
+ "completeBracketPairs": true
69
+ },
70
+ {
71
+ "triggerPattern": "^\\s*while\\s+IFS=\\s*$",
72
+ "insertText": "while IFS= read -r ${1:line}; do\n\t${2:echo \"$line\"}\ndone < \"${3:file}\"",
73
+ "description": "Read file line by line",
74
+ "completeBracketPairs": true
75
+ },
76
+ {
77
+ "triggerPattern": "^\\s*until\\s*$",
78
+ "insertText": "until [[ ${1:condition} ]]; do\n\t${2:command}\ndone",
79
+ "description": "Until loop",
80
+ "completeBracketPairs": true
81
+ },
82
+ {
83
+ "triggerPattern": "^\\s*case\\s*$",
84
+ "insertText": "case ${1:\"$variable\"} in\n\t${2:pattern1})\n\t\t${3:command}\n\t\t;;\n\t${4:pattern2})\n\t\t${5:command}\n\t\t;;\n\t*)\n\t\t${6:echo \"Unknown option\"}\n\t\t;;\nesac",
85
+ "description": "Case statement",
86
+ "completeBracketPairs": true
87
+ },
88
+ {
89
+ "triggerPattern": "^\\s*select\\s*$",
90
+ "insertText": "select ${1:opt} in ${2:option1 option2 option3}; do\n\tcase \"$${1:opt}\" in\n\t\t${3:option1}) ${4:command} ;;\n\t\t*) echo \"Invalid\" ;;\n\tesac\ndone",
91
+ "description": "Select menu",
92
+ "completeBracketPairs": true
93
+ },
94
+ {
95
+ "triggerPattern": "^\\s*function\\s+\\w+\\s*$",
96
+ "insertText": "() {\n\tlocal ${1:arg}=\"$1\"\n\t${2:command}\n}",
97
+ "description": "Function body",
98
+ "completeBracketPairs": true
99
+ },
100
+ {
101
+ "triggerPattern": "^\\s*\\w+\\(\\)\\s*$",
102
+ "insertText": "{\n\tlocal ${1:arg}=\"$1\"\n\t${2:command}\n}",
103
+ "description": "Function body (parens form)",
104
+ "completeBracketPairs": true
105
+ },
106
+ {
107
+ "triggerPattern": "^#!/usr/bin/env\\s+bash\\s*$",
108
+ "insertText": "\nset -euo pipefail\nIFS=$'\\\\n\\\\t'\n\n${1:main() \\{\n\t$2\n\\}}\n\nmain \"$@\"",
109
+ "description": "Strict mode script template",
110
+ "completeBracketPairs": true
111
+ },
112
+ {
113
+ "triggerPattern": "^\\s*trap\\s*$",
114
+ "insertText": "trap '${1:cleanup}' EXIT ERR INT TERM",
115
+ "description": "Trap cleanup handler",
116
+ "completeBracketPairs": false
117
+ },
118
+ {
119
+ "triggerPattern": "^\\s*getopts\\s*$",
120
+ "insertText": "while getopts \":${1:hv}\" opt; do\n\tcase \"$opt\" in\n\t\th) usage; exit 0 ;;\n\t\tv) echo \"$VERSION\"; exit 0 ;;\n\t\t\\?) echo \"Invalid option: -$OPTARG\" >&2; exit 1 ;;\n\t\t:) echo \"Option -$OPTARG requires an argument\" >&2; exit 1 ;;\n\tesac\ndone\nshift $((OPTIND - 1))",
121
+ "description": "Getopts argument parsing loop",
122
+ "completeBracketPairs": true
123
+ },
124
+ {
125
+ "triggerPattern": "^\\s*read\\s+-r\\s*$",
126
+ "insertText": "read -r -p \"${1:Enter value}: \" ${2:variable}",
127
+ "description": "Read with prompt",
128
+ "completeBracketPairs": false
129
+ },
130
+ {
131
+ "triggerPattern": "^\\s*(?:local\\s+)?tmpdir=\\s*$",
132
+ "insertText": "$(mktemp -d)\ntrap 'rm -rf \"$tmpdir\"' EXIT",
133
+ "description": "Create temp directory with cleanup",
134
+ "completeBracketPairs": false
135
+ },
136
+ {
137
+ "triggerPattern": "^\\s*log\\s*$",
138
+ "insertText": "log() {\n\tlocal level=\"$1\"; shift\n\tprintf '[%s] [%s] %s\\n' \"$(date '+%Y-%m-%d %H:%M:%S')\" \"$level\" \"$*\" >&2\n}",
139
+ "description": "Logging function template",
140
+ "completeBracketPairs": true
141
+ },
142
+ {
143
+ "triggerPattern": "^\\s*die\\s*$",
144
+ "insertText": "die() { echo \"ERROR: $*\" >&2; exit 1; }",
145
+ "description": "Die/error function",
146
+ "completeBracketPairs": true
147
+ },
148
+ {
149
+ "triggerPattern": "^\\s*usage\\s*$",
150
+ "insertText": "usage() {\n\tcat <<-EOF\n\tUsage: $(basename \"$0\") [OPTIONS] ${1:ARGS}\n\n\tOptions:\n\t -h, --help Show this help message\n\t -v, --version Show version\n\t ${2:-f, --file Input file}\n\tEOF\n}",
151
+ "description": "Usage/help function template",
152
+ "completeBracketPairs": true
153
+ },
154
+ {
155
+ "triggerPattern": "^\\s*(?:declare\\s+-[aA]|\\w+=\\()\\s*$",
156
+ "insertText": "(\n\t${1:\"element1\"}\n\t${2:\"element2\"}\n\t${3:\"element3\"}\n)",
157
+ "description": "Array initialization",
158
+ "completeBracketPairs": true
159
+ },
160
+ {
161
+ "triggerPattern": "^\\s*(?:if|\\[\\[).*command\\s+-v\\s*$",
162
+ "insertText": "command -v ${1:cmd} &>/dev/null; then\n\t${2:echo \"$1 is available\"}\nelse\n\techo \"Error: ${1:cmd} is required but not installed.\" >&2\n\texit 1\nfi",
163
+ "description": "Check if command exists",
164
+ "completeBracketPairs": true
165
+ },
166
+ {
167
+ "triggerPattern": "^\\s*find\\s*$",
168
+ "insertText": "find ${1:.} -type ${2:f} -name \"${3:*.txt}\" ${4:-exec echo {} \\;}",
169
+ "description": "Find command template",
170
+ "completeBracketPairs": false
171
+ },
172
+ {
173
+ "triggerPattern": "^\\s*(?:cat|echo).*<<\\s*$",
174
+ "insertText": "EOF\n${1:content}\nEOF",
175
+ "description": "Here-document body",
176
+ "completeBracketPairs": false
177
+ },
178
+ {
179
+ "triggerPattern": "^\\s*mapfile\\s*$",
180
+ "insertText": "mapfile -t ${1:lines} < \"${2:file}\"",
181
+ "description": "Read file into array",
182
+ "completeBracketPairs": false
183
+ }
184
+ ]
35
185
  }
@@ -12,6 +12,48 @@
12
12
  "insertText": "CREATE TABLE ${1:name} (\n\t${2:id} SERIAL PRIMARY KEY,\n\t$0\n);",
13
13
  "description": "Create table",
14
14
  "completeBracketPairs": true
15
+ },
16
+ {
17
+ "triggerPattern": "SELECT\\s+$",
18
+ "insertText": "${1:columns}\nFROM ${2:table}\nWHERE ${3:condition}",
19
+ "description": "SELECT query",
20
+ "completeBracketPairs": false
21
+ },
22
+ {
23
+ "triggerPattern": "INSERT\\s+INTO\\s+$",
24
+ "insertText": "${1:table} (${2:columns})\nVALUES (${3:values})",
25
+ "description": "INSERT statement",
26
+ "completeBracketPairs": false
27
+ },
28
+ {
29
+ "triggerPattern": "UPDATE\\s+$",
30
+ "insertText": "${1:table}\nSET ${2:column} = ${3:value}\nWHERE ${4:condition}",
31
+ "description": "UPDATE statement",
32
+ "completeBracketPairs": false
33
+ },
34
+ {
35
+ "triggerPattern": "CREATE\\s+TABLE\\s+$",
36
+ "insertText": "${1:table_name} (\n\t${2:id} ${3:INT} PRIMARY KEY,\n\t${4:column} ${5:VARCHAR(255)}\n)",
37
+ "description": "CREATE TABLE",
38
+ "completeBracketPairs": false
39
+ },
40
+ {
41
+ "triggerPattern": "JOIN\\s+$",
42
+ "insertText": "${1:table} ON ${2:condition}",
43
+ "description": "JOIN clause",
44
+ "completeBracketPairs": false
45
+ },
46
+ {
47
+ "triggerPattern": "GROUP BY\\s+$",
48
+ "insertText": "${1:column}\nHAVING ${2:condition}",
49
+ "description": "GROUP BY with HAVING",
50
+ "completeBracketPairs": false
51
+ },
52
+ {
53
+ "triggerPattern": "ALTER\\s+TABLE\\s+$",
54
+ "insertText": "${1:table}\nADD COLUMN ${2:column} ${3:type}",
55
+ "description": "ALTER TABLE",
56
+ "completeBracketPairs": false
15
57
  }
16
58
  ]
17
- }
59
+ }
@@ -1,23 +1,113 @@
1
- {
2
- "language": "swift",
3
- "inlineCompletions": [
4
- {"triggerPattern": "^\\s*func\\s+main\\s*$", "insertText": "func main() {\n\t${1:print(\"Hello, World!\")}\n}", "description": "Main function", "completeBracketPairs": true},
5
- {"triggerPattern": "^\\s*func\\s+\\w+\\($", "insertText": "${1:param}: ${2:Type}) -> ${3:Void} {\n\t$0\n}", "description": "Complete function signature", "completeBracketPairs": true},
6
- {"triggerPattern": "^\\s*struct\\s+\\w+\\s*$", "insertText": "struct ${1:Name} {\n\tlet ${2:property}: ${3:Type}\n}", "description": "Struct declaration", "completeBracketPairs": true},
7
- {"triggerPattern": "^\\s*class\\s+\\w+\\s*$", "insertText": "class ${1:Name} {\n\tinit(${2:params}) {\n\t\t$0\n\t}\n}", "description": "Class with initializer", "completeBracketPairs": true},
8
- {"triggerPattern": "^\\s*enum\\s+\\w+\\s*$", "insertText": "enum ${1:Name} {\n\tcase ${2:value1}\n\tcase ${3:value2}\n}", "description": "Enum declaration", "completeBracketPairs": true},
9
- {"triggerPattern": "^\\s*guard\\s+let\\s*$", "insertText": "guard let ${1:value} = ${2:optional} else {\n\t${3:return}\n}", "description": "Guard let statement", "completeBracketPairs": true},
10
- {"triggerPattern": "^\\s*if\\s+let\\s*$", "insertText": "if let ${1:value} = ${2:optional} {\n\t$0\n}", "description": "If let optional binding", "completeBracketPairs": true},
11
- {"triggerPattern": "^\\s*switch\\s*$", "insertText": "switch ${1:value} {\ncase ${2:.option1}:\n\t${3:break}\ncase ${4:.option2}:\n\t${5:break}\ndefault:\n\t${6:break}\n}", "description": "Switch statement", "completeBracketPairs": true},
12
- {"triggerPattern": "^\\s*for\\s*$", "insertText": "for ${1:item} in ${2:collection} {\n\t$0\n}", "description": "For-in loop", "completeBracketPairs": true},
13
- {"triggerPattern": "^\\s*do\\s*$", "insertText": "do {\n\ttry ${1:expression}\n} catch {\n\t${2:print(error)}\n}", "description": "Do-catch block", "completeBracketPairs": true},
14
- {"triggerPattern": "^\\s*async\\s+func\\s*$", "insertText": "async func ${1:name}(${2:params}) throws -> ${3:Void} {\n\t$0\n}", "description": "Async function", "completeBracketPairs": true},
15
- {"triggerPattern": "^\\s*protocol\\s+\\w+\\s*$", "insertText": "protocol ${1:Name} {\n\tfunc ${2:method}(${3:params}) -> ${4:Void}\n}", "description": "Protocol declaration", "completeBracketPairs": true},
16
- {"triggerPattern": "^\\s*extension\\s+\\w+\\s*$", "insertText": "extension ${1:Type} {\n\t$0\n}", "description": "Extension declaration", "completeBracketPairs": true},
17
- {"triggerPattern": "^\\s*init\\s*$", "insertText": "init(${1:params}) {\n\t$0\n}", "description": "Initializer", "completeBracketPairs": true},
18
- {"triggerPattern": "\\{\\s*$", "insertText": "{ (${1:params}) -> ${2:Void} in\n\t$0\n}", "description": "Closure expression", "completeBracketPairs": true},
19
- {"triggerPattern": "^\\s*@Published\\s+var\\s*$", "insertText": "@Published var ${1:name}: ${2:Type} = ${3:value}", "description": "@Published property", "completeBracketPairs": true},
20
- {"triggerPattern": "^\\s*Task\\s*$", "insertText": "Task {\n\t$0\n}", "description": "Task block", "completeBracketPairs": true},
21
- {"triggerPattern": "^\\s*actor\\s+\\w+\\s*$", "insertText": "actor ${1:Name} {\n\tvar ${2:state}: ${3:Type}\n\n\tfunc ${4:method}() {\n\t\t$0\n\t}\n}", "description": "Actor declaration", "completeBracketPairs": true}
22
- ]
1
+ {
2
+ "language": "swift",
3
+ "inlineCompletions": [
4
+ {
5
+ "triggerPattern": "^\\s*func\\s+main\\s*$",
6
+ "insertText": "func main() {\n\t${1:print(\"Hello, World!\")}\n}",
7
+ "description": "Main function",
8
+ "completeBracketPairs": true
9
+ },
10
+ {
11
+ "triggerPattern": "^\\s*func\\s+\\w+\\($",
12
+ "insertText": "${1:param}: ${2:Type}) -> ${3:Void} {\n\t$0\n}",
13
+ "description": "Complete function signature",
14
+ "completeBracketPairs": true
15
+ },
16
+ {
17
+ "triggerPattern": "^\\s*struct\\s+\\w+\\s*$",
18
+ "insertText": "struct ${1:Name} {\n\tlet ${2:property}: ${3:Type}\n}",
19
+ "description": "Struct declaration",
20
+ "completeBracketPairs": true
21
+ },
22
+ {
23
+ "triggerPattern": "^\\s*class\\s+\\w+\\s*$",
24
+ "insertText": "class ${1:Name} {\n\tinit(${2:params}) {\n\t\t$0\n\t}\n}",
25
+ "description": "Class with initializer",
26
+ "completeBracketPairs": true
27
+ },
28
+ {
29
+ "triggerPattern": "^\\s*enum\\s+\\w+\\s*$",
30
+ "insertText": "enum ${1:Name} {\n\tcase ${2:value1}\n\tcase ${3:value2}\n}",
31
+ "description": "Enum declaration",
32
+ "completeBracketPairs": true
33
+ },
34
+ {
35
+ "triggerPattern": "^\\s*guard\\s+let\\s*$",
36
+ "insertText": "guard let ${1:value} = ${2:optional} else {\n\t${3:return}\n}",
37
+ "description": "Guard let statement",
38
+ "completeBracketPairs": true
39
+ },
40
+ {
41
+ "triggerPattern": "^\\s*if\\s+let\\s*$",
42
+ "insertText": "if let ${1:value} = ${2:optional} {\n\t$0\n}",
43
+ "description": "If let optional binding",
44
+ "completeBracketPairs": true
45
+ },
46
+ {
47
+ "triggerPattern": "^\\s*switch\\s*$",
48
+ "insertText": "switch ${1:value} {\ncase ${2:.option1}:\n\t${3:break}\ncase ${4:.option2}:\n\t${5:break}\ndefault:\n\t${6:break}\n}",
49
+ "description": "Switch statement",
50
+ "completeBracketPairs": true
51
+ },
52
+ {
53
+ "triggerPattern": "^\\s*for\\s*$",
54
+ "insertText": "for ${1:item} in ${2:collection} {\n\t$0\n}",
55
+ "description": "For-in loop",
56
+ "completeBracketPairs": true
57
+ },
58
+ {
59
+ "triggerPattern": "^\\s*do\\s*$",
60
+ "insertText": "do {\n\ttry ${1:expression}\n} catch {\n\t${2:print(error)}\n}",
61
+ "description": "Do-catch block",
62
+ "completeBracketPairs": true
63
+ },
64
+ {
65
+ "triggerPattern": "^\\s*async\\s+func\\s*$",
66
+ "insertText": "async func ${1:name}(${2:params}) throws -> ${3:Void} {\n\t$0\n}",
67
+ "description": "Async function",
68
+ "completeBracketPairs": true
69
+ },
70
+ {
71
+ "triggerPattern": "^\\s*protocol\\s+\\w+\\s*$",
72
+ "insertText": "protocol ${1:Name} {\n\tfunc ${2:method}(${3:params}) -> ${4:Void}\n}",
73
+ "description": "Protocol declaration",
74
+ "completeBracketPairs": true
75
+ },
76
+ {
77
+ "triggerPattern": "^\\s*extension\\s+\\w+\\s*$",
78
+ "insertText": "extension ${1:Type} {\n\t$0\n}",
79
+ "description": "Extension declaration",
80
+ "completeBracketPairs": true
81
+ },
82
+ {
83
+ "triggerPattern": "^\\s*init\\s*$",
84
+ "insertText": "init(${1:params}) {\n\t$0\n}",
85
+ "description": "Initializer",
86
+ "completeBracketPairs": true
87
+ },
88
+ {
89
+ "triggerPattern": "\\{\\s*$",
90
+ "insertText": "{ (${1:params}) -> ${2:Void} in\n\t$0\n}",
91
+ "description": "Closure expression",
92
+ "completeBracketPairs": true
93
+ },
94
+ {
95
+ "triggerPattern": "^\\s*@Published\\s+var\\s*$",
96
+ "insertText": "@Published var ${1:name}: ${2:Type} = ${3:value}",
97
+ "description": "@Published property",
98
+ "completeBracketPairs": true
99
+ },
100
+ {
101
+ "triggerPattern": "^\\s*Task\\s*$",
102
+ "insertText": "Task {\n\t$0\n}",
103
+ "description": "Task block",
104
+ "completeBracketPairs": true
105
+ },
106
+ {
107
+ "triggerPattern": "^\\s*actor\\s+\\w+\\s*$",
108
+ "insertText": "actor ${1:Name} {\n\tvar ${2:state}: ${3:Type}\n\n\tfunc ${4:method}() {\n\t\t$0\n\t}\n}",
109
+ "description": "Actor declaration",
110
+ "completeBracketPairs": true
111
+ }
112
+ ]
23
113
  }