@enjoys/context-engine 1.2.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/data/codeActions/angular.json +126 -0
  2. package/data/codeActions/css.json +111 -0
  3. package/data/codeActions/nestjs.json +124 -0
  4. package/data/codeActions/nextjs.json +198 -0
  5. package/data/codeActions/react.json +154 -0
  6. package/data/codeActions/shadcn.json +112 -0
  7. package/data/codeActions/shell.json +169 -26
  8. package/data/codeActions/tailwindcss.json +76 -0
  9. package/data/codeLens/angular.json +22 -0
  10. package/data/codeLens/css.json +68 -0
  11. package/data/codeLens/nestjs.json +21 -0
  12. package/data/codeLens/nextjs.json +117 -0
  13. package/data/codeLens/react.json +89 -0
  14. package/data/codeLens/shadcn.json +89 -0
  15. package/data/codeLens/shell.json +59 -17
  16. package/data/codeLens/tailwindcss.json +103 -0
  17. package/data/color/angular.json +21 -0
  18. package/data/color/css.json +124 -0
  19. package/data/color/nestjs.json +18 -0
  20. package/data/color/nextjs.json +22 -0
  21. package/data/color/react.json +93 -0
  22. package/data/color/shadcn.json +66 -0
  23. package/data/color/shell.json +106 -80
  24. package/data/color/tailwindcss.json +53 -0
  25. package/data/commands/angular.json +312 -0
  26. package/data/commands/css.json +41 -0
  27. package/data/commands/manifest.json +734 -727
  28. package/data/commands/nestjs.json +273 -0
  29. package/data/commands/nextjs.json +123 -0
  30. package/data/commands/react.json +210 -0
  31. package/data/commands/shadcn.json +410 -0
  32. package/data/commands/shell.json +571 -41
  33. package/data/commands/tailwindcss.json +53 -0
  34. package/data/completion/angular.json +1490 -0
  35. package/data/completion/css.json +1176 -0
  36. package/data/completion/javascript.json +27 -0
  37. package/data/completion/nestjs.json +1454 -0
  38. package/data/completion/nextjs.json +1373 -0
  39. package/data/completion/react.json +1319 -0
  40. package/data/completion/redis-cli.json +1 -1
  41. package/data/completion/shadcn.json +1202 -0
  42. package/data/completion/shell.json +2446 -510
  43. package/data/completion/tailwindcss.json +284 -0
  44. package/data/completion/typescript.json +27 -0
  45. package/data/declaration/angular.json +46 -0
  46. package/data/declaration/css.json +59 -0
  47. package/data/declaration/nestjs.json +47 -0
  48. package/data/declaration/nextjs.json +274 -0
  49. package/data/declaration/react.json +199 -0
  50. package/data/declaration/shadcn.json +211 -0
  51. package/data/declaration/shell.json +343 -24
  52. package/data/declaration/tailwindcss.json +137 -0
  53. package/data/definition/angular.json +670 -0
  54. package/data/definition/css.json +115 -0
  55. package/data/definition/nestjs.json +684 -0
  56. package/data/definition/nextjs.json +439 -0
  57. package/data/definition/react.json +397 -0
  58. package/data/definition/redis-cli.json +1 -1
  59. package/data/definition/shadcn.json +99 -0
  60. package/data/definition/shell.json +820 -0
  61. package/data/definition/tailwindcss.json +115 -0
  62. package/data/documentHighlight/angular.json +414 -0
  63. package/data/documentHighlight/css.json +125 -0
  64. package/data/documentHighlight/nestjs.json +115 -0
  65. package/data/documentHighlight/nextjs.json +212 -0
  66. package/data/documentHighlight/react.json +119 -0
  67. package/data/documentHighlight/shadcn.json +168 -0
  68. package/data/documentHighlight/shell.json +664 -334
  69. package/data/documentHighlight/tailwindcss.json +160 -0
  70. package/data/documentRangeFormatting/angular.json +45 -0
  71. package/data/documentRangeFormatting/css.json +101 -0
  72. package/data/documentRangeFormatting/nestjs.json +17 -0
  73. package/data/documentRangeFormatting/nextjs.json +17 -0
  74. package/data/documentRangeFormatting/react.json +78 -0
  75. package/data/documentRangeFormatting/shadcn.json +45 -0
  76. package/data/documentRangeFormatting/shell.json +120 -53
  77. package/data/documentRangeFormatting/tailwindcss.json +55 -0
  78. package/data/documentSymbol/angular.json +180 -0
  79. package/data/documentSymbol/css.json +96 -0
  80. package/data/documentSymbol/nestjs.json +152 -0
  81. package/data/documentSymbol/nextjs.json +159 -0
  82. package/data/documentSymbol/react.json +145 -0
  83. package/data/documentSymbol/shadcn.json +131 -0
  84. package/data/documentSymbol/shell.json +166 -26
  85. package/data/documentSymbol/tailwindcss.json +110 -0
  86. package/data/foldingRange/angular.json +99 -0
  87. package/data/foldingRange/css.json +66 -0
  88. package/data/foldingRange/nestjs.json +26 -0
  89. package/data/foldingRange/nextjs.json +26 -0
  90. package/data/foldingRange/react.json +120 -0
  91. package/data/foldingRange/shadcn.json +93 -0
  92. package/data/foldingRange/shell.json +106 -46
  93. package/data/foldingRange/tailwindcss.json +60 -0
  94. package/data/formatting/angular.json +21 -0
  95. package/data/formatting/css.json +73 -0
  96. package/data/formatting/nestjs.json +23 -0
  97. package/data/formatting/nextjs.json +23 -0
  98. package/data/formatting/react.json +71 -0
  99. package/data/formatting/shadcn.json +61 -0
  100. package/data/formatting/shell.json +103 -19
  101. package/data/formatting/tailwindcss.json +48 -0
  102. package/data/hover/angular.json +455 -0
  103. package/data/hover/css.json +300 -0
  104. package/data/hover/nestjs.json +296 -0
  105. package/data/hover/nextjs.json +305 -0
  106. package/data/hover/react.json +173 -0
  107. package/data/hover/redis-cli.json +1 -1
  108. package/data/hover/shadcn.json +450 -0
  109. package/data/hover/shell.json +684 -75
  110. package/data/hover/tailwindcss.json +968 -0
  111. package/data/implementation/angular.json +22 -0
  112. package/data/implementation/css.json +65 -0
  113. package/data/implementation/nestjs.json +24 -0
  114. package/data/implementation/nextjs.json +137 -0
  115. package/data/implementation/react.json +125 -0
  116. package/data/implementation/shadcn.json +89 -0
  117. package/data/implementation/shell.json +59 -3
  118. package/data/implementation/tailwindcss.json +59 -0
  119. package/data/inlayHints/angular.json +24 -0
  120. package/data/inlayHints/css.json +87 -0
  121. package/data/inlayHints/nestjs.json +24 -0
  122. package/data/inlayHints/nextjs.json +143 -0
  123. package/data/inlayHints/react.json +177 -0
  124. package/data/inlayHints/shadcn.json +109 -0
  125. package/data/inlayHints/shell.json +223 -35
  126. package/data/inlayHints/tailwindcss.json +111 -0
  127. package/data/inlineCompletions/angular.json +135 -0
  128. package/data/inlineCompletions/css.json +125 -0
  129. package/data/inlineCompletions/javascript.json +12 -0
  130. package/data/inlineCompletions/nestjs.json +25 -0
  131. package/data/inlineCompletions/nextjs.json +179 -0
  132. package/data/inlineCompletions/react.json +203 -0
  133. package/data/inlineCompletions/shadcn.json +115 -0
  134. package/data/inlineCompletions/shell.json +185 -35
  135. package/data/inlineCompletions/tailwindcss.json +411 -0
  136. package/data/inlineCompletions/typescript.json +12 -0
  137. package/data/linkedEditingRange/angular.json +23 -0
  138. package/data/linkedEditingRange/css.json +40 -0
  139. package/data/linkedEditingRange/nestjs.json +10 -0
  140. package/data/linkedEditingRange/nextjs.json +11 -0
  141. package/data/linkedEditingRange/react.json +75 -0
  142. package/data/linkedEditingRange/shadcn.json +23 -0
  143. package/data/linkedEditingRange/shell.json +25 -25
  144. package/data/linkedEditingRange/tailwindcss.json +30 -0
  145. package/data/links/angular.json +95 -0
  146. package/data/links/css.json +55 -0
  147. package/data/links/nestjs.json +130 -0
  148. package/data/links/nextjs.json +91 -0
  149. package/data/links/react.json +75 -0
  150. package/data/links/shadcn.json +98 -0
  151. package/data/links/shell.json +56 -0
  152. package/data/links/tailwindcss.json +65 -0
  153. package/data/manifest.json +399 -150
  154. package/data/onTypeFormatting/angular.json +14 -0
  155. package/data/onTypeFormatting/css.json +82 -0
  156. package/data/onTypeFormatting/nestjs.json +16 -0
  157. package/data/onTypeFormatting/nextjs.json +17 -0
  158. package/data/onTypeFormatting/react.json +127 -0
  159. package/data/onTypeFormatting/shadcn.json +54 -0
  160. package/data/onTypeFormatting/shell.json +72 -68
  161. package/data/onTypeFormatting/tailwindcss.json +63 -0
  162. package/data/rangeSemanticTokens/angular.json +140 -0
  163. package/data/rangeSemanticTokens/css.json +125 -0
  164. package/data/rangeSemanticTokens/nestjs.json +27 -0
  165. package/data/rangeSemanticTokens/nextjs.json +28 -0
  166. package/data/rangeSemanticTokens/react.json +216 -0
  167. package/data/rangeSemanticTokens/shadcn.json +140 -0
  168. package/data/rangeSemanticTokens/shell.json +247 -69
  169. package/data/rangeSemanticTokens/tailwindcss.json +186 -0
  170. package/data/references/angular.json +26 -0
  171. package/data/references/css.json +65 -0
  172. package/data/references/nestjs.json +24 -0
  173. package/data/references/nextjs.json +178 -0
  174. package/data/references/react.json +192 -0
  175. package/data/references/shadcn.json +101 -0
  176. package/data/references/shell.json +323 -92
  177. package/data/references/tailwindcss.json +125 -0
  178. package/data/rename/angular.json +131 -0
  179. package/data/rename/css.json +91 -0
  180. package/data/rename/nestjs.json +32 -0
  181. package/data/rename/nextjs.json +31 -0
  182. package/data/rename/react.json +88 -0
  183. package/data/rename/shadcn.json +79 -0
  184. package/data/rename/shell.json +101 -31
  185. package/data/rename/tailwindcss.json +58 -0
  186. package/data/selectionRange/angular.json +95 -0
  187. package/data/selectionRange/css.json +55 -0
  188. package/data/selectionRange/nestjs.json +21 -0
  189. package/data/selectionRange/nextjs.json +22 -0
  190. package/data/selectionRange/react.json +87 -0
  191. package/data/selectionRange/shadcn.json +89 -0
  192. package/data/selectionRange/shell.json +65 -35
  193. package/data/selectionRange/tailwindcss.json +35 -0
  194. package/data/semanticTokens/angular.json +198 -0
  195. package/data/semanticTokens/css.json +107 -0
  196. package/data/semanticTokens/nestjs.json +35 -0
  197. package/data/semanticTokens/nextjs.json +38 -0
  198. package/data/semanticTokens/react.json +215 -0
  199. package/data/semanticTokens/shadcn.json +180 -0
  200. package/data/semanticTokens/shell.json +238 -65
  201. package/data/semanticTokens/tailwindcss.json +161 -0
  202. package/data/signatureHelp/angular.json +182 -0
  203. package/data/signatureHelp/css.json +137 -0
  204. package/data/signatureHelp/nestjs.json +128 -0
  205. package/data/signatureHelp/nextjs.json +127 -0
  206. package/data/signatureHelp/react.json +281 -0
  207. package/data/signatureHelp/shadcn.json +237 -0
  208. package/data/signatureHelp/shell.json +797 -104
  209. package/data/signatureHelp/tailwindcss.json +64 -0
  210. package/data/typeDefinition/angular.json +362 -0
  211. package/data/typeDefinition/css.json +53 -0
  212. package/data/typeDefinition/nestjs.json +334 -0
  213. package/data/typeDefinition/nextjs.json +285 -0
  214. package/data/typeDefinition/react.json +236 -0
  215. package/data/typeDefinition/shadcn.json +292 -0
  216. package/data/typeDefinition/shell.json +104 -40
  217. package/data/typeDefinition/tailwindcss.json +47 -0
  218. package/package.json +1 -1
  219. package/data/codeActions/bash.json +0 -169
  220. package/data/codeActions/zsh.json +0 -49
  221. package/data/codeLens/bash.json +0 -75
  222. package/data/codeLens/zsh.json +0 -19
  223. package/data/color/bash.json +0 -100
  224. package/data/color/zsh.json +0 -80
  225. package/data/commands/bash.json +0 -102
  226. package/data/commands/zsh.json +0 -166
  227. package/data/completion/bash.json +0 -1184
  228. package/data/completion/zsh.json +0 -973
  229. package/data/declaration/bash.json +0 -301
  230. package/data/declaration/zsh.json +0 -205
  231. package/data/definition/bash.json +0 -565
  232. package/data/definition/zsh.json +0 -350
  233. package/data/documentHighlight/bash.json +0 -393
  234. package/data/documentHighlight/zsh.json +0 -266
  235. package/data/documentRangeFormatting/bash.json +0 -41
  236. package/data/documentRangeFormatting/zsh.json +0 -59
  237. package/data/documentSymbol/bash.json +0 -124
  238. package/data/documentSymbol/zsh.json +0 -26
  239. package/data/foldingRange/bash.json +0 -76
  240. package/data/foldingRange/zsh.json +0 -46
  241. package/data/formatting/bash.json +0 -88
  242. package/data/formatting/zsh.json +0 -28
  243. package/data/hover/bash.json +0 -579
  244. package/data/hover/zsh.json +0 -96
  245. package/data/implementation/bash.json +0 -44
  246. package/data/implementation/zsh.json +0 -41
  247. package/data/inlayHints/bash.json +0 -207
  248. package/data/inlayHints/zsh.json +0 -43
  249. package/data/inlineCompletions/bash.json +0 -155
  250. package/data/inlineCompletions/zsh.json +0 -17
  251. package/data/linkedEditingRange/bash.json +0 -25
  252. package/data/linkedEditingRange/zsh.json +0 -25
  253. package/data/links/bash.json +0 -56
  254. package/data/links/zsh.json +0 -15
  255. package/data/onTypeFormatting/bash.json +0 -68
  256. package/data/onTypeFormatting/zsh.json +0 -68
  257. package/data/rangeSemanticTokens/bash.json +0 -90
  258. package/data/rangeSemanticTokens/zsh.json +0 -76
  259. package/data/references/bash.json +0 -221
  260. package/data/references/zsh.json +0 -166
  261. package/data/rename/bash.json +0 -37
  262. package/data/rename/zsh.json +0 -31
  263. package/data/selectionRange/bash.json +0 -35
  264. package/data/selectionRange/zsh.json +0 -35
  265. package/data/semanticTokens/bash.json +0 -71
  266. package/data/semanticTokens/zsh.json +0 -71
  267. package/data/signatureHelp/bash.json +0 -111
  268. package/data/signatureHelp/zsh.json +0 -118
  269. package/data/typeDefinition/bash.json +0 -95
  270. package/data/typeDefinition/zsh.json +0 -40
