@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
@@ -4,42 +4,287 @@
4
4
  "Host": {
5
5
  "contents": [
6
6
  {
7
- "value": "```\nHost myserver\n HostName 10.0.1.50\n User deploy\n\nHost *.internal\n ProxyJump bastion\n\nHost *\n ServerAliveInterval 60\n```\n**Host** blocks match by name/pattern. `Host *` sets defaults. Wildcards and negation (`!pattern`) are supported."
7
+ "value": "```ssh_config\nHost myserver\n HostName 10.0.1.50\n User deploy\n\nHost *.internal\n ProxyJump bastion\n\nHost *\n ServerAliveInterval 60\n```\n**Host** blocks match by name/pattern. `Host *` sets defaults. Wildcards and negation (`!pattern`) supported."
8
+ }
9
+ ]
10
+ },
11
+ "HostName": {
12
+ "contents": [
13
+ {
14
+ "value": "```ssh_config\nHost myserver\n HostName 192.168.1.100\n\nHost staging\n HostName staging.example.com\n```\n**HostName** specifies the real hostname or IP to connect to. Allows the `Host` alias to differ from the actual address."
15
+ }
16
+ ]
17
+ },
18
+ "User": {
19
+ "contents": [
20
+ {
21
+ "value": "```ssh_config\nHost production\n User deploy\n\nHost *\n User myusername\n```\n**User** sets the login username. Overrides the default (current local user) for specific hosts."
22
+ }
23
+ ]
24
+ },
25
+ "Port": {
26
+ "contents": [
27
+ {
28
+ "value": "```ssh_config\nHost myserver\n Port 2222\n\nHost *\n Port 22\n```\n**Port** specifies the remote SSH port. Default is 22. Some servers use non-standard ports for security."
8
29
  }
9
30
  ]
10
31
  },
11
32
  "IdentityFile": {
12
33
  "contents": [
13
34
  {
14
- "value": "```\nIdentityFile ~/.ssh/id_ed25519\nIdentityFile ~/.ssh/work_key\n```\n**IdentityFile** specifies the private key. Multiple keys can be listed - SSH tries them in order. Ed25519 keys are recommended."
35
+ "value": "```ssh_config\nIdentityFile ~/.ssh/id_ed25519\nIdentityFile ~/.ssh/work_key\n```\n**IdentityFile** specifies the private key file. Multiple keys can be listed SSH tries them in order."
36
+ }
37
+ ]
38
+ },
39
+ "IdentitiesOnly": {
40
+ "contents": [
41
+ {
42
+ "value": "```ssh_config\nHost work\n IdentityFile ~/.ssh/work_key\n IdentitiesOnly yes\n```\n**IdentitiesOnly** restricts authentication to the specified IdentityFile(s) only, ignoring keys from ssh-agent."
15
43
  }
16
44
  ]
17
45
  },
18
46
  "ProxyJump": {
19
47
  "contents": [
20
48
  {
21
- "value": "```\nHost internal\n HostName 10.0.1.50\n ProxyJump bastion\n\n# Equivalent to:\n# ssh -J bastion internal\n```\n**ProxyJump** connects through a bastion/jump host. Supports chaining: `ProxyJump host1,host2`."
49
+ "value": "```ssh_config\nHost internal\n HostName 10.0.1.50\n ProxyJump bastion\n\n# Chaining: ProxyJump host1,host2\n```\n**ProxyJump** connects through a bastion/jump host. Supports chaining multiple jumps."
50
+ }
51
+ ]
52
+ },
53
+ "ProxyCommand": {
54
+ "contents": [
55
+ {
56
+ "value": "```ssh_config\nHost internal\n ProxyCommand ssh -W %h:%p bastion\n\nHost corporate\n ProxyCommand nc -x proxy:1080 %h %p\n```\n**ProxyCommand** specifies a command to connect to the server. `%h` and `%p` are replaced with host and port."
22
57
  }
23
58
  ]
24
59
  },
25
60
  "LocalForward": {
26
61
  "contents": [
27
62
  {
28
- "value": "```\nLocalForward 5432 db-server:5432\nLocalForward 8080 localhost:80\n\n# Then connect:\n# psql -h localhost -p 5432\n```\n**LocalForward** tunnels a local port to a remote destination via SSH. Great for accessing internal databases."
63
+ "value": "```ssh_config\nLocalForward 5432 db-server:5432\nLocalForward 8080 localhost:80\n```\n**LocalForward** tunnels a local port to a remote destination via SSH. Great for accessing internal databases."
64
+ }
65
+ ]
66
+ },
67
+ "RemoteForward": {
68
+ "contents": [
69
+ {
70
+ "value": "```ssh_config\nRemoteForward 8080 localhost:3000\n```\n**RemoteForward** makes a local service accessible from the remote host. The remote port forwards back to local."
71
+ }
72
+ ]
73
+ },
74
+ "DynamicForward": {
75
+ "contents": [
76
+ {
77
+ "value": "```ssh_config\nDynamicForward 1080\n```\n**DynamicForward** creates a SOCKS proxy on the specified local port. All traffic through the proxy is tunneled over SSH."
29
78
  }
30
79
  ]
31
80
  },
