@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
@@ -1,45 +1,290 @@
1
1
  {
2
2
  "language": "protobuf",
3
3
  "hovers": {
4
+ "syntax": {
5
+ "contents": [
6
+ {
7
+ "value": "```protobuf\nsyntax = \"proto3\";\n```\n**syntax** declares the protobuf version. Use `proto3` for modern projects. `proto2` has required fields and different defaults."
8
+ }
9
+ ]
10
+ },
4
11
  "message": {
5
12
  "contents": [
6
13
  {
7
- "value": "```protobuf\nmessage User {\n string name = 1;\n int32 age = 2;\n repeated string tags = 3;\n map<string, string> metadata = 4;\n optional string bio = 5;\n}\n```\n**message** defines structured data. Field numbers (1, 2, etc.) are used in binary encoding - never reuse deleted numbers."
14
+ "value": "```protobuf\nmessage User {\n string name = 1;\n int32 age = 2;\n repeated string tags = 3;\n map<string, string> metadata = 4;\n optional string bio = 5;\n}\n```\n**message** defines structured data. Field numbers identify fields in binary encoding never reuse deleted numbers."
8
15
  }
9
16
  ]
10
17
  },
11
18
  "service": {
12
19
  "contents": [
13
20
  {
14
- "value": "```protobuf\nservice UserService {\n rpc GetUser(GetUserRequest) returns (User);\n rpc ListUsers(ListUsersRequest) returns (stream User); // server stream\n rpc Upload(stream Chunk) returns (UploadResponse); // client stream\n rpc Chat(stream Msg) returns (stream Msg); // bidirectional\n}\n```\n**service** defines gRPC endpoints. Four patterns: unary, server streaming, client streaming, bidirectional."
21
+ "value": "```protobuf\nservice UserService {\n rpc GetUser(GetUserRequest) returns (User);\n rpc ListUsers(ListUsersRequest) returns (stream User);\n rpc Upload(stream Chunk) returns (UploadResponse);\n rpc Chat(stream Msg) returns (stream Msg);\n}\n```\n**service** defines gRPC endpoints. Four patterns: unary, server streaming, client streaming, bidirectional."
22
+ }
23
+ ]
24
+ },
25
+ "rpc": {
26
+ "contents": [
27
+ {
28
+ "value": "```protobuf\nrpc GetUser(GetUserRequest) returns (User);\nrpc ListUsers(Empty) returns (stream User);\n```\n**rpc** defines a remote procedure call within a service. Input and output are message types. `stream` enables streaming."
15
29
  }
16
30
  ]
17
31
  },
18
32
  "enum": {
19
33
  "contents": [
20
34
  {
21
- "value": "```protobuf\nenum Status {\n STATUS_UNSPECIFIED = 0; // must have 0 value\n STATUS_ACTIVE = 1;\n STATUS_INACTIVE = 2;\n}\n```\n**enum** defines named constants. The zero value is required and should be UNSPECIFIED. Use the type name as prefix convention."
35
+ "value": "```protobuf\nenum Status {\n STATUS_UNSPECIFIED = 0;\n STATUS_ACTIVE = 1;\n STATUS_INACTIVE = 2;\n}\n```\n**enum** defines named constants. Zero value is required and should be UNSPECIFIED. Use type name as prefix."
36
+ }
37
+ ]
38
+ },
39
+ "oneof": {
40
+ "contents": [
41
+ {
42
+ "value": "```protobuf\nmessage SearchResult {\n oneof result {\n User user = 1;\n Group group = 2;\n string error = 3;\n }\n}\n```\n**oneof** enforces that at most one field in the group is set. Setting one clears the others. Saves memory."
43
+ }
44
+ ]
45
+ },
46
+ "repeated": {
47
+ "contents": [
48
+ {
49
+ "value": "```protobuf\nmessage User {\n repeated string tags = 1;\n repeated Address addresses = 2;\n}\n```\n**repeated** marks a field as a list (zero or more elements). Order is preserved. Can contain scalars or messages."
50
+ }
51
+ ]
52
+ },
53
+ "map": {
54
+ "contents": [
55
+ {
56
+ "value": "```protobuf\nmessage Config {\n map<string, string> properties = 1;\n map<int32, Feature> features = 2;\n}\n```\n**map** defines key-value pairs. Keys must be integral or string types. Values can be any type except another map."
57
+ }
58
+ ]
59
+ },
60
+ "optional": {
61
+ "contents": [
62
+ {
63
+ "value": "```protobuf\nmessage User {\n optional string nickname = 1;\n optional int32 age = 2;\n}\n```\n**optional** (proto3) enables presence tracking. Without it, default values are indistinguishable from unset fields."
64
+ }
65
+ ]
66
+ },
67
+ "reserved": {
68
+ "contents": [
69
+ {
70
+ "value": "```protobuf\nmessage Example {\n reserved 5, 10 to 12;\n reserved \"old_field\", \"legacy\";\n}\n```\n**reserved** prevents reuse of deleted field numbers or names. Protects against data corruption from old messages."
71
+ }
72
+ ]
73
+ },
74
+ "import": {
75
+ "contents": [
76
+ {
77
+ "value": "```protobuf\nimport \"google/protobuf/timestamp.proto\";\nimport \"other/messages.proto\";\nimport public \"shared/types.proto\";\n```\n**import** includes definitions from other .proto files. `import public` re-exports the imported definitions."
78
+ }
79
+ ]
80
+ },
81
+ "package": {
82
+ "contents": [
83
+ {
84
+ "value": "```protobuf\npackage mycompany.myproject.v1;\n```\n**package** namespaces messages to avoid naming conflicts. Maps to language-specific packages (Java package, C++ namespace)."
85
+ }
86
+ ]
87
+ },
88
+ "option": {
89
+ "contents": [
90
+ {
91
+ "value": "```protobuf\noption java_package = \"com.example.proto\";\noption go_package = \"github.com/user/repo/pb\";\noption java_multiple_files = true;\n```\n**option** configures code generation. Language-specific options control package names, output structure, etc."
22
92
  }
23
93
  ]
24
94
  },
25
95
  "field_numbers": {
26
96
  "contents": [
27
97
  {
28
- "value": "```protobuf\nmessage Example {\n string name = 1; // 1-15: one byte (use for frequent fields)\n int32 count = 2; // 16-2047: two bytes\n // 19000-19999: reserved by protobuf\n \n reserved 5, 10 to 12; // reserve deleted field numbers\n reserved \"old_field_name\"; // reserve deleted field names\n}\n```\n**Field numbers** identify fields in the binary format. Use 1-15 for frequently-used fields (more efficient encoding). Never reuse numbers."
98
+ "value": "```protobuf\nmessage Example {\n string name = 1; // 1-15: one byte (frequent fields)\n int32 count = 16; // 16-2047: two bytes\n // 19000-19999: reserved by protobuf\n}\n```\n**Field numbers** identify fields in binary format. Use 1-15 for frequent fields (more efficient). Never reuse numbers."
29
99
  }
30
100
  ]
31
101
  },
32
102
  "well_known_types": {
33
103
  "contents": [
34
104
  {
35
- "value": "```protobuf\nimport \"google/protobuf/timestamp.proto\";\nimport \"google/protobuf/duration.proto\";\nimport \"google/protobuf/empty.proto\";\nimport \"google/protobuf/wrappers.proto\";\nimport \"google/protobuf/any.proto\";\nimport \"google/protobuf/struct.proto\";\n```\n**Well-known types** are pre-defined utility messages. Timestamp for dates, Empty for no-data responses, wrappers for nullable scalars."
105
+ "value": "```protobuf\nimport \"google/protobuf/timestamp.proto\";\nimport \"google/protobuf/duration.proto\";\nimport \"google/protobuf/empty.proto\";\nimport \"google/protobuf/wrappers.proto\";\nimport \"google/protobuf/any.proto\";\nimport \"google/protobuf/struct.proto\";\n```\n**Well-known types** are standard utility messages. Timestamp for dates, Empty for void, wrappers for nullable scalars."
36
106
  }
37
107
  ]
38
108
  },
39
109
  "scalar_types": {
40
110
  "contents": [
41
111
  {
42
- "value": "```protobuf\n// Numeric:\ndouble, float // floating point\nint32, int64 // variable-length signed\nuint32, uint64 // variable-length unsigned\nsint32, sint64 // efficient for negatives\nfixed32, fixed64 // fixed-length unsigned\nsfixed32, sfixed64 // fixed-length signed\n\n// Other:\nbool // true/false\nstring // UTF-8 text\nbytes // raw bytes\n```\n**Scalar types** - choose based on value range and encoding efficiency."
112
+ "value": "```protobuf\n// Numeric: double, float, int32, int64, uint32, uint64\n// sint32, sint64 (efficient for negatives)\n// fixed32, fixed64, sfixed32, sfixed64\n// Other: bool, string, bytes\n```\n**Scalar types** choose based on value range and encoding efficiency."
113
+ }
114
+ ]
115
+ },
116
+ "Timestamp": {
117
+ "contents": [
118
+ {
119
+ "value": "```protobuf\nimport \"google/protobuf/timestamp.proto\";\n\nmessage Event {\n string name = 1;\n google.protobuf.Timestamp created_at = 2;\n}\n```\n**Timestamp** represents a point in time with seconds and nanoseconds since Unix epoch."
120
+ }
121
+ ]
122
+ },
123
+ "Duration": {
124
+ "contents": [
125
+ {
126
+ "value": "```protobuf\nimport \"google/protobuf/duration.proto\";\n\nmessage Config {\n google.protobuf.Duration timeout = 1;\n}\n```\n**Duration** represents a signed length of time with seconds and nanoseconds."
127
+ }
128
+ ]
129
+ },
130
+ "Any": {
131
+ "contents": [
132
+ {
133
+ "value": "```protobuf\nimport \"google/protobuf/any.proto\";\n\nmessage Response {\n google.protobuf.Any data = 1;\n}\n```\n**Any** wraps an arbitrary message with a type URL. Use for polymorphic fields when the type isn't known at compile time."
134
+ }
135
+ ]
136
+ },
137
+ "Empty": {
138
+ "contents": [
139
+ {
140
+ "value": "```protobuf\nimport \"google/protobuf/empty.proto\";\n\nservice MyService {\n rpc Ping(google.protobuf.Empty) returns (google.protobuf.Empty);\n}\n```\n**Empty** represents a message with no fields. Use for RPCs with no meaningful request/response."
141
+ }
142
+ ]
143
+ },
144
+ "Struct": {
145
+ "contents": [
146
+ {
147
+ "value": "```protobuf\nimport \"google/protobuf/struct.proto\";\n\nmessage Config {\n google.protobuf.Struct metadata = 1; // arbitrary JSON-like data\n}\n```\n**Struct** represents untyped JSON-like data. Use when the schema is dynamic or unknown at compile time."
148
+ }
149
+ ]
150
+ },
151
+ "FieldMask": {
152
+ "contents": [
153
+ {
154
+ "value": "```protobuf\nimport \"google/protobuf/field_mask.proto\";\n\nmessage UpdateUserRequest {\n User user = 1;\n google.protobuf.FieldMask update_mask = 2;\n}\n```\n**FieldMask** specifies which fields to update in a partial update request. Standard pattern for PATCH operations."
155
+ }
156
+ ]
157
+ },
158
+ "Wrapper": {
159
+ "contents": [
160
+ {
161
+ "value": "```protobuf\nimport \"google/protobuf/wrappers.proto\";\n\nmessage Config {\n google.protobuf.Int32Value max_retries = 1;\n google.protobuf.StringValue label = 2;\n}\n```\n**Wrapper types** (Int32Value, StringValue, etc.) provide nullable scalars. Absent wrapper = null, present = has value."
162
+ }
163
+ ]
164
+ },
165
+ "double": {
166
+ "contents": [
167
+ {
168
+ "value": "```protobuf\nmessage Point {\n double latitude = 1;\n double longitude = 2;\n}\n```\n**double** is a 64-bit IEEE 754 floating point number. Use for precise decimal values."
169
+ }
170
+ ]
171
+ },
172
+ "float": {
173
+ "contents": [
174
+ {
175
+ "value": "```protobuf\nmessage Sensor {\n float temperature = 1;\n}\n```\n**float** is a 32-bit IEEE 754 floating point. Less precise than double but uses less space."
176
+ }
177
+ ]
178
+ },
179
+ "int32": {
180
+ "contents": [
181
+ {
182
+ "value": "```protobuf\nmessage Item {\n int32 quantity = 1;\n}\n```\n**int32** is a variable-length signed 32-bit integer. Inefficient for negative numbers — use `sint32` for those."
183
+ }
184
+ ]
185
+ },
186
+ "int64": {
187
+ "contents": [
188
+ {
189
+ "value": "```protobuf\nmessage File {\n int64 size_bytes = 1;\n}\n```\n**int64** is a variable-length signed 64-bit integer. Use for large values like file sizes or timestamps."
190
+ }
191
+ ]
192
+ },
193
+ "uint32": {
194
+ "contents": [
195
+ {
196
+ "value": "```protobuf\nmessage Config {\n uint32 port = 1;\n}\n```\n**uint32** is a variable-length unsigned 32-bit integer. Use for values that are always non-negative."
197
+ }
198
+ ]
199
+ },
200
+ "bool": {
201
+ "contents": [
202
+ {
203
+ "value": "```protobuf\nmessage Feature {\n bool enabled = 1;\n}\n```\n**bool** represents true/false. Default value is false in proto3."
204
+ }
205
+ ]
206
+ },
207
+ "string": {
208
+ "contents": [
209
+ {
210
+ "value": "```protobuf\nmessage User {\n string name = 1;\n string email = 2;\n}\n```\n**string** must be valid UTF-8 encoded text. Use `bytes` for arbitrary binary data."
211
+ }
212
+ ]
213
+ },
214
+ "bytes": {
215
+ "contents": [
216
+ {
217
+ "value": "```protobuf\nmessage File {\n bytes content = 1;\n}\n```\n**bytes** holds arbitrary binary data. No UTF-8 requirement. Use for file contents, hashes, etc."
218
+ }
219
+ ]
220
+ },
221
+ "stream": {
222
+ "contents": [
223
+ {
224
+ "value": "```protobuf\nservice Chat {\n rpc Send(stream Message) returns (stream Message);\n}\n```\n**stream** enables streaming in RPCs. Can be on request (client streaming), response (server streaming), or both (bidirectional)."
225
+ }
226
+ ]
227
+ },
228
+ "extend": {
229
+ "contents": [
230
+ {
231
+ "value": "```protobuf\n// Proto2 only:\nextend google.protobuf.MethodOptions {\n optional string auth_level = 50000;\n}\n```\n**extend** adds custom fields to existing messages (proto2). In proto3, use custom options with extensions."
232
+ }
233
+ ]
234
+ },
235
+ "deprecated": {
236
+ "contents": [
237
+ {
238
+ "value": "```protobuf\nmessage User {\n string name = 1;\n string old_email = 2 [deprecated = true];\n string email = 3;\n}\n```\n**[deprecated = true]** marks a field as deprecated. Generates deprecation warnings in client code."
239
+ }
240
+ ]
241
+ },
242
+ "json_name": {
243
+ "contents": [
244
+ {
245
+ "value": "```protobuf\nmessage User {\n string user_name = 1 [json_name = \"userName\"];\n}\n```\n**[json_name]** overrides the JSON field name. By default, proto field names use camelCase in JSON."
246
+ }
247
+ ]
248
+ },
249
+ "default_values": {
250
+ "contents": [
251
+ {
252
+ "value": "```protobuf\n// Proto3 default values:\n// string: \"\" int32: 0 bool: false\n// enum: first value (0)\n// message: null repeated: empty list\n// bytes: empty bytes\n```\n**Default values** in proto3 are always zero/empty. There's no way to distinguish \"not set\" from default without `optional`."
253
+ }
254
+ ]
255
+ },
256
+ "nested_message": {
257
+ "contents": [
258
+ {
259
+ "value": "```protobuf\nmessage Order {\n message LineItem {\n string product = 1;\n int32 quantity = 2;\n }\n repeated LineItem items = 1;\n}\n```\n**Nested messages** are defined inside another message. Referenced as `Order.LineItem` from outside."
260
+ }
261
+ ]
262
+ },
263
+ "encoding": {
264
+ "contents": [
265
+ {
266
+ "value": "```protobuf\n// Wire types:\n// 0: Varint (int32, int64, uint32, uint64, sint32, sint64, bool, enum)\n// 1: 64-bit (fixed64, sfixed64, double)\n// 2: Length-delimited (string, bytes, messages, repeated)\n// 5: 32-bit (fixed32, sfixed32, float)\n```\n**Wire format** uses 5 wire types for binary encoding. Varint encoding makes small numbers compact."
267
+ }
268
+ ]
269
+ },
270
+ "sint32": {
271
+ "contents": [
272
+ {
273
+ "value": "```protobuf\nmessage Delta {\n sint32 offset = 1;\n}\n```\n**sint32** uses ZigZag encoding, making negative values much more compact than `int32`. Use when values are frequently negative."
274
+ }
275
+ ]
276
+ },
277
+ "fixed64": {
278
+ "contents": [
279
+ {
280
+ "value": "```protobuf\nmessage Hash {\n fixed64 value = 1;\n}\n```\n**fixed64** is always 8 bytes. More efficient than `int64` when values are frequently > 2^56."
281
+ }
282
+ ]
283
+ },
284
+ "option_custom": {
285
+ "contents": [
286
+ {
287
+ "value": "```protobuf\nimport \"google/protobuf/descriptor.proto\";\n\nextend google.protobuf.FieldOptions {\n optional bool sensitive = 50000;\n}\n\nmessage User {\n string password = 1 [(sensitive) = true];\n}\n```\n**Custom options** extend built-in options for fields, messages, services, etc. Use high field numbers (50000+)."
43
288
  }
44
289
  ]
45
290
  }
@@ -0,0 +1,173 @@
1
+ {
2
+ "language": "react",
3
+ "hovers": {
4
+ "useState": {
5
+ "contents": [{ "value": "```jsx\nfunction useState<S>(initialState: S | (() => S)): [S, Dispatch<SetStateAction<S>>]\n```\nReturns a stateful value and a function to update it. During the initial render, the returned state matches the passed `initialState`. The `setState` function is used to update the state, triggering a re-render of the component." }]
6
+ },
7
+ "useEffect": {
8
+ "contents": [{ "value": "```jsx\nfunction useEffect(effect: EffectCallback, deps?: DependencyList): void\n```\nAccepts a function that contains imperative, possibly effectful code. Mutations, subscriptions, timers, logging, and other side effects are performed here. The function runs after every completed render by default. Provide a dependency array to control when the effect runs." }]
9
+ },
10
+ "useContext": {
11
+ "contents": [{ "value": "```jsx\nfunction useContext<T>(context: Context<T>): T\n```\nAccepts a context object (from `React.createContext`) and returns the current context value for that context. The value is determined by the `value` prop of the nearest `<MyContext.Provider>` above the calling component." }]
12
+ },
13
+ "useReducer": {
14
+ "contents": [{ "value": "```jsx\nfunction useReducer<R extends Reducer<any, any>>(reducer: R, initialState: ReducerState<R>): [ReducerState<R>, Dispatch<ReducerAction<R>>]\n```\nAn alternative to `useState` for managing complex state logic. Accepts a reducer of type `(state, action) => newState` and returns the current state paired with a `dispatch` method. Preferred when state logic involves multiple sub-values." }]
15
+ },
16
+ "useMemo": {
17
+ "contents": [{ "value": "```jsx\nfunction useMemo<T>(factory: () => T, deps: DependencyList): T\n```\nReturns a memoized value. Only recomputes when one of the dependencies has changed. This optimization helps avoid expensive calculations on every render. The function is called during rendering, so keep it pure." }]
18
+ },
19
+ "useCallback": {
20
+ "contents": [{ "value": "```jsx\nfunction useCallback<T extends Function>(callback: T, deps: DependencyList): T\n```\nReturns a memoized callback function. The callback only changes when one of the dependencies changes. Useful when passing callbacks to optimized child components that rely on reference equality to prevent unnecessary renders." }]
21
+ },
22
+ "useRef": {
23
+ "contents": [{ "value": "```jsx\nfunction useRef<T>(initialValue: T): MutableRefObject<T>\n```\nReturns a mutable ref object whose `.current` property is initialized to the passed argument. The returned object persists for the full lifetime of the component. Commonly used for DOM access and storing mutable values without triggering re-renders." }]
24
+ },
25
+ "useLayoutEffect": {
26
+ "contents": [{ "value": "```jsx\nfunction useLayoutEffect(effect: EffectCallback, deps?: DependencyList): void\n```\nIdentical to `useEffect`, but fires synchronously after all DOM mutations. Use this to read layout from the DOM and synchronously re-render. Updates inside `useLayoutEffect` will be flushed before the browser paints." }]
27
+ },
28
+ "useId": {
29
+ "contents": [{ "value": "```jsx\nfunction useId(): string\n```\nGenerates unique IDs that are stable across server and client. Avoids hydration mismatches. Primarily used for accessibility attributes like `htmlFor` and `aria-describedby`." }]
30
+ },
31
+ "useTransition": {
32
+ "contents": [{ "value": "```jsx\nfunction useTransition(): [boolean, (callback: () => void) => void]\n```\nReturns `[isPending, startTransition]`. Lets you mark state updates as transitions, so they can be interrupted by more urgent updates. `isPending` indicates when a transition is waiting." }]
33
+ },
34
+ "useDeferredValue": {
35
+ "contents": [{ "value": "```jsx\nfunction useDeferredValue<T>(value: T): T\n```\nAccepts a value and returns a deferred version that may lag behind. Useful for keeping the interface responsive when triggering expensive re-renders (e.g., filtering a large list)." }]
36
+ },
37
+ "useSyncExternalStore": {
38
+ "contents": [{ "value": "```jsx\nfunction useSyncExternalStore<T>(subscribe: (onStoreChange: () => void) => () => void, getSnapshot: () => T, getServerSnapshot?: () => T): T\n```\nSubscribes to an external store. Recommended for integrating non-React state management (Redux, Zustand, etc.) with React. Ensures consistent reads during concurrent rendering." }]
39
+ },
40
+ "useImperativeHandle": {
41
+ "contents": [{ "value": "```jsx\nfunction useImperativeHandle<T>(ref: Ref<T>, createHandle: () => T, deps?: DependencyList): void\n```\nCustomizes the instance value that is exposed to parent components when using `ref`. Should be used with `forwardRef`. Controls which methods or values parents can access." }]
42
+ },
43
+ "useDebugValue": {
44
+ "contents": [{ "value": "```jsx\nfunction useDebugValue<T>(value: T, format?: (value: T) => any): void\n```\nDisplays a label for custom hooks in React DevTools. Optionally accepts a formatting function to defer expensive formatting until the hook is inspected." }]
45
+ },
46
+ "useInsertionEffect": {
47
+ "contents": [{ "value": "```jsx\nfunction useInsertionEffect(effect: EffectCallback, deps?: DependencyList): void\n```\nFires synchronously before all DOM mutations. Designed for CSS-in-JS libraries to inject `<style>` rules before any layout effects read from the DOM." }]
48
+ },
49
+ "useOptimistic": {
50
+ "contents": [{ "value": "```jsx\nfunction useOptimistic<T, A>(passthrough: T, reducer: (state: T, action: A) => T): [T, (action: A) => void]\n```\nAllows optimistic UI updates while an async action is underway. Shows the optimistic state immediately, then reverts or updates when the async operation completes." }]
51
+ },
52
+ "useFormStatus": {
53
+ "contents": [{ "value": "```jsx\nfunction useFormStatus(): { pending: boolean; data: FormData | null; method: string | null; action: string | null }\n```\nGives status information of the last form submission. Must be called from a component rendered inside a `<form>`. Useful for disabling submit buttons during pending submissions." }]
54
+ },
55
+ "useActionState": {
56
+ "contents": [{ "value": "```jsx\nfunction useActionState<T>(action: (state: T, payload: FormData) => T | Promise<T>, initialState: T, permalink?: string): [T, (payload: FormData) => void]\n```\nUpdates state based on the result of a form action. Returns the current state and a wrapped action function. The action can be async and the state updates once it resolves." }]
57
+ },
58
+ "use": {
59
+ "contents": [{ "value": "```jsx\nfunction use<T>(resource: Promise<T> | Context<T>): T\n```\nReads the value of a resource like a Promise or context. Unlike other hooks, `use` can be called conditionally and inside loops. When called with a Promise, it integrates with Suspense and Error Boundaries." }]
60
+ },
61
+ "createElement": {
62
+ "contents": [{ "value": "```jsx\nfunction createElement(type: string | ComponentType, props?: object | null, ...children: ReactNode[]): ReactElement\n```\nCreates and returns a new React element of the given type. The type can be a tag name string (`'div'`), a React component type (class or function), or a React Fragment. JSX compiles to `createElement` calls." }]
63
+ },
64
+ "cloneElement": {
65
+ "contents": [{ "value": "```jsx\nfunction cloneElement(element: ReactElement, props?: object, ...children: ReactNode[]): ReactElement\n```\nClone and return a new React element using `element` as the starting point. New props are shallowly merged with the original. New children replace existing children." }]
66
+ },
67
+ "createContext": {
68
+ "contents": [{ "value": "```jsx\nfunction createContext<T>(defaultValue: T): Context<T>\n```\nCreates a Context object. When React renders a component that subscribes to this Context, it reads the current value from the closest matching `Provider` above it in the tree. The `defaultValue` is used when there is no matching Provider." }]
69
+ },
70
+ "forwardRef": {
71
+ "contents": [{ "value": "```jsx\nfunction forwardRef<T, P>(render: (props: P, ref: Ref<T>) => ReactElement | null): ForwardRefExoticComponent<P & RefAttributes<T>>\n```\nCreates a React component that forwards the `ref` attribute to a child component. Allows parent components to access a child's DOM element or component instance." }]
72
+ },
73
+ "lazy": {
74
+ "contents": [{ "value": "```jsx\nfunction lazy<T extends ComponentType<any>>(factory: () => Promise<{ default: T }>): LazyExoticComponent<T>\n```\nDefines a component that is loaded dynamically. Takes a function that returns a `Promise` resolving to a module with a `default` export containing a React component. Must be wrapped in `<Suspense>`." }]
75
+ },
76
+ "memo": {
77
+ "contents": [{ "value": "```jsx\nfunction memo<P>(Component: FunctionComponent<P>, propsAreEqual?: (prev: P, next: P) => boolean): NamedExoticComponent<P>\n```\nHigher-order component that memoizes results. If props are the same, React skips rendering the component and reuses the last result. Optionally accepts a custom comparison function." }]
78
+ },
79
+ "startTransition": {
80
+ "contents": [{ "value": "```jsx\nfunction startTransition(scope: () => void): void\n```\nMarks state updates inside the provided callback as transitions. Transitions are non-urgent and can be interrupted by more pressing updates (like typing), keeping the UI responsive." }]
81
+ },
82
+ "createPortal": {
83
+ "contents": [{ "value": "```jsx\nfunction createPortal(children: ReactNode, container: Element | DocumentFragment, key?: string): ReactPortal\n```\nCreates a portal that renders `children` into a DOM node (`container`) outside the parent component's DOM hierarchy. Events still bubble through the React tree, not the DOM tree." }]
84
+ },
85
+ "createRoot": {
86
+ "contents": [{ "value": "```jsx\nfunction createRoot(container: Element | DocumentFragment, options?: RootOptions): Root\n```\nCreates a React root for displaying content inside a browser DOM node. The React 18+ entry point. Call `root.render(<App />)` to display your application." }]
87
+ },
88
+ "hydrateRoot": {
89
+ "contents": [{ "value": "```jsx\nfunction hydrateRoot(container: Element | Document, initialChildren: ReactNode, options?: HydrateRootOptions): Root\n```\nHydrates a server-rendered container. React attaches event listeners and takes over management of the HTML generated by `react-dom/server`, making it interactive." }]
90
+ },
91
+ "flushSync": {
92
+ "contents": [{ "value": "```jsx\nfunction flushSync<R>(fn: () => R): R\n```\nForces React to flush any state updates inside the provided callback synchronously. The DOM is updated immediately. Use sparingly — `flushSync` can significantly hurt performance." }]
93
+ },
94
+ "Fragment": {
95
+ "contents": [{ "value": "```jsx\n<Fragment>children</Fragment>\n// or shorthand:\n<>children</>\n```\nLets you group elements without a wrapper DOM node. The short syntax `<>...</>` is equivalent to `<Fragment>...</Fragment>` but doesn't support the `key` prop." }]
96
+ },
97
+ "StrictMode": {
98
+ "contents": [{ "value": "```jsx\n<StrictMode>children</StrictMode>\n```\nActivates additional development-only checks for the component tree. Components re-render twice, effects run twice, and deprecated APIs trigger warnings. Helps find common bugs early." }]
99
+ },
100
+ "Suspense": {
101
+ "contents": [{ "value": "```jsx\n<Suspense fallback={<Loading />}>children</Suspense>\n```\nDisplays the `fallback` while its children are loading (lazy components, data fetching with Suspense-enabled frameworks). When loading completes, the `fallback` is replaced with the actual content." }]
102
+ },
103
+ "Profiler": {
104
+ "contents": [{ "value": "```jsx\n<Profiler id=\"name\" onRender={callback}>children</Profiler>\n```\nMeasures rendering performance of a React tree. The `onRender` callback receives `(id, phase, actualDuration, baseDuration, startTime, commitTime)` for each commit." }]
105
+ },
106
+ "Component": {
107
+ "contents": [{ "value": "```jsx\nclass MyComponent extends React.Component<Props, State> {\n render() { return <div />; }\n}\n```\nBase class for React class components. Provides lifecycle methods, `this.state`, `this.props`, and `this.setState()`. Function components with hooks are now the recommended approach." }]
108
+ },
109
+ "PureComponent": {
110
+ "contents": [{ "value": "```jsx\nclass MyComponent extends React.PureComponent<Props, State> {\n render() { return <div />; }\n}\n```\nSimilar to `Component` but implements `shouldComponentUpdate()` with a shallow prop and state comparison. Skips re-renders when props and state are shallowly equal." }]
111
+ },
112
+ "Children": {
113
+ "contents": [{ "value": "```jsx\nReact.Children.map(children, fn)\nReact.Children.forEach(children, fn)\nReact.Children.count(children)\nReact.Children.only(children)\nReact.Children.toArray(children)\n```\nUtilities for working with the opaque `children` data structure. Provides safe iteration and transformation methods that handle all children types (single elements, arrays, fragments)." }]
114
+ },
115
+ "Children.map": {
116
+ "contents": [{ "value": "```jsx\nReact.Children.map(children: ReactNode, fn: (child: ReactNode, index: number) => ReactNode): ReactNode[]\n```\nInvokes a function on every immediate child contained within `children`. Returns a flat array with keys assigned. Returns `null` or `undefined` if children is `null` or `undefined`." }]
117
+ },
118
+ "Children.forEach": {
119
+ "contents": [{ "value": "```jsx\nReact.Children.forEach(children: ReactNode, fn: (child: ReactNode, index: number) => void): void\n```\nLike `React.Children.map()` but does not return an array. Iterates over children for side effects only." }]
120
+ },
121
+ "Children.count": {
122
+ "contents": [{ "value": "```jsx\nReact.Children.count(children: ReactNode): number\n```\nReturns the total number of components in `children`, equal to the number of times a callback passed to `map` or `forEach` would be invoked." }]
123
+ },
124
+ "Children.only": {
125
+ "contents": [{ "value": "```jsx\nReact.Children.only(children: ReactNode): ReactElement\n```\nVerifies that `children` has only one child (a React element) and returns it. Throws an error if children has multiple children or is not a React element." }]
126
+ },
127
+ "Children.toArray": {
128
+ "contents": [{ "value": "```jsx\nReact.Children.toArray(children: ReactNode): ReactNode[]\n```\nReturns the `children` opaque data structure as a flat array with keys assigned to each child. Useful for manipulating children before passing them down." }]
129
+ },
130
+ "isValidElement": {
131
+ "contents": [{ "value": "```jsx\nfunction isValidElement(object: any): object is ReactElement\n```\nVerifies the object is a React element (created by `createElement`, JSX, or `cloneElement`). Returns `true` for React elements, `false` for everything else." }]
132
+ },
133
+ "cache": {
134
+ "contents": [{ "value": "```jsx\nfunction cache<T extends Function>(fn: T): T\n```\nWraps a function to cache its result. When the cached function is called with the same arguments, it returns the previous result without re-executing. Primarily used with React Server Components." }]
135
+ },
136
+ "experimental_taintObjectReference": {
137
+ "contents": [{ "value": "```jsx\nfunction experimental_taintObjectReference(message: string, object: object): void\n```\nPrevents a specific object instance from being passed to a Client Component. If someone tries, React throws an error with the provided `message`. A security feature for Server Components." }]
138
+ },
139
+ "renderToString": {
140
+ "contents": [{ "value": "```jsx\nfunction renderToString(element: ReactElement): string\n```\nRenders a React tree to an HTML string. Does not support Suspense streaming. On the client, call `hydrateRoot` to make the HTML interactive. Prefer `renderToPipeableStream` for streaming SSR." }]
141
+ },
142
+ "renderToStaticMarkup": {
143
+ "contents": [{ "value": "```jsx\nfunction renderToStaticMarkup(element: ReactElement): string\n```\nRenders a non-interactive React tree to an HTML string. The output has no React-specific attributes and cannot be hydrated. Use for generating static HTML like emails." }]
144
+ },
145
+ "renderToPipeableStream": {
146
+ "contents": [{ "value": "```jsx\nfunction renderToPipeableStream(element: ReactNode, options?: RenderToPipeableStreamOptions): PipeableStream\n```\nRenders a React tree to a pipeable Node.js Stream with full Suspense support. Returns `{ pipe, abort }`. This is the recommended SSR API for Node.js." }]
147
+ },
148
+ "renderToReadableStream": {
149
+ "contents": [{ "value": "```jsx\nfunction renderToReadableStream(element: ReactNode, options?: RenderToReadableStreamOptions): Promise<ReadableStream>\n```\nRenders a React tree to a Web Readable Stream. Returns a Promise that resolves to a ReadableStream. For edge runtimes and Deno." }]
150
+ },
151
+ "preload": {
152
+ "contents": [{ "value": "```jsx\nfunction preload(href: string, options: { as: string }): void\n```\nEagerly fetches a resource (stylesheet, font, script). Call from a component to start loading a resource before it's actually needed." }]
153
+ },
154
+ "prefetchDNS": {
155
+ "contents": [{ "value": "```jsx\nfunction prefetchDNS(href: string): void\n```\nEagerly looks up the IP of a server that you expect to load resources from. Reduces latency for future requests." }]
156
+ },
157
+ "preconnect": {
158
+ "contents": [{ "value": "```jsx\nfunction preconnect(href: string, options?: { crossOrigin?: string }): void\n```\nEagerly connects to a server (DNS + TCP + TLS). Reduces latency for future resource loads from that server." }]
159
+ },
160
+ "preinit": {
161
+ "contents": [{ "value": "```jsx\nfunction preinit(href: string, options: { as: 'style' | 'script' }): void\n```\nEagerly fetches and evaluates a stylesheet or external script. The resource is loaded and executed immediately." }]
162
+ },
163
+ "act": {
164
+ "contents": [{ "value": "```jsx\nawait act(async () => { /* trigger updates */ });\n```\nWraps code that causes React state updates. Ensures all updates, effects, and state changes are processed before assertions. Essential for reliable React testing." }]
165
+ },
166
+ "unmountComponentAtNode": {
167
+ "contents": [{ "value": "```jsx\nfunction unmountComponentAtNode(container: Element): boolean\n```\n**Legacy API**. Removes a mounted React component from the DOM. Use `root.unmount()` with `createRoot` instead. Returns `true` if a component was unmounted." }]
168
+ },
169
+ "findDOMNode": {
170
+ "contents": [{ "value": "```jsx\nfunction findDOMNode(instance: Component): Element | null\n```\n**Legacy API**. Finds the browser DOM node for a class component instance. Use refs instead. Not supported in StrictMode." }]
171
+ }
172
+ }
173
+ }