@@ -0,0 +1,66 @@
1
+ {
2
+ "language": "css",
3
+ "foldingRules": [
4
+ {
5
+ "startPattern": "\\{\\s*$",
6
+ "endPattern": "^\\s*\\}",
7
+ "kind": "region",
8
+ "description": "CSS rule block. Folds the content between opening { and closing } braces of any CSS rule (selectors, at-rules)."
9
+ },
10
+ {
11
+ "startPattern": "@media\\s+[^{]+\\{\\s*$",
12
+ "endPattern": "^\\s*\\}",
13
+ "kind": "region",
14
+ "description": "@media query block. Folds the entire media query including all nested rules within it."
15
+ },
16
+ {
17
+ "startPattern": "@keyframes\\s+[a-zA-Z_][a-zA-Z0-9_-]*\\s*\\{\\s*$",
18
+ "endPattern": "^\\s*\\}",
19
+ "kind": "region",
20
+ "description": "@keyframes animation block. Folds the animation definition including all keyframe percentage stops."
21
+ },
22
+ {
23
+ "startPattern": "@supports\\s+[^{]+\\{\\s*$",
24
+ "endPattern": "^\\s*\\}",
25
+ "kind": "region",
26
+ "description": "@supports feature query block. Folds the conditional styles applied based on browser feature support."
27
+ },
28
+ {
29
+ "startPattern": "@layer\\s+[a-zA-Z_][a-zA-Z0-9_-]*\\s*\\{\\s*$",
30
+ "endPattern": "^\\s*\\}",
31
+ "kind": "region",
32
+ "description": "@layer cascade layer block. Folds all rules assigned to a cascade layer."
33
+ },
34
+ {
35
+ "startPattern": "@container\\s+[^{]*\\{\\s*$",
36
+ "endPattern": "^\\s*\\}",
37
+ "kind": "region",
38
+ "description": "@container query block. Folds container query rules based on container element size."
39
+ },
40
+ {
41
+ "startPattern": "@font-face\\s*\\{\\s*$",
42
+ "endPattern": "^\\s*\\}",
43
+ "kind": "region",
44
+ "description": "@font-face block. Folds the font face definition including all descriptors."
45
+ },
46
+ {
47
+ "startPattern": "/\\*",
48
+ "endPattern": "\\*/",
49
+ "kind": "comment",
50
+ "description": "Multi-line CSS comment. Folds content between /* and */ delimiters."
51
+ },
52
+ {
53
+ "startPattern": "/\\*\\s*#region\\b",
54
+ "endPattern": "/\\*\\s*#endregion\\b",
55
+ "kind": "region",
56
+ "description": "Custom region markers. Folds content between /* #region */ and /* #endregion */ comments for manual code organization."
57
+ },
58
+ {
59
+ "startPattern": "@scope\\s*[^{]*\\{\\s*$",
60
+ "endPattern": "^\\s*\\}",
61
+ "kind": "region",
62
+ "description": "@scope block (CSS Scoping). Folds scoped style rules that limit selector matching to a subtree."
63
+ }
64
+ ],
65
+ "offSide": false
66
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "language": "nestjs",
3
+ "foldingRanges": {
4
+ "markers": {
5
+ "start": "^\\s*(?:\\/\\/\\s*#?region\\b)",
6
+ "end": "^\\s*(?:\\/\\/\\s*#?endregion\\b)"
7
+ },
8
+ "offSide": false,
9
+ "patterns": [
10
+ { "description": "Import block", "startPattern": "^import\\s+", "endPattern": "^(?!import\\s|\\s*$)", "kind": "imports" },
11
+ { "description": "Decorator + class block", "startPattern": "@(Controller|Injectable|Module|Catch|WebSocketGateway)\\(", "endPattern": "^\\}", "kind": "region" },
12
+ { "description": "Method with decorator", "startPattern": "@(Get|Post|Put|Patch|Delete|Head|Options|All)\\([^)]*\\)\\s*$", "endPattern": "^\\s*\\}", "kind": "region" },
13
+ { "description": "Class body", "startPattern": "class\\s+\\w+[^{]*\\{\\s*$", "endPattern": "^\\}", "kind": "region" },
14
+ { "description": "Function body", "startPattern": "(?:async\\s+)?\\w+\\s*\\([^)]*\\)[^{]*\\{\\s*$", "endPattern": "^\\s*\\}", "kind": "region" },
15
+ { "description": "Arrow function body", "startPattern": "=>\\s*\\{\\s*$", "endPattern": "^\\s*\\};?", "kind": "region" },
16
+ { "description": "Module metadata object", "startPattern": "@Module\\(\\{", "endPattern": "\\}\\)", "kind": "region" },
17
+ { "description": "Object literal", "startPattern": "(?:const|let|export)\\s+\\w+.*=\\s*\\{\\s*$", "endPattern": "^\\s*\\};?", "kind": "region" },
18
+ { "description": "JSDoc block", "startPattern": "^\\s*\\/\\*\\*", "endPattern": "\\*\\/\\s*$", "kind": "comment" },
19
+ { "description": "Multi-line comment", "startPattern": "^\\s*\\/\\*(?!\\*)", "endPattern": "\\*\\/\\s*$", "kind": "comment" },
20
+ { "description": "Try-catch block", "startPattern": "\\btry\\s*\\{\\s*$", "endPattern": "^\\s*\\}\\s*(?:catch|finally)", "kind": "region" },
21
+ { "description": "Describe test block", "startPattern": "describe\\(['\"]", "endPattern": "^\\});", "kind": "region" },
22
+ { "description": "It test block", "startPattern": "it\\(['\"]", "endPattern": "^\\s*\\});", "kind": "region" },
23
+ { "description": "Switch statement", "startPattern": "switch\\s*\\([^)]*\\)\\s*\\{", "endPattern": "^\\s*\\}", "kind": "region" }
24
+ ]
25
+ }
26
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "language": "nextjs",
3
+ "foldingRanges": {
4
+ "markers": {
5
+ "start": "^\\s*(?:\\/\\/\\s*#?region\\b|\\{\\s*\\/\\*\\s*region\\b)",
6
+ "end": "^\\s*(?:\\/\\/\\s*#?endregion\\b|\\{?\\s*\\/\\*\\s*endregion\\b)"
7
+ },
8
+ "offSide": false,
9
+ "patterns": [
10
+ { "description": "Import block", "startPattern": "^import\\s+", "endPattern": "^(?!import\\s|\\s*$)", "kind": "imports" },
11
+ { "description": "JSX element block", "startPattern": "<([A-Z][a-zA-Z0-9.]*)[^>]*>\\s*$", "endPattern": "<\\/\\1>", "kind": "region" },
12
+ { "description": "Function/component body", "startPattern": "(?:export\\s+(?:default\\s+)?)?(?:async\\s+)?function\\s+\\w+[^{]*\\{\\s*$", "endPattern": "^\\}", "kind": "region" },
13
+ { "description": "Arrow function body", "startPattern": "(?:const|let)\\s+\\w+\\s*=.*=>\\s*\\{\\s*$", "endPattern": "^\\s*\\};?\\s*$", "kind": "region" },
14
+ { "description": "Object/config literal", "startPattern": "(?:const|export\\s+const)\\s+\\w+.*=\\s*\\{\\s*$", "endPattern": "^\\s*\\};?\\s*$", "kind": "region" },
15
+ { "description": "JSDoc comment block", "startPattern": "^\\s*\\/\\*\\*", "endPattern": "\\*\\/\\s*$", "kind": "comment" },
16
+ { "description": "Multi-line comment", "startPattern": "^\\s*\\/\\*(?!\\*)", "endPattern": "\\*\\/\\s*$", "kind": "comment" },
17
+ { "description": "Return statement with JSX", "startPattern": "return\\s*\\(\\s*$", "endPattern": "^\\s*\\);?\\s*$", "kind": "region" },
18
+ { "description": "Try-catch block", "startPattern": "\\btry\\s*\\{\\s*$", "endPattern": "^\\s*\\}\\s*(?:catch|finally)", "kind": "region" },
19
+ { "description": "Switch statement", "startPattern": "\\bswitch\\s*\\([^)]*\\)\\s*\\{\\s*$", "endPattern": "^\\s*\\}", "kind": "region" },
20
+ { "description": "Template literal", "startPattern": "`[^`]*$", "endPattern": "[^`]*`", "kind": "region" },
21
+ { "description": "Array literal", "startPattern": "\\[\\s*$", "endPattern": "^\\s*\\];?\\s*$", "kind": "region" },
22
+ { "description": "Metadata export", "startPattern": "export\\s+(?:const|async\\s+function)\\s+(?:metadata|generateMetadata)", "endPattern": "^\\s*\\}\\s*;?\\s*$", "kind": "region" },
23
+ { "description": "Middleware function", "startPattern": "export\\s+(?:async\\s+)?function\\s+middleware", "endPattern": "^\\}", "kind": "region" }
24
+ ]
25
+ }
26
+ }
@@ -0,0 +1,120 @@
1
+ {
2
+ "language": "react",
3
+ "foldingRanges": {
4
+ "markers": {
5
+ "start": "^\\s*(?:\\/\\/\\s*#?region\\b|\\{\\s*\\/\\*\\s*region\\b)",
6
+ "end": "^\\s*(?:\\/\\/\\s*#?endregion\\b|\\{?\\s*\\/\\*\\s*endregion\\b)"
7
+ },
8
+ "offSide": false,
9
+ "patterns": [
10
+ {
11
+ "description": "Import block",
12
+ "startPattern": "^import\\s+",
13
+ "endPattern": "^(?!import\\s|\\s*$)",
14
+ "kind": "imports"
15
+ },
16
+ {
17
+ "description": "JSX element block",
18
+ "startPattern": "<([A-Z][a-zA-Z0-9.]*)[^>]*>\\s*$",
19
+ "endPattern": "<\\/\\1>",
20
+ "kind": "region"
21
+ },
22
+ {
23
+ "description": "JSX self-closing element with multi-line props",
24
+ "startPattern": "<([a-zA-Z][a-zA-Z0-9.]*)\\s*$",
25
+ "endPattern": "\\s*\\/?>",
26
+ "kind": "region"
27
+ },
28
+ {
29
+ "description": "Multi-line return with JSX",
30
+ "startPattern": "return\\s*\\(\\s*$",
31
+ "endPattern": "^\\s*\\);?\\s*$",
32
+ "kind": "region"
33
+ },
34
+ {
35
+ "description": "Function component body",
36
+ "startPattern": "(?:export\\s+)?(?:default\\s+)?(?:function|const)\\s+[A-Z][a-zA-Z0-9]*\\s*(?::[^=]*)?=?\\s*(?:\\([^)]*\\)|[a-z])\\s*(?:=>)?\\s*\\{\\s*$",
37
+ "endPattern": "^\\}",
38
+ "kind": "region"
39
+ },
40
+ {
41
+ "description": "Class component body",
42
+ "startPattern": "class\\s+\\w+\\s+extends\\s+(?:React\\.)?(?:Component|PureComponent)[^{]*\\{\\s*$",
43
+ "endPattern": "^\\}",
44
+ "kind": "region"
45
+ },
46
+ {
47
+ "description": "useEffect body",
48
+ "startPattern": "useEffect\\s*\\(\\s*\\(\\)\\s*=>\\s*\\{\\s*$",
49
+ "endPattern": "\\}\\s*,\\s*\\[",
50
+ "kind": "region"
51
+ },
52
+ {
53
+ "description": "useMemo body",
54
+ "startPattern": "useMemo\\s*\\(\\s*\\(\\)\\s*=>\\s*(?:\\{|\\()\\s*$",
55
+ "endPattern": "(?:\\}|\\))\\s*,\\s*\\[",
56
+ "kind": "region"
57
+ },
58
+ {
59
+ "description": "useCallback body",
60
+ "startPattern": "useCallback\\s*\\(\\s*(?:async\\s*)?\\([^)]*\\)\\s*=>\\s*\\{\\s*$",
61
+ "endPattern": "\\}\\s*,\\s*\\[",
62
+ "kind": "region"
63
+ },
64
+ {
65
+ "description": "Custom hook body",
66
+ "startPattern": "(?:export\\s+)?(?:function|const)\\s+use[A-Z][a-zA-Z0-9]*\\s*(?:=\\s*)?\\([^)]*\\)\\s*(?:=>\\s*)?\\{\\s*$",
67
+ "endPattern": "^\\}",
68
+ "kind": "region"
69
+ },
70
+ {
71
+ "description": "Interface block",
72
+ "startPattern": "(?:export\\s+)?interface\\s+\\w+[^{]*\\{\\s*$",
73
+ "endPattern": "^\\}",
74
+ "kind": "region"
75
+ },
76
+ {
77
+ "description": "Type block",
78
+ "startPattern": "(?:export\\s+)?type\\s+\\w+[^=]*=\\s*\\{\\s*$",
79
+ "endPattern": "^\\}",
80
+ "kind": "region"
81
+ },
82
+ {
83
+ "description": "Multi-line JSX expression in curly braces",
84
+ "startPattern": "\\{\\s*$",
85
+ "endPattern": "^\\s*\\}",
86
+ "kind": "region"
87
+ },
88
+ {
89
+ "description": "Styled component definition",
90
+ "startPattern": "styled\\.\\w+`\\s*$",
91
+ "endPattern": "^\\s*`",
92
+ "kind": "region"
93
+ },
94
+ {
95
+ "description": "Block comment",
96
+ "startPattern": "\\/\\*\\*?\\s*$",
97
+ "endPattern": "\\*\\/",
98
+ "kind": "comment"
99
+ },
100
+ {
101
+ "description": "JSDoc comment",
102
+ "startPattern": "\\/\\*\\*",
103
+ "endPattern": "\\*\\/",
104
+ "kind": "comment"
105
+ },
106
+ {
107
+ "description": "Test describe block",
108
+ "startPattern": "describe\\s*\\([^{]*\\{\\s*$",
109
+ "endPattern": "^\\}\\);",
110
+ "kind": "region"
111
+ },
112
+ {
113
+ "description": "Array/object destructuring multi-line",
114
+ "startPattern": "(?:const|let)\\s+[{\\[]\\s*$",
115
+ "endPattern": "^\\s*[}\\]]",
116
+ "kind": "region"
117
+ }
118
+ ]
119
+ }
120
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "language": "shadcn",
3
+ "foldingPatterns": [
4
+ {
5
+ "startPattern": "^import\\s",
6
+ "endPattern": "(?=^(?!import\\s|\\s*$))",
7
+ "kind": "imports",
8
+ "description": "Fold contiguous import statement blocks"
9
+ },
10
+ {
11
+ "startPattern": "React\\.forwardRef\\s*(?:<[^>]*>)?\\s*\\(",
12
+ "endPattern": "^\\)\\s*;?\\s*$",
13
+ "kind": "region",
14
+ "description": "Fold React.forwardRef component wrapper"
15
+ },
16
+ {
17
+ "startPattern": "\\bcva\\s*\\(",
18
+ "endPattern": "^\\s*\\)\\s*;?\\s*$",
19
+ "kind": "region",
20
+ "description": "Fold cva() class-variance-authority definition"
21
+ },
22
+ {
23
+ "startPattern": "return\\s*\\(?\\s*$",
24
+ "endPattern": "^\\s*\\)\\s*;?\\s*$",
25
+ "kind": "region",
26
+ "description": "Fold JSX return block in component"
27
+ },
28
+ {
29
+ "startPattern": "(?:function|const)\\s+[A-Z][a-zA-Z0-9]*\\s*(?:=|\\()",
30
+ "endPattern": "^\\}\\s*;?\\s*$",
31
+ "kind": "region",
32
+ "description": "Fold function or const component body"
33
+ },
34
+ {
35
+ "startPattern": "(?:interface|type)\\s+[A-Z][a-zA-Z0-9]*(?:<[^>]*>)?\\s*(?:=\\s*)?\\{",
36
+ "endPattern": "^\\}\\s*;?\\s*$",
37
+ "kind": "region",
38
+ "description": "Fold interface or type definition block"
39
+ },
40
+ {
41
+ "startPattern": "(?:const\\s+\\w+Schema|z\\.object)\\s*(?:=\\s*)?\\(?\\s*\\{",
42
+ "endPattern": "^\\s*\\}\\s*\\)?\\s*;?\\s*$",
43
+ "kind": "region",
44
+ "description": "Fold Zod form schema definition"
45
+ },
46
+ {
47
+ "startPattern": "(?:const\\s+)?columns\\s*(?::\\s*ColumnDef[^=]*)?=\\s*\\[",
48
+ "endPattern": "^\\s*\\]\\s*;?\\s*$",
49
+ "kind": "region",
50
+ "description": "Fold column definitions array for DataTable"
51
+ },
52
+ {
53
+ "startPattern": "\\b(?:describe|it|test)\\s*\\(",
54
+ "endPattern": "^\\s*\\}\\s*\\)\\s*;?\\s*$",
55
+ "kind": "region",
56
+ "description": "Fold describe/it/test blocks"
57
+ },
58
+ {
59
+ "startPattern": "\\bswitch\\s*\\(",
60
+ "endPattern": "^\\s*\\}",
61
+ "kind": "region",
62
+ "description": "Fold switch/case statement blocks"
63
+ },
64
+ {
65
+ "startPattern": "(?:const|let|var)\\s+\\w+\\s*(?::[^=]*)?=\\s*\\{",
66
+ "endPattern": "^\\s*\\}\\s*;?\\s*$",
67
+ "kind": "region",
68
+ "description": "Fold object literal assignments"
69
+ },
70
+ {
71
+ "startPattern": "`",
72
+ "endPattern": "`",
73
+ "kind": "region",
74
+ "description": "Fold multi-line template literal strings"
75
+ },
76
+ {
77
+ "startPattern": "(?:const|let|var)\\s+\\w+\\s*(?::[^=]*)?=\\s*\\[",
78
+ "endPattern": "^\\s*\\]\\s*;?\\s*$",
79
+ "kind": "region",
80
+ "description": "Fold array literal assignments"
81
+ },
82
+ {
83
+ "startPattern": "/\\*\\*?",
84
+ "endPattern": "\\*/",
85
+ "kind": "comment",
86
+ "description": "Fold multi-line comment blocks"
87
+ }
88
+ ],
89
+ "regionMarkers": {
90
+ "start": "// #region",
91
+ "end": "// #endregion"
92
+ }
93
+ }
@@ -1,46 +1,106 @@
1
- {
2
- "language": "shell",
3
- "offSide": false,
4
- "markers": {
5
- "start": "^\\s*#\\s*#region\\b",
6
- "end": "^\\s*#\\s*#endregion\\b"
7
- },
8
- "foldingRules": [
9
- {
10
- "kind": "region",
11
- "startPattern": "\\{\\s*$",
12
- "endPattern": "^\\s*\\}",
13
- "description": "Curly brace blocks"
14
- },
15
- {
16
- "kind": "region",
17
- "startPattern": "\\bfunction\\b.*\\{\\s*$",
18
- "endPattern": "^\\s*\\}",
19
- "description": "Function definitions"
20
- },
21
- {
22
- "kind": "region",
23
- "startPattern": "\\bif\\b",
24
- "endPattern": "\\bfi\\b",
25
- "description": "If/fi conditionals"
26
- },
27
- {
28
- "kind": "region",
29
- "startPattern": "\\bcase\\b",
30
- "endPattern": "\\besac\\b",
31
- "description": "Case/esac blocks"
32
- },
33
- {
34
- "kind": "region",
35
- "startPattern": "\\bfor\\b",
36
- "endPattern": "\\bdone\\b",
37
- "description": "For/done loops"
38
- },
39
- {
40
- "kind": "region",
41
- "startPattern": "\\bwhile\\b",
42
- "endPattern": "\\bdone\\b",
43
- "description": "While/done loops"
44
- }
45
- ]
46
- }
1
+ {
2
+ "language": "shell",
3
+ "offSide": false,
4
+ "markers": {
5
+ "start": "^\\s*#\\s*#region\\b",
6
+ "end": "^\\s*#\\s*#endregion\\b"
7
+ },
8
+ "foldingRules": [
9
+ {
10
+ "kind": "region",
11
+ "startPattern": "\\{\\s*$",
12
+ "endPattern": "^\\s*\\}",
13
+ "description": "Curly brace blocks"
14
+ },
15
+ {
16
+ "kind": "region",
17
+ "startPattern": "\\bfunction\\b.*\\{\\s*$",
18
+ "endPattern": "^\\s*\\}",
19
+ "description": "Function definitions"
20
+ },
21
+ {
22
+ "kind": "region",
23
+ "startPattern": "\\bif\\b",
24
+ "endPattern": "\\bfi\\b",
25
+ "description": "If/fi conditionals"
26
+ },
27
+ {
28
+ "kind": "region",
29
+ "startPattern": "\\bcase\\b",
30
+ "endPattern": "\\besac\\b",
31
+ "description": "Case/esac blocks"
32
+ },
33
+ {
34
+ "kind": "region",
35
+ "startPattern": "\\bfor\\b",
36
+ "endPattern": "\\bdone\\b",
37
+ "description": "For/done loops"
38
+ },
39
+ {
40
+ "kind": "region",
41
+ "startPattern": "\\bwhile\\b",
42
+ "endPattern": "\\bdone\\b",
43
+ "description": "While/done loops"
44
+ },
45
+ {
46
+ "kind": "region",
47
+ "startPattern": "^\\s*(function\\s+\\w+|\\w+\\s*\\(\\s*\\))\\s*\\{?",
48
+ "endPattern": "^\\s*\\}",
49
+ "description": "Function definition block"
50
+ },
51
+ {
52
+ "kind": "region",
53
+ "startPattern": "^\\s*if\\b",
54
+ "endPattern": "^\\s*fi\\b",
55
+ "description": "If/fi conditional block"
56
+ },
57
+ {
58
+ "kind": "region",
59
+ "startPattern": "^\\s*case\\b",
60
+ "endPattern": "^\\s*esac\\b",
61
+ "description": "Case/esac switch block"
62
+ },
63
+ {
64
+ "kind": "region",
65
+ "startPattern": "^\\s*for\\b",
66
+ "endPattern": "^\\s*done\\b",
67
+ "description": "For/done loop block"
68
+ },
69
+ {
70
+ "kind": "region",
71
+ "startPattern": "^\\s*while\\b",
72
+ "endPattern": "^\\s*done\\b",
73
+ "description": "While/done loop block"
74
+ },
75
+ {
76
+ "kind": "region",
77
+ "startPattern": "^\\s*until\\b",
78
+ "endPattern": "^\\s*done\\b",
79
+ "description": "Until/done loop block"
80
+ },
81
+ {
82
+ "kind": "region",
83
+ "startPattern": "^\\s*do\\b",
84
+ "endPattern": "^\\s*done\\b",
85
+ "description": "Do/done block"
86
+ },
87
+ {
88
+ "kind": "region",
89
+ "startPattern": "^\\s*select\\b",
90
+ "endPattern": "^\\s*done\\b",
91
+ "description": "Select/done block"
92
+ },
93
+ {
94
+ "kind": "comment",
95
+ "startPattern": "^\\s*#(?!\\s*region\\b|\\s*endregion\\b)",
96
+ "endPattern": "^(?!\\s*#)",
97
+ "description": "Consecutive comment lines"
98
+ },
99
+ {
100
+ "kind": "region",
101
+ "startPattern": "<<-?\\s*['\"]?(\\w+)['\"]?",
102
+ "endPattern": "^\\s*\\1\\s*$",
103
+ "description": "Here-document block"
104
+ }
105
+ ]
106
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "language": "tailwindcss",
3
+ "foldingRules": [
4
+ {
5
+ "startPattern": "@layer\\s+\\w+\\s*\\{",
6
+ "endPattern": "^\\}",
7
+ "kind": "region",
8
+ "description": "Fold @layer blocks (base, components, utilities)."
9
+ },
10
+ {
11
+ "startPattern": "@media\\s+[^{]+\\{",
12
+ "endPattern": "^\\}",
13
+ "kind": "region",
14
+ "description": "Fold @media query blocks including responsive breakpoints."
15
+ },
16
+ {
17
+ "startPattern": "@screen\\s+\\w+\\s*\\{",
18
+ "endPattern": "^\\}",
19
+ "kind": "region",
20
+ "description": "Fold @screen directive blocks."
21
+ },
22
+ {
23
+ "startPattern": "\\.[\\w-]+\\s*\\{",
24
+ "endPattern": "^\\s*\\}",
25
+ "kind": "region",
26
+ "description": "Fold CSS rule blocks containing @apply and other declarations."
27
+ },
28
+ {
29
+ "startPattern": "@keyframes\\s+[\\w-]+\\s*\\{",
30
+ "endPattern": "^\\}",
31
+ "kind": "region",
32
+ "description": "Fold @keyframes animation blocks."
33
+ },
34
+ {
35
+ "startPattern": "/\\*",
36
+ "endPattern": "\\*/",
37
+ "kind": "comment",
38
+ "description": "Fold multi-line CSS comments."
39
+ },
40
+ {
41
+ "startPattern": "class\\s*=\\s*[\"'][^\"']*$",
42
+ "endPattern": "[\"']",
43
+ "kind": "region",
44
+ "description": "Fold multi-line class attribute lists with many Tailwind utilities."
45
+ },
46
+ {
47
+ "startPattern": "module\\.exports\\s*=\\s*\\{",
48
+ "endPattern": "^\\};?",
49
+ "kind": "region",
50
+ "description": "Fold tailwind.config.js configuration object."
51
+ },
52
+ {
53
+ "startPattern": "theme:\\s*\\{",
54
+ "endPattern": "^\\s*\\}",
55
+ "kind": "region",
56
+ "description": "Fold theme configuration sections in tailwind.config.js."
57
+ }
58
+ ],
59
+ "offSide": false
60
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "language": "angular",
3
+ "formattingRules": [
4
+ { "context": "decorator_placement", "rule": "Place each decorator on its own line directly above the class, method, or property it decorates, with no blank line between decorator and target.", "description": "Decorators like @Component, @Injectable, @Input must appear on the line immediately preceding their target" },
5
+ { "context": "template_string_formatting", "rule": "Inline templates using backtick strings should be indented one level deeper than the decorator property, with the closing backtick aligned to the property key.", "description": "Ensures consistent indentation for inline component templates" },
6
+ { "context": "import_sorting", "rule": "Sort imports in the following order: 1) @angular/* packages, 2) third-party packages, 3) local/relative imports. Separate each group with a blank line.", "description": "Consistent import ordering for Angular files" },
7
+ { "context": "class_member_ordering", "rule": "Order class members as: 1) static properties, 2) decorated properties (@Input, @Output), 3) signal declarations, 4) public properties, 5) private properties, 6) constructor, 7) lifecycle hooks in execution order, 8) public methods, 9) private methods.", "description": "Standardized member ordering within Angular component and service classes" },
8
+ { "context": "lifecycle_hooks_order", "rule": "Order lifecycle hooks by their execution sequence: ngOnChanges, ngOnInit, ngDoCheck, ngAfterContentInit, ngAfterContentChecked, ngAfterViewInit, ngAfterViewChecked, ngOnDestroy.", "description": "Lifecycle hooks should follow Angular's invocation order" },
9
+ { "context": "signal_declarations", "rule": "Group signal declarations together: signal() first, then computed(), then effect(). Each should be on its own line with type annotations when the type is not obvious.", "description": "Consistent grouping and ordering of signal-based reactive primitives" },
10
+ { "context": "constructor_injection", "rule": "List constructor parameters one per line when there are more than two. Use access modifiers (private, protected, public, readonly) consistently. Prefer inject() function over constructor injection for standalone components.", "description": "Readable formatting for dependency injection parameters" },
11
+ { "context": "array_alignment", "rule": "When arrays in decorators (imports, declarations, providers, exports) exceed three items, place each item on its own line with a trailing comma.", "description": "Multi-item arrays in NgModule or Component metadata should be vertically aligned" },
12
+ { "context": "method_spacing", "rule": "Separate methods with exactly one blank line. Do not add blank lines between a method's decorators and the method signature.", "description": "Consistent spacing between class methods" },
13
+ { "context": "component_metadata", "rule": "Order @Component metadata properties as: selector, standalone, imports, templateUrl/template, styleUrls/styles, changeDetection, encapsulation, providers.", "description": "Consistent ordering of component decorator metadata properties" }
14
+ ],
15
+ "indentation": {
16
+ "useTabs": false,
17
+ "tabSize": 2,
18
+ "trimTrailingWhitespace": true,
19
+ "insertFinalNewline": true
20
+ }
21
+ }
@@ -0,0 +1,73 @@
1
+ {
2
+ "language": "css",
3
+ "formatting": {
4
+ "defaultTabSize": 2,
5
+ "defaultInsertSpaces": true,
6
+ "rules": [
7
+ {
8
+ "description": "Normalize space after property colon",
9
+ "pattern": "([a-z-]+)\\s*:\\s*",
10
+ "replacement": "$1: "
11
+ },
12
+ {
13
+ "description": "Opening brace on same line with space before",
14
+ "pattern": "([^\\s])\\s*\\{",
15
+ "replacement": "$1 {"
16
+ },
17
+ {
18
+ "description": "Closing brace on its own line",
19
+ "pattern": "([^\\n])\\s*\\}",
20
+ "replacement": "$1\n}"
21
+ },
22
+ {
23
+ "description": "Ensure semicolons terminate declarations",
24
+ "pattern": "([a-z-]+\\s*:[^;{}]+?)\\s*(?=\\n\\s*[a-z-]+\\s*:|\\n\\s*\\})",
25
+ "replacement": "$1;"
26
+ },
27
+ {
28
+ "description": "Single space after commas in selectors",
29
+ "pattern": ",\\s*(?=\\n?\\s*[.#a-zA-Z*:\\[])",
30
+ "replacement": ",\n"
31
+ },
32
+ {
33
+ "description": "Remove trailing whitespace",
34
+ "pattern": "[ \\t]+$",
35
+ "replacement": ""
36
+ },
37
+ {
38
+ "description": "Single blank line between rule blocks",
39
+ "pattern": "\\}\\s*\\n\\s*\\n\\s*\\n+",
40
+ "replacement": "}\n\n"
41
+ },
42
+ {
43
+ "description": "Normalize multi-line comment opening",
44
+ "pattern": "/\\*\\s*(?!\\*)",
45
+ "replacement": "/* "
46
+ },
47
+ {
48
+ "description": "Normalize multi-line comment closing",
49
+ "pattern": "\\s*\\*/",
50
+ "replacement": " */"
51
+ },
52
+ {
53
+ "description": "Ensure newline at end of file",
54
+ "pattern": "([^\\n])$",
55
+ "replacement": "$1\n"
56
+ },
57
+ {
58
+ "description": "Remove spaces inside parentheses for functions",
59
+ "pattern": "\\(\\s+([^)]+?)\\s+\\)",
60
+ "replacement": "($1)"
61
+ },
62
+ {
63
+ "description": "Normalize space in !important",
64
+ "pattern": "\\s*!\\s*important",
65
+ "replacement": " !important"
66
+ }
67
+ ],
68
+ "indentation": {
69
+ "increasePattern": "\\{\\s*$",
70
+ "decreasePattern": "^\\s*\\}"
71
+ }
72
+ }
73
+ }