32
81
  "ForwardAgent": {
33
82
  "contents": [
34
83
  {
35
- "value": "```\nForwardAgent yes\n\n# Security warning: only enable for trusted hosts\n# Allows the remote host to use your SSH keys\n```\n**ForwardAgent** forwards your SSH agent. Useful for hopping between hosts but poses a security risk on untrusted servers."
84
+ "value": "```ssh_config\nForwardAgent yes\n# Security: only enable for trusted hosts\n```\n**ForwardAgent** forwards your SSH agent to the remote host. Useful for multi-hop but risky on untrusted servers."
36
85
  }
37
86
  ]
38
87
  },
39
88
  "ServerAliveInterval": {
40
89
  "contents": [
41
90
  {
42
- "value": "```\nHost *\n ServerAliveInterval 60\n ServerAliveCountMax 3\n```\n**ServerAliveInterval** sends keep-alive packets every N seconds. With CountMax=3, connection drops after 180s of no response. Prevents idle disconnections."
91
+ "value": "```ssh_config\nHost *\n ServerAliveInterval 60\n ServerAliveCountMax 3\n```\n**ServerAliveInterval** sends keep-alive packets every N seconds. Prevents idle disconnections."
92
+ }
93
+ ]
94
+ },
95
+ "ServerAliveCountMax": {
96
+ "contents": [
97
+ {
98
+ "value": "```ssh_config\nServerAliveCountMax 3\n```\n**ServerAliveCountMax** sets how many keep-alive messages can go unanswered before disconnecting. With interval 60 and max 3, timeout is 180s."
99
+ }
100
+ ]
101
+ },
102
+ "AddKeysToAgent": {
103
+ "contents": [
104
+ {
105
+ "value": "```ssh_config\nHost *\n AddKeysToAgent yes\n```\n**AddKeysToAgent** automatically adds keys to the running ssh-agent after first use. Values: `yes`, `no`, `ask`, `confirm`, or a time limit."
106
+ }
107
+ ]
108
+ },
109
+ "StrictHostKeyChecking": {
110
+ "contents": [
111
+ {
112
+ "value": "```ssh_config\nHost *\n StrictHostKeyChecking ask\n\nHost *.test\n StrictHostKeyChecking no\n UserKnownHostsFile /dev/null\n```\n**StrictHostKeyChecking** controls host key verification. `ask` (default) prompts, `yes` rejects unknown, `no` accepts all (insecure)."
113
+ }
114
+ ]
115
+ },
116
+ "UserKnownHostsFile": {
117
+ "contents": [
118
+ {
119
+ "value": "```ssh_config\nUserKnownHostsFile ~/.ssh/known_hosts\nUserKnownHostsFile /dev/null\n```\n**UserKnownHostsFile** specifies the file for storing known host keys. Use `/dev/null` to disable (with `StrictHostKeyChecking no`)."
120
+ }
121
+ ]
122
+ },
123
+ "Compression": {
124
+ "contents": [
125
+ {
126
+ "value": "```ssh_config\nHost slow-link\n Compression yes\n```\n**Compression** enables zlib compression. Useful for slow connections but can increase latency on fast ones."
127
+ }
128
+ ]
129
+ },
130
+ "TCPKeepAlive": {
131
+ "contents": [
132
+ {
133
+ "value": "```ssh_config\nTCPKeepAlive yes\n```\n**TCPKeepAlive** sends TCP keepalive messages to detect dead connections. Different from `ServerAliveInterval` (application-level)."
134
+ }
135
+ ]
136
+ },
137
+ "ControlMaster": {
138
+ "contents": [
139
+ {
140
+ "value": "```ssh_config\nHost *\n ControlMaster auto\n ControlPath ~/.ssh/sockets/%r@%h-%p\n ControlPersist 600\n```\n**ControlMaster** enables connection multiplexing. Subsequent connections to the same host reuse the existing TCP connection."
141
+ }
142
+ ]
143
+ },
144
+ "ControlPath": {
145
+ "contents": [
146
+ {
147
+ "value": "```ssh_config\nControlPath ~/.ssh/sockets/%r@%h-%p\n```\n**ControlPath** specifies the Unix socket file for connection multiplexing. `%r` = user, `%h` = host, `%p` = port."
148
+ }
149
+ ]
150
+ },
151
+ "ControlPersist": {
152
+ "contents": [
153
+ {
154
+ "value": "```ssh_config\nControlPersist 600\nControlPersist yes\n```\n**ControlPersist** keeps the master connection open after the last session closes. Value in seconds, or `yes` for indefinite."
155
+ }
156
+ ]
157
+ },
158
+ "Match": {
159
+ "contents": [
160
+ {
161
+ "value": "```ssh_config\nMatch host *.internal user deploy\n ProxyJump bastion\n\nMatch exec \"test -f ~/.ssh/work_key\"\n IdentityFile ~/.ssh/work_key\n```\n**Match** applies settings conditionally by host, user, or command result. More flexible than `Host`."
162
+ }
163
+ ]
164
+ },
165
+ "Include": {
166
+ "contents": [
167
+ {
168
+ "value": "```ssh_config\nInclude ~/.ssh/config.d/*\nInclude ~/.ssh/work_config\n```\n**Include** imports other config files. Supports glob patterns. Useful for splitting configs by project or team."
169
+ }
170
+ ]
171
+ },
172
+ "LogLevel": {
173
+ "contents": [
174
+ {
175
+ "value": "```ssh_config\nHost problematic\n LogLevel DEBUG3\n\nHost *\n LogLevel ERROR\n```\n**LogLevel** controls SSH client logging verbosity. Levels: `QUIET`, `FATAL`, `ERROR`, `INFO`, `VERBOSE`, `DEBUG`, `DEBUG1`-`DEBUG3`."
176
+ }
177
+ ]
178
+ },
179
+ "RequestTTY": {
180
+ "contents": [
181
+ {
182
+ "value": "```ssh_config\nHost scripts\n RequestTTY no\n\nHost interactive\n RequestTTY force\n```\n**RequestTTY** controls pseudo-terminal allocation. `no` for scripts, `force` for interactive. Equivalent to `-t`/`-T` flags."
183
+ }
184
+ ]
185
+ },
186
+ "BatchMode": {
187
+ "contents": [
188
+ {
189
+ "value": "```ssh_config\nHost automated\n BatchMode yes\n```\n**BatchMode** disables password prompting and host key confirmation. Useful for scripts where no user interaction is possible."
190
+ }
191
+ ]
192
+ },
193
+ "ConnectTimeout": {
194
+ "contents": [
195
+ {
196
+ "value": "```ssh_config\nHost *\n ConnectTimeout 10\n```\n**ConnectTimeout** sets the connection timeout in seconds. Default uses the system TCP timeout."
197
+ }
198
+ ]
199
+ },
200
+ "ConnectionAttempts": {
201
+ "contents": [
202
+ {
203
+ "value": "```ssh_config\nHost unreliable\n ConnectionAttempts 3\n```\n**ConnectionAttempts** specifies the number of connection retry attempts before giving up. Default is 1."
204
+ }
205
+ ]
206
+ },
207
+ "Ciphers": {
208
+ "contents": [
209
+ {
210
+ "value": "```ssh_config\nHost *\n Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.com\n```\n**Ciphers** specifies allowed encryption algorithms in preference order."
211
+ }
212
+ ]
213
+ },
214
+ "KexAlgorithms": {
215
+ "contents": [
216
+ {
217
+ "value": "```ssh_config\nKexAlgorithms curve25519-sha256,diffie-hellman-group16-sha512\n```\n**KexAlgorithms** specifies allowed key exchange algorithms. Modern setups prefer curve25519."
218
+ }
219
+ ]
220
+ },
221
+ "PubkeyAuthentication": {
222
+ "contents": [
223
+ {
224
+ "value": "```ssh_config\nHost *\n PubkeyAuthentication yes\n PasswordAuthentication no\n```\n**PubkeyAuthentication** enables/disables public key authentication. Best practice: enable keys, disable passwords."
225
+ }
226
+ ]
227
+ },
228
+ "PasswordAuthentication": {
229
+ "contents": [
230
+ {
231
+ "value": "```ssh_config\nHost legacy-server\n PasswordAuthentication yes\n\nHost *\n PasswordAuthentication no\n```\n**PasswordAuthentication** controls password-based login. Disable for security when key auth is available."
232
+ }
233
+ ]
234
+ },
235
+ "ForwardX11": {
236
+ "contents": [
237
+ {
238
+ "value": "```ssh_config\nHost desktop\n ForwardX11 yes\n ForwardX11Trusted yes\n```\n**ForwardX11** enables X11 forwarding for running graphical applications remotely. `Trusted` bypasses X11 security."
239
+ }
240
+ ]
241
+ },
242
+ "SendEnv": {
243
+ "contents": [
244
+ {
245
+ "value": "```ssh_config\nHost *\n SendEnv LANG LC_*\n SetEnv MY_VAR=value\n```\n**SendEnv** sends local environment variables to the remote server. Server must accept them via `AcceptEnv`."
246
+ }
247
+ ]
248
+ },
249
+ "SetEnv": {
250
+ "contents": [
251
+ {
252
+ "value": "```ssh_config\nHost staging\n SetEnv ENV=staging\n SetEnv DEBUG=1\n```\n**SetEnv** sets environment variables on the remote session. Does not require server-side `AcceptEnv` configuration."
253
+ }
254
+ ]
255
+ },
256
+ "PermitLocalCommand": {
257
+ "contents": [
258
+ {
259
+ "value": "```ssh_config\nHost *\n PermitLocalCommand yes\n LocalCommand echo \"Connected to %h\"\n```\n**PermitLocalCommand** allows running local commands after connecting. `LocalCommand` specifies the command."
260
+ }
261
+ ]
262
+ },
263
+ "CanonicalizeHostname": {
264
+ "contents": [
265
+ {
266
+ "value": "```ssh_config\nCanonicalizeHostname yes\nCanonicalDomains example.com internal.example.com\n```\n**CanonicalizeHostname** resolves short hostnames to FQDNs using `CanonicalDomains`. Useful in corporate networks."
267
+ }
268
+ ]
269
+ },
270
+ "AddressFamily": {
271
+ "contents": [
272
+ {
273
+ "value": "```ssh_config\nHost *\n AddressFamily inet\n```\n**AddressFamily** restricts connections to `inet` (IPv4), `inet6` (IPv6), or `any` (default). Use `inet` to avoid IPv6 issues."
274
+ }
275
+ ]
276
+ },
277
+ "PreferredAuthentications": {
278
+ "contents": [
279
+ {
280
+ "value": "```ssh_config\nHost *\n PreferredAuthentications publickey,keyboard-interactive,password\n```\n**PreferredAuthentications** sets the order of authentication methods to try."
281
+ }
282
+ ]
283
+ },
284
+ "GSSAPIAuthentication": {
285
+ "contents": [
286
+ {
287
+ "value": "```ssh_config\nHost *.corp.example.com\n GSSAPIAuthentication yes\n GSSAPIDelegateCredentials yes\n\nHost *\n GSSAPIAuthentication no\n```\n**GSSAPIAuthentication** enables Kerberos/GSSAPI authentication. Common in corporate environments with Active Directory."
43
288
  }
44
289
  ]
45
290
  }
@@ -11,49 +11,273 @@
11
11
  "attribute": {
12
12
  "contents": [
13
13
  {
14
- "value": "```xml\n<item id=\"123\" type=\"book\">\n```\n**Attributes** provide metadata about elements. Values must always be quoted (single or double). Attribute names must be unique per element."
14
+ "value": "```xml\n<item id=\"123\" type=\"book\" available=\"true\">\n```\n**Attributes** provide metadata. Values must always be quoted. Names must be unique per element."
15
15
  }
16
16
  ]
17
17
  },
18
18
  "namespace": {
19
19
  "contents": [
20
20
  {
21
- "value": "```xml\n<root xmlns:app=\"http://example.com/app\">\n <app:config>value</app:config>\n</root>\n```\n**Namespaces** qualify element/attribute names with a URI to avoid conflicts between different XML vocabularies."
21
+ "value": "```xml\n<root xmlns:app=\"http://example.com/app\"\n xmlns:db=\"http://example.com/db\">\n <app:config>value</app:config>\n <db:table>users</db:table>\n</root>\n```\n**Namespaces** qualify names with a URI to avoid conflicts between vocabularies."
22
22
  }
23
23
  ]
24
24
  },
25
25
  "CDATA": {
26
26
  "contents": [
27
27
  {
28
- "value": "```xml\n<script><![CDATA[\n if (a < b && c > d) { ... }\n]]></script>\n```\n**CDATA** sections are not parsed by the XML parser. Useful for embedding code or text with special characters like `<`, `>`, `&`."
28
+ "value": "```xml\n<script><![CDATA[\n if (a < b && c > d) { doSomething(); }\n]]></script>\n```\n**CDATA** sections are not parsed by the XML parser. Useful for code or text with `<`, `>`, `&`."
29
29
  }
30
30
  ]
31
31
  },
32
32
  "comment": {
33
33
  "contents": [
34
34
  {
35
- "value": "```xml\n<!-- This is a comment -->\n<!-- TODO: fix this section -->\n```\n**Comments** are ignored by XML parsers. Cannot contain `--` within the comment body."
35
+ "value": "```xml\n<!-- This is a comment -->\n<!-- TODO: fix this section -->\n```\n**Comments** are ignored by parsers. Cannot contain `--` within the body."
36
36
  }
37
37
  ]
38
38
  },
39
39
  "declaration": {
40
40
  "contents": [
41
41
  {
42
- "value": "```xml\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n```\n**XML declaration** specifies version and encoding. Must appear at the very beginning of the document (before any whitespace)."
42
+ "value": "```xml\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n```\n**XML declaration** specifies version and encoding. Must be the very first thing in the document."
43
43
  }
44
44
  ]
45
45
  },
46
46
  "XPath": {
47
47
  "contents": [
48
48
  {
49
- "value": "```xpath\n/root/child select child elements\n//element select anywhere in doc\n.//node[@attr] relative with predicate\ntext() get text content\n```\n**XPath** is a query language for navigating XML documents and selecting nodes."
49
+ "value": "```xpath\n/root/child # direct child\n//element # anywhere in document\n.//node[@attr] # relative with attribute\n//book[price>30] # with predicate\ntext() # text content\n//item[last()] # last item\n//item[position()<=3] # first 3 items\n```\n**XPath** navigates and queries XML documents."
50
50
  }
51
51
  ]
52
52
  },
53
53
  "entity": {
54
54
  "contents": [
55
55
  {
56
- "value": "```xml\n&lt; <\n&gt; >\n&amp; &\n&quot; \"\n&apos; '\n```\n**Predefined entities** represent special characters that cannot appear literally in XML content."
56
+ "value": "```xml\n&lt; <\n&gt; >\n&amp; &\n&quot; \"\n&apos; '\n&#169; (c) numeric entity\n&#x00A9; (c) hex entity\n```\n**Entities** represent special characters. Five predefined, plus numeric/hex references."
57
+ }
58
+ ]
59
+ },
60
+ "DTD": {
61
+ "contents": [
62
+ {
63
+ "value": "```xml\n<!DOCTYPE note [\n <!ELEMENT note (to,from,body)>\n <!ELEMENT to (#PCDATA)>\n <!ELEMENT from (#PCDATA)>\n <!ELEMENT body (#PCDATA)>\n <!ATTLIST note priority CDATA \"normal\">\n]>\n```\n**DTD** (Document Type Definition) defines the structure and allowed elements of an XML document."
64
+ }
65
+ ]
66
+ },
67
+ "XSD": {
68
+ "contents": [
69
+ {
70
+ "value": "```xml\n<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n <xs:element name=\"person\">\n <xs:complexType>\n <xs:sequence>\n <xs:element name=\"name\" type=\"xs:string\"/>\n <xs:element name=\"age\" type=\"xs:integer\"/>\n </xs:sequence>\n </xs:complexType>\n </xs:element>\n</xs:schema>\n```\n**XSD** (XML Schema Definition) validates XML structure with data types. More powerful than DTD."
71
+ }
72
+ ]
73
+ },
74
+ "XSLT": {
75
+ "contents": [
76
+ {
77
+ "value": "```xml\n<xsl:stylesheet version=\"1.0\"\n xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">\n <xsl:template match=\"/\">\n <html>\n <body>\n <xsl:for-each select=\"catalog/book\">\n <p><xsl:value-of select=\"title\"/></p>\n </xsl:for-each>\n </body>\n </html>\n </xsl:template>\n</xsl:stylesheet>\n```\n**XSLT** transforms XML into other formats (HTML, text, different XML)."
78
+ }
79
+ ]
80
+ },
81
+ "processing_instruction": {
82
+ "contents": [
83
+ {
84
+ "value": "```xml\n<?xml-stylesheet type=\"text/xsl\" href=\"style.xsl\"?>\n<?xml-model href=\"schema.xsd\"?>\n```\n**Processing instructions** `<?target data?>` provide instructions to the application processing the XML."
85
+ }
86
+ ]
87
+ },
88
+ "well_formed": {
89
+ "contents": [
90
+ {
91
+ "value": "```xml\n<!-- Well-formed XML rules: -->\n<!-- 1. Single root element -->\n<!-- 2. Tags properly nested and closed -->\n<!-- 3. Attribute values quoted -->\n<!-- 4. Case-sensitive tags -->\n<!-- 5. Special chars escaped -->\n```\n**Well-formed** XML follows syntax rules. All XML must be well-formed; valid XML also conforms to a schema."
92
+ }
93
+ ]
94
+ },
95
+ "self_closing": {
96
+ "contents": [
97
+ {
98
+ "value": "```xml\n<br/>\n<img src=\"photo.jpg\" alt=\"Photo\"/>\n<input type=\"text\" name=\"field\"/>\n```\n**Self-closing tags** use `/>` for elements with no content. Equivalent to `<br></br>`."
99
+ }
100
+ ]
101
+ },
102
+ "default_namespace": {
103
+ "contents": [
104
+ {
105
+ "value": "```xml\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n <head><title>Page</title></head>\n <body>Content</body>\n</html>\n```\n**Default namespace** `xmlns=\"...\"` applies to the element and all descendants without a prefix."
106
+ }
107
+ ]
108
+ },
109
+ "xmlns": {
110
+ "contents": [
111
+ {
112
+ "value": "```xml\nxmlns=\"http://default.namespace\"\nxmlns:prefix=\"http://custom.namespace\"\n```\n**xmlns** declares a namespace binding. Default (no prefix) or prefixed (e.g., `xmlns:xsl`)."
113
+ }
114
+ ]
115
+ },
116
+ "root_element": {
117
+ "contents": [
118
+ {
119
+ "value": "```xml\n<?xml version=\"1.0\"?>\n<catalog>\n <book id=\"1\">\n <title>XML Developer Guide</title>\n </book>\n</catalog>\n```\n**Root element** — Every XML document must have exactly one root element that contains all others."
120
+ }
121
+ ]
122
+ },
123
+ "mixed_content": {
124
+ "contents": [
125
+ {
126
+ "value": "```xml\n<paragraph>\n This is <bold>mixed</bold> content with\n <link href=\"#\">inline elements</link>.\n</paragraph>\n```\n**Mixed content** means an element contains both text and child elements. Common in document-oriented XML."
127
+ }
128
+ ]
129
+ },
130
+ "encoding": {
131
+ "contents": [
132
+ {
133
+ "value": "```xml\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n<?xml version=\"1.0\" encoding=\"UTF-16\"?>\n```\n**Encoding** — UTF-8 is the default and recommended. Specify in the XML declaration if different."
134
+ }
135
+ ]
136
+ },
137
+ "PCDATA": {
138
+ "contents": [
139
+ {
140
+ "value": "```xml\n<!-- PCDATA = Parsed Character Data -->\n<name>John &amp; Jane</name>\n<!-- Entities are parsed/expanded -->\n\n<!-- CDATA = Unparsed character data -->\n<code><![CDATA[a < b && c > d]]></code>\n```\n**PCDATA** is parsed text where entities are expanded. CDATA is unparsed literal text."
141
+ }
142
+ ]
143
+ },
144
+ "SAX": {
145
+ "contents": [
146
+ {
147
+ "value": "```xml\n<!-- SAX (Simple API for XML) -->\n<!-- Event-driven, streaming parser -->\n<!-- Low memory: processes one element at a time -->\n<!-- Events: startElement, endElement, characters -->\n<!-- Best for: large files, one-pass processing -->\n```\n**SAX** is an event-driven XML parser. Reads sequentially with low memory usage. Ideal for large files."
148
+ }
149
+ ]
150
+ },
151
+ "DOM": {
152
+ "contents": [
153
+ {
154
+ "value": "```xml\n<!-- DOM (Document Object Model) -->\n<!-- Loads entire document into memory as a tree -->\n<!-- Allows random access and modification -->\n<!-- Higher memory usage -->\n<!-- Best for: small/medium files, complex queries -->\n```\n**DOM** parser loads the complete XML tree into memory. Supports random access and manipulation."
155
+ }
156
+ ]
157
+ },
158
+ "RSS": {
159
+ "contents": [
160
+ {
161
+ "value": "```xml\n<rss version=\"2.0\">\n <channel>\n <title>My Blog</title>\n <link>https://example.com</link>\n <item>\n <title>Post Title</title>\n <description>Summary</description>\n <pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate>\n </item>\n </channel>\n</rss>\n```\n**RSS** (Really Simple Syndication) is an XML format for content feeds."
162
+ }
163
+ ]
164
+ },
165
+ "Atom": {
166
+ "contents": [
167
+ {
168
+ "value": "```xml\n<feed xmlns=\"http://www.w3.org/2005/Atom\">\n <title>My Feed</title>\n <entry>\n <title>Entry Title</title>\n <link href=\"https://example.com/post\"/>\n <updated>2024-01-01T00:00:00Z</updated>\n <content type=\"html\">Content here</content>\n </entry>\n</feed>\n```\n**Atom** is a modern XML feed format. More strictly defined than RSS."
169
+ }
170
+ ]
171
+ },
172
+ "SVG": {
173
+ "contents": [
174
+ {
175
+ "value": "```xml\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\">\n <circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"red\"/>\n <text x=\"50\" y=\"55\" text-anchor=\"middle\">Hi</text>\n</svg>\n```\n**SVG** (Scalable Vector Graphics) is an XML-based format for vector images."
176
+ }
177
+ ]
178
+ },
179
+ "SOAP": {
180
+ "contents": [
181
+ {
182
+ "value": "```xml\n<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <soap:Header/>\n <soap:Body>\n <GetPrice xmlns=\"http://example.com\">\n <Item>Apple</Item>\n </GetPrice>\n </soap:Body>\n</soap:Envelope>\n```\n**SOAP** is an XML protocol for web services. Uses Envelope, Header, Body structure."
183
+ }
184
+ ]
185
+ },
186
+ "sitemap": {
187
+ "contents": [
188
+ {
189
+ "value": "```xml\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n <url>\n <loc>https://example.com/</loc>\n <lastmod>2024-01-01</lastmod>\n <priority>1.0</priority>\n </url>\n</urlset>\n```\n**Sitemap** XML helps search engines discover and index website pages."
190
+ }
191
+ ]
192
+ },
193
+ "pom": {
194
+ "contents": [
195
+ {
196
+ "value": "```xml\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\">\n <modelVersion>4.0.0</modelVersion>\n <groupId>com.example</groupId>\n <artifactId>my-app</artifactId>\n <version>1.0.0</version>\n <dependencies>\n <dependency>\n <groupId>junit</groupId>\n <artifactId>junit</artifactId>\n <version>4.13</version>\n </dependency>\n </dependencies>\n</project>\n```\n**POM** (pom.xml) is Maven's project configuration. Defines dependencies, plugins, and build settings."
197
+ }
198
+ ]
199
+ },
200
+ "web_xml": {
201
+ "contents": [
202
+ {
203
+ "value": "```xml\n<web-app xmlns=\"http://xmlns.jcp.org/xml/ns/javaee\" version=\"4.0\">\n <servlet>\n <servlet-name>MyServlet</servlet-name>\n <servlet-class>com.example.MyServlet</servlet-class>\n </servlet>\n <servlet-mapping>\n <servlet-name>MyServlet</servlet-name>\n <url-pattern>/api/*</url-pattern>\n </servlet-mapping>\n</web-app>\n```\n**web.xml** is the Java web application deployment descriptor."
204
+ }
205
+ ]
206
+ },
207
+ "android_manifest": {
208
+ "contents": [
209
+ {
210
+ "value": "```xml\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n package=\"com.example.myapp\">\n <application android:label=\"My App\">\n <activity android:name=\".MainActivity\">\n <intent-filter>\n <action android:name=\"android.intent.action.MAIN\"/>\n <category android:name=\"android.intent.category.LAUNCHER\"/>\n </intent-filter>\n </activity>\n </application>\n</manifest>\n```\n**AndroidManifest.xml** declares app components, permissions, and metadata."
211
+ }
212
+ ]
213
+ },
214
+ "csproj": {
215
+ "contents": [
216
+ {
217
+ "value": "```xml\n<Project Sdk=\"Microsoft.NET.Sdk.Web\">\n <PropertyGroup>\n <TargetFramework>net8.0</TargetFramework>\n </PropertyGroup>\n <ItemGroup>\n <PackageReference Include=\"Newtonsoft.Json\" Version=\"13.0.3\" />\n </ItemGroup>\n</Project>\n```\n**.csproj** is the MSBuild project file for .NET applications. Defines framework, dependencies, and build settings."
218
+ }
219
+ ]
220
+ },
221
+ "xml_ns_types": {
222
+ "contents": [
223
+ {
224
+ "value": "```xml\n<!-- XSD data types: -->\n<xs:element name=\"name\" type=\"xs:string\"/>\n<xs:element name=\"age\" type=\"xs:integer\"/>\n<xs:element name=\"price\" type=\"xs:decimal\"/>\n<xs:element name=\"active\" type=\"xs:boolean\"/>\n<xs:element name=\"created\" type=\"xs:dateTime\"/>\n<xs:element name=\"id\" type=\"xs:ID\"/>\n```\n**XSD types** — `xs:string`, `xs:integer`, `xs:decimal`, `xs:boolean`, `xs:dateTime`, `xs:ID`, and many more."
225
+ }
226
+ ]
227
+ },
228
+ "xpath_axes": {
229
+ "contents": [
230
+ {
231
+ "value": "```xpath\nchild::book # direct children\nparent::* # parent element\nancestor::catalog # all ancestors\ndescendant::title # all descendants\nfollowing-sibling::* # following siblings \npreceding::* # all preceding nodes\nattribute::id # attributes (or @id)\nself::node() # current node\n```\n**XPath axes** specify the direction and scope of node selection in the document tree."
232
+ }
233
+ ]
234
+ },
235
+ "xpath_functions": {
236
+ "contents": [
237
+ {
238
+ "value": "```xpath\ncount(//book) # count nodes\nsum(//price) # sum numeric values\nstring-length(title) # string length\nconcat(first, ' ', last) # concatenate\ncontains(title, 'XML') # substring check\nnormalize-space(text()) # trim whitespace\nnot(@hidden) # boolean negation\n```\n**XPath functions** perform calculations and string operations on XML data."
239
+ }
240
+ ]
241
+ },
242
+ "xsl_value_of": {
243
+ "contents": [
244
+ {
245
+ "value": "```xml\n<xsl:value-of select=\"title\"/>\n<xsl:value-of select=\"@id\"/>\n<xsl:value-of select=\"count(item)\"/>\n```\n**xsl:value-of** outputs the text value of an XPath expression in XSLT transformations."
246
+ }
247
+ ]
248
+ },
249
+ "xsl_for_each": {
250
+ "contents": [
251
+ {
252
+ "value": "```xml\n<xsl:for-each select=\"catalog/book\">\n <xsl:sort select=\"price\" data-type=\"number\"/>\n <p><xsl:value-of select=\"title\"/></p>\n</xsl:for-each>\n```\n**xsl:for-each** iterates over a node set. Can include `xsl:sort` for ordering."
253
+ }
254
+ ]
255
+ },
256
+ "xsl_if": {
257
+ "contents": [
258
+ {
259
+ "value": "```xml\n<xsl:if test=\"price > 30\">\n <span class=\"expensive\">$<xsl:value-of select=\"price\"/></span>\n</xsl:if>\n```\n**xsl:if** conditional output. No else — use `xsl:choose` for if-else logic."
260
+ }
261
+ ]
262
+ },
263
+ "xsl_choose": {
264
+ "contents": [
265
+ {
266
+ "value": "```xml\n<xsl:choose>\n <xsl:when test=\"@type='fiction'\">Novel</xsl:when>\n <xsl:when test=\"@type='tech'\">Technical</xsl:when>\n <xsl:otherwise>Other</xsl:otherwise>\n</xsl:choose>\n```\n**xsl:choose/when/otherwise** provides if-else-if-else logic in XSLT."
267
+ }
268
+ ]
269
+ },
270
+ "xsl_template": {
271
+ "contents": [
272
+ {
273
+ "value": "```xml\n<xsl:template match=\"book\">\n <div class=\"book\">\n <h2><xsl:value-of select=\"title\"/></h2>\n <xsl:apply-templates select=\"author\"/>\n </div>\n</xsl:template>\n```\n**xsl:template** defines a transformation rule. `match` selects input nodes, content defines output."
274
+ }
275
+ ]
276
+ },
277
+ "xml_validation": {
278
+ "contents": [
279
+ {
280
+ "value": "```xml\n<!-- Schema reference in XML: -->\n<root xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:noNamespaceSchemaLocation=\"schema.xsd\">\n\n<!-- Or with namespace: -->\n<root xmlns=\"http://example.com\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"http://example.com schema.xsd\">\n```\n**Schema association** — Reference an XSD from within the XML document for validation."
57
281
  }
58
282
  ]
59
283
  }
@@ -0,0 +1,22 @@
1
+ {
2
+ "language": "angular",
3
+ "implementationPatterns": [
4
+ { "name": "OnInit", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bOnInit\\b", "captureGroup": 1, "description": "Class implementing OnInit lifecycle interface" },
5
+ { "name": "OnDestroy", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bOnDestroy\\b", "captureGroup": 1, "description": "Class implementing OnDestroy lifecycle interface" },
6
+ { "name": "OnChanges", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bOnChanges\\b", "captureGroup": 1, "description": "Class implementing OnChanges lifecycle interface" },
7
+ { "name": "AfterViewInit", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bAfterViewInit\\b", "captureGroup": 1, "description": "Class implementing AfterViewInit lifecycle interface" },
8
+ { "name": "AfterContentInit", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bAfterContentInit\\b", "captureGroup": 1, "description": "Class implementing AfterContentInit lifecycle interface" },
9
+ { "name": "DoCheck", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bDoCheck\\b", "captureGroup": 1, "description": "Class implementing DoCheck lifecycle interface" },
10
+ { "name": "AfterViewChecked", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bAfterViewChecked\\b", "captureGroup": 1, "description": "Class implementing AfterViewChecked lifecycle interface" },
11
+ { "name": "AfterContentChecked", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bAfterContentChecked\\b", "captureGroup": 1, "description": "Class implementing AfterContentChecked lifecycle interface" },
12
+ { "name": "CanActivate", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bCanActivate\\b", "captureGroup": 1, "description": "Class implementing CanActivate route guard interface" },
13
+ { "name": "CanDeactivate", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bCanDeactivate\\b", "captureGroup": 1, "description": "Class implementing CanDeactivate route guard interface" },
14
+ { "name": "Resolve", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bResolve\\b", "captureGroup": 1, "description": "Class implementing Resolve route resolver interface" },
15
+ { "name": "HttpInterceptor", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bHttpInterceptor\\b", "captureGroup": 1, "description": "Class implementing HttpInterceptor interface" },
16
+ { "name": "PipeTransform", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bPipeTransform\\b", "captureGroup": 1, "description": "Class implementing PipeTransform interface" },
17
+ { "name": "ControlValueAccessor", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bControlValueAccessor\\b", "captureGroup": 1, "description": "Class implementing ControlValueAccessor for custom form controls" },
18
+ { "name": "Validator", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bValidator\\b", "captureGroup": 1, "description": "Class implementing Validator interface for custom validation" },
19
+ { "name": "NgModule", "pattern": "@NgModule\\s*\\([^)]*\\)\\s*(?:export\\s+)?class\\s+(\\w+)", "captureGroup": 1, "description": "Angular module class decorated with @NgModule" },
20
+ { "name": "ErrorHandler", "pattern": "class\\s+(\\w+)[^{]*(?:implements\\s+[^{]*\\bErrorHandler\\b|extends\\s+ErrorHandler)", "captureGroup": 1, "description": "Class implementing or extending ErrorHandler" }
21
+ ]
22
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "language": "nestjs",
3
+ "implementationPatterns": [
4
+ { "interface": "CanActivate", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+CanActivate", "description": "Guard implementations" },
5
+ { "interface": "PipeTransform", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+PipeTransform", "description": "Pipe implementations" },
6
+ { "interface": "NestInterceptor", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+NestInterceptor", "description": "Interceptor implementations" },
7
+ { "interface": "ExceptionFilter", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+ExceptionFilter", "description": "Exception filter implementations" },
8
+ { "interface": "NestMiddleware", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+NestMiddleware", "description": "Middleware implementations" },
9
+ { "interface": "NestModule", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+NestModule", "description": "Module configure implementations" },
10
+ { "interface": "OnModuleInit", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)[^{]*implements[^{]*OnModuleInit", "description": "OnModuleInit lifecycle hook" },
11
+ { "interface": "OnModuleDestroy", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)[^{]*implements[^{]*OnModuleDestroy", "description": "OnModuleDestroy lifecycle hook" },
12
+ { "interface": "OnApplicationBootstrap", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)[^{]*implements[^{]*OnApplicationBootstrap", "description": "OnApplicationBootstrap lifecycle hook" },
13
+ { "interface": "OnApplicationShutdown", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)[^{]*implements[^{]*OnApplicationShutdown", "description": "OnApplicationShutdown lifecycle hook" },
14
+ { "interface": "BeforeApplicationShutdown", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)[^{]*implements[^{]*BeforeApplicationShutdown", "description": "BeforeApplicationShutdown lifecycle hook" },
15
+ { "interface": "CallHandler", "implementationKeyword": "implements", "pattern": "intercept\\([^)]*\\).*Observable", "description": "Interceptor intercept method" },
16
+ { "interface": "ArgumentsHost", "implementationKeyword": "catch", "pattern": "catch\\(\\s*\\w+[^,)]*,\\s*\\w+:\\s*ArgumentsHost", "description": "Exception filter catch method" },
17
+ { "interface": "HealthIndicator", "implementationKeyword": "extends", "pattern": "class\\s+(\\w+)\\s+extends\\s+HealthIndicator", "description": "Health check implementations" },
18
+ { "interface": "TypeOrmModuleOptions", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+TypeOrmOptionsFactory", "description": "TypeORM config factory" }
19
+ ],
20
+ "keywords": {
21
+ "interface": ["interface", "abstract class", "CanActivate", "PipeTransform", "NestInterceptor", "ExceptionFilter", "NestMiddleware", "NestModule", "OnModuleInit", "OnModuleDestroy"],
22
+ "implementation": ["implements", "extends", "class", "@Injectable", "@Controller", "@Module"]
23
+ }
24
+ }