@enjoys/context-engine 1.3.1 → 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 (221) 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/nestjs.json +21 -0
  9. package/data/codeLens/nextjs.json +117 -0
  10. package/data/codeLens/react.json +89 -0
  11. package/data/codeLens/shadcn.json +89 -0
  12. package/data/codeLens/shell.json +59 -17
  13. package/data/codeLens/tailwindcss.json +56 -0
  14. package/data/color/angular.json +21 -0
  15. package/data/color/nestjs.json +18 -0
  16. package/data/color/nextjs.json +22 -0
  17. package/data/color/react.json +93 -0
  18. package/data/color/shadcn.json +66 -0
  19. package/data/color/shell.json +106 -80
  20. package/data/commands/angular.json +312 -0
  21. package/data/commands/manifest.json +5 -0
  22. package/data/commands/nestjs.json +273 -0
  23. package/data/commands/nextjs.json +123 -0
  24. package/data/commands/react.json +210 -0
  25. package/data/commands/shadcn.json +410 -0
  26. package/data/commands/shell.json +571 -41
  27. package/data/completion/angular.json +1490 -0
  28. package/data/completion/css.json +793 -0
  29. package/data/completion/nestjs.json +1454 -0
  30. package/data/completion/nextjs.json +1373 -0
  31. package/data/completion/react.json +1319 -0
  32. package/data/completion/shadcn.json +1202 -0
  33. package/data/completion/shell.json +2446 -510
  34. package/data/declaration/angular.json +46 -0
  35. package/data/declaration/nestjs.json +47 -0
  36. package/data/declaration/nextjs.json +274 -0
  37. package/data/declaration/react.json +199 -0
  38. package/data/declaration/shadcn.json +211 -0
  39. package/data/declaration/shell.json +343 -24
  40. package/data/declaration/tailwindcss.json +72 -0
  41. package/data/definition/angular.json +670 -0
  42. package/data/definition/nestjs.json +684 -0
  43. package/data/definition/nextjs.json +439 -0
  44. package/data/definition/react.json +397 -0
  45. package/data/definition/shadcn.json +99 -0
  46. package/data/definition/shell.json +820 -0
  47. package/data/documentHighlight/angular.json +414 -0
  48. package/data/documentHighlight/css.json +77 -2
  49. package/data/documentHighlight/nestjs.json +115 -0
  50. package/data/documentHighlight/nextjs.json +212 -0
  51. package/data/documentHighlight/react.json +119 -0
  52. package/data/documentHighlight/shadcn.json +168 -0
  53. package/data/documentHighlight/shell.json +664 -334
  54. package/data/documentHighlight/tailwindcss.json +105 -10
  55. package/data/documentRangeFormatting/angular.json +45 -0
  56. package/data/documentRangeFormatting/nestjs.json +17 -0
  57. package/data/documentRangeFormatting/nextjs.json +17 -0
  58. package/data/documentRangeFormatting/react.json +78 -0
  59. package/data/documentRangeFormatting/shadcn.json +45 -0
  60. package/data/documentRangeFormatting/shell.json +120 -53
  61. package/data/documentSymbol/angular.json +180 -0
  62. package/data/documentSymbol/nestjs.json +152 -0
  63. package/data/documentSymbol/nextjs.json +159 -0
  64. package/data/documentSymbol/react.json +145 -0
  65. package/data/documentSymbol/shadcn.json +131 -0
  66. package/data/documentSymbol/shell.json +166 -26
  67. package/data/documentSymbol/tailwindcss.json +49 -0
  68. package/data/foldingRange/angular.json +99 -0
  69. package/data/foldingRange/nestjs.json +26 -0
  70. package/data/foldingRange/nextjs.json +26 -0
  71. package/data/foldingRange/react.json +120 -0
  72. package/data/foldingRange/shadcn.json +93 -0
  73. package/data/foldingRange/shell.json +106 -46
  74. package/data/formatting/angular.json +21 -0
  75. package/data/formatting/nestjs.json +23 -0
  76. package/data/formatting/nextjs.json +23 -0
  77. package/data/formatting/react.json +71 -0
  78. package/data/formatting/shadcn.json +61 -0
  79. package/data/formatting/shell.json +103 -19
  80. package/data/hover/angular.json +455 -0
  81. package/data/hover/css.json +232 -0
  82. package/data/hover/nestjs.json +296 -0
  83. package/data/hover/nextjs.json +305 -0
  84. package/data/hover/react.json +173 -0
  85. package/data/hover/shadcn.json +450 -0
  86. package/data/hover/shell.json +684 -75
  87. package/data/implementation/angular.json +22 -0
  88. package/data/implementation/nestjs.json +24 -0
  89. package/data/implementation/nextjs.json +137 -0
  90. package/data/implementation/react.json +125 -0
  91. package/data/implementation/shadcn.json +89 -0
  92. package/data/implementation/shell.json +59 -3
  93. package/data/inlayHints/angular.json +24 -0
  94. package/data/inlayHints/nestjs.json +24 -0
  95. package/data/inlayHints/nextjs.json +143 -0
  96. package/data/inlayHints/react.json +177 -0
  97. package/data/inlayHints/shadcn.json +109 -0
  98. package/data/inlayHints/shell.json +223 -35
  99. package/data/inlineCompletions/angular.json +135 -0
  100. package/data/inlineCompletions/nestjs.json +25 -0
  101. package/data/inlineCompletions/nextjs.json +179 -0
  102. package/data/inlineCompletions/react.json +203 -0
  103. package/data/inlineCompletions/shadcn.json +115 -0
  104. package/data/inlineCompletions/shell.json +185 -35
  105. package/data/linkedEditingRange/angular.json +23 -0
  106. package/data/linkedEditingRange/nestjs.json +10 -0
  107. package/data/linkedEditingRange/nextjs.json +11 -0
  108. package/data/linkedEditingRange/react.json +75 -0
  109. package/data/linkedEditingRange/shadcn.json +23 -0
  110. package/data/linkedEditingRange/shell.json +25 -25
  111. package/data/links/angular.json +95 -0
  112. package/data/links/nestjs.json +130 -0
  113. package/data/links/nextjs.json +91 -0
  114. package/data/links/react.json +75 -0
  115. package/data/links/shadcn.json +98 -0
  116. package/data/links/shell.json +56 -0
  117. package/data/links/tailwindcss.json +25 -0
  118. package/data/manifest.json +339 -152
  119. package/data/onTypeFormatting/angular.json +14 -0
  120. package/data/onTypeFormatting/nestjs.json +16 -0
  121. package/data/onTypeFormatting/nextjs.json +17 -0
  122. package/data/onTypeFormatting/react.json +127 -0
  123. package/data/onTypeFormatting/shadcn.json +54 -0
  124. package/data/onTypeFormatting/shell.json +72 -68
  125. package/data/rangeSemanticTokens/angular.json +140 -0
  126. package/data/rangeSemanticTokens/nestjs.json +27 -0
  127. package/data/rangeSemanticTokens/nextjs.json +28 -0
  128. package/data/rangeSemanticTokens/react.json +216 -0
  129. package/data/rangeSemanticTokens/shadcn.json +140 -0
  130. package/data/rangeSemanticTokens/shell.json +247 -69
  131. package/data/rangeSemanticTokens/tailwindcss.json +99 -8
  132. package/data/references/angular.json +26 -0
  133. package/data/references/nestjs.json +24 -0
  134. package/data/references/nextjs.json +178 -0
  135. package/data/references/react.json +192 -0
  136. package/data/references/shadcn.json +101 -0
  137. package/data/references/shell.json +323 -92
  138. package/data/references/tailwindcss.json +66 -0
  139. package/data/rename/angular.json +131 -0
  140. package/data/rename/nestjs.json +32 -0
  141. package/data/rename/nextjs.json +31 -0
  142. package/data/rename/react.json +88 -0
  143. package/data/rename/shadcn.json +79 -0
  144. package/data/rename/shell.json +101 -31
  145. package/data/selectionRange/angular.json +95 -0
  146. package/data/selectionRange/nestjs.json +21 -0
  147. package/data/selectionRange/nextjs.json +22 -0
  148. package/data/selectionRange/react.json +87 -0
  149. package/data/selectionRange/shadcn.json +89 -0
  150. package/data/selectionRange/shell.json +65 -35
  151. package/data/semanticTokens/angular.json +198 -0
  152. package/data/semanticTokens/nestjs.json +35 -0
  153. package/data/semanticTokens/nextjs.json +38 -0
  154. package/data/semanticTokens/react.json +215 -0
  155. package/data/semanticTokens/shadcn.json +180 -0
  156. package/data/semanticTokens/shell.json +238 -65
  157. package/data/signatureHelp/angular.json +182 -0
  158. package/data/signatureHelp/nestjs.json +128 -0
  159. package/data/signatureHelp/nextjs.json +127 -0
  160. package/data/signatureHelp/react.json +281 -0
  161. package/data/signatureHelp/shadcn.json +237 -0
  162. package/data/signatureHelp/shell.json +797 -104
  163. package/data/typeDefinition/angular.json +362 -0
  164. package/data/typeDefinition/nestjs.json +334 -0
  165. package/data/typeDefinition/nextjs.json +285 -0
  166. package/data/typeDefinition/react.json +236 -0
  167. package/data/typeDefinition/shadcn.json +292 -0
  168. package/data/typeDefinition/shell.json +104 -40
  169. package/package.json +1 -1
  170. package/data/codeActions/bash.json +0 -169
  171. package/data/codeActions/zsh.json +0 -49
  172. package/data/codeLens/bash.json +0 -75
  173. package/data/codeLens/zsh.json +0 -19
  174. package/data/color/bash.json +0 -100
  175. package/data/color/zsh.json +0 -80
  176. package/data/commands/bash.json +0 -102
  177. package/data/commands/zsh.json +0 -166
  178. package/data/completion/bash.json +0 -1184
  179. package/data/completion/zsh.json +0 -973
  180. package/data/declaration/bash.json +0 -301
  181. package/data/declaration/zsh.json +0 -205
  182. package/data/definition/bash.json +0 -565
  183. package/data/definition/zsh.json +0 -350
  184. package/data/documentHighlight/bash.json +0 -393
  185. package/data/documentHighlight/zsh.json +0 -266
  186. package/data/documentRangeFormatting/bash.json +0 -41
  187. package/data/documentRangeFormatting/zsh.json +0 -59
  188. package/data/documentSymbol/bash.json +0 -124
  189. package/data/documentSymbol/zsh.json +0 -26
  190. package/data/foldingRange/bash.json +0 -76
  191. package/data/foldingRange/zsh.json +0 -46
  192. package/data/formatting/bash.json +0 -88
  193. package/data/formatting/zsh.json +0 -28
  194. package/data/hover/bash.json +0 -579
  195. package/data/hover/zsh.json +0 -96
  196. package/data/implementation/bash.json +0 -44
  197. package/data/implementation/zsh.json +0 -41
  198. package/data/inlayHints/bash.json +0 -207
  199. package/data/inlayHints/zsh.json +0 -43
  200. package/data/inlineCompletions/bash.json +0 -155
  201. package/data/inlineCompletions/zsh.json +0 -17
  202. package/data/linkedEditingRange/bash.json +0 -25
  203. package/data/linkedEditingRange/zsh.json +0 -25
  204. package/data/links/bash.json +0 -56
  205. package/data/links/zsh.json +0 -15
  206. package/data/onTypeFormatting/bash.json +0 -68
  207. package/data/onTypeFormatting/zsh.json +0 -68
  208. package/data/rangeSemanticTokens/bash.json +0 -90
  209. package/data/rangeSemanticTokens/zsh.json +0 -76
  210. package/data/references/bash.json +0 -221
  211. package/data/references/zsh.json +0 -166
  212. package/data/rename/bash.json +0 -37
  213. package/data/rename/zsh.json +0 -31
  214. package/data/selectionRange/bash.json +0 -35
  215. package/data/selectionRange/zsh.json +0 -35
  216. package/data/semanticTokens/bash.json +0 -71
  217. package/data/semanticTokens/zsh.json +0 -71
  218. package/data/signatureHelp/bash.json +0 -111
  219. package/data/signatureHelp/zsh.json +0 -118
  220. package/data/typeDefinition/bash.json +0 -95
  221. package/data/typeDefinition/zsh.json +0 -40
@@ -0,0 +1,22 @@
1
+ {
2
+ "language": "angular",
3
+ "implementationPatterns": [
4
+ { "name": "OnInit", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bOnInit\\b", "captureGroup": 1, "description": "Class implementing OnInit lifecycle interface" },
5
+ { "name": "OnDestroy", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bOnDestroy\\b", "captureGroup": 1, "description": "Class implementing OnDestroy lifecycle interface" },
6
+ { "name": "OnChanges", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bOnChanges\\b", "captureGroup": 1, "description": "Class implementing OnChanges lifecycle interface" },
7
+ { "name": "AfterViewInit", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bAfterViewInit\\b", "captureGroup": 1, "description": "Class implementing AfterViewInit lifecycle interface" },
8
+ { "name": "AfterContentInit", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bAfterContentInit\\b", "captureGroup": 1, "description": "Class implementing AfterContentInit lifecycle interface" },
9
+ { "name": "DoCheck", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bDoCheck\\b", "captureGroup": 1, "description": "Class implementing DoCheck lifecycle interface" },
10
+ { "name": "AfterViewChecked", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bAfterViewChecked\\b", "captureGroup": 1, "description": "Class implementing AfterViewChecked lifecycle interface" },
11
+ { "name": "AfterContentChecked", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bAfterContentChecked\\b", "captureGroup": 1, "description": "Class implementing AfterContentChecked lifecycle interface" },
12
+ { "name": "CanActivate", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bCanActivate\\b", "captureGroup": 1, "description": "Class implementing CanActivate route guard interface" },
13
+ { "name": "CanDeactivate", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bCanDeactivate\\b", "captureGroup": 1, "description": "Class implementing CanDeactivate route guard interface" },
14
+ { "name": "Resolve", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bResolve\\b", "captureGroup": 1, "description": "Class implementing Resolve route resolver interface" },
15
+ { "name": "HttpInterceptor", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bHttpInterceptor\\b", "captureGroup": 1, "description": "Class implementing HttpInterceptor interface" },
16
+ { "name": "PipeTransform", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bPipeTransform\\b", "captureGroup": 1, "description": "Class implementing PipeTransform interface" },
17
+ { "name": "ControlValueAccessor", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bControlValueAccessor\\b", "captureGroup": 1, "description": "Class implementing ControlValueAccessor for custom form controls" },
18
+ { "name": "Validator", "pattern": "class\\s+(\\w+)[^{]*implements\\s+[^{]*\\bValidator\\b", "captureGroup": 1, "description": "Class implementing Validator interface for custom validation" },
19
+ { "name": "NgModule", "pattern": "@NgModule\\s*\\([^)]*\\)\\s*(?:export\\s+)?class\\s+(\\w+)", "captureGroup": 1, "description": "Angular module class decorated with @NgModule" },
20
+ { "name": "ErrorHandler", "pattern": "class\\s+(\\w+)[^{]*(?:implements\\s+[^{]*\\bErrorHandler\\b|extends\\s+ErrorHandler)", "captureGroup": 1, "description": "Class implementing or extending ErrorHandler" }
21
+ ]
22
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "language": "nestjs",
3
+ "implementationPatterns": [
4
+ { "interface": "CanActivate", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+CanActivate", "description": "Guard implementations" },
5
+ { "interface": "PipeTransform", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+PipeTransform", "description": "Pipe implementations" },
6
+ { "interface": "NestInterceptor", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+NestInterceptor", "description": "Interceptor implementations" },
7
+ { "interface": "ExceptionFilter", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+ExceptionFilter", "description": "Exception filter implementations" },
8
+ { "interface": "NestMiddleware", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+NestMiddleware", "description": "Middleware implementations" },
9
+ { "interface": "NestModule", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+NestModule", "description": "Module configure implementations" },
10
+ { "interface": "OnModuleInit", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)[^{]*implements[^{]*OnModuleInit", "description": "OnModuleInit lifecycle hook" },
11
+ { "interface": "OnModuleDestroy", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)[^{]*implements[^{]*OnModuleDestroy", "description": "OnModuleDestroy lifecycle hook" },
12
+ { "interface": "OnApplicationBootstrap", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)[^{]*implements[^{]*OnApplicationBootstrap", "description": "OnApplicationBootstrap lifecycle hook" },
13
+ { "interface": "OnApplicationShutdown", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)[^{]*implements[^{]*OnApplicationShutdown", "description": "OnApplicationShutdown lifecycle hook" },
14
+ { "interface": "BeforeApplicationShutdown", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)[^{]*implements[^{]*BeforeApplicationShutdown", "description": "BeforeApplicationShutdown lifecycle hook" },
15
+ { "interface": "CallHandler", "implementationKeyword": "implements", "pattern": "intercept\\([^)]*\\).*Observable", "description": "Interceptor intercept method" },
16
+ { "interface": "ArgumentsHost", "implementationKeyword": "catch", "pattern": "catch\\(\\s*\\w+[^,)]*,\\s*\\w+:\\s*ArgumentsHost", "description": "Exception filter catch method" },
17
+ { "interface": "HealthIndicator", "implementationKeyword": "extends", "pattern": "class\\s+(\\w+)\\s+extends\\s+HealthIndicator", "description": "Health check implementations" },
18
+ { "interface": "TypeOrmModuleOptions", "implementationKeyword": "implements", "pattern": "class\\s+(\\w+)\\s+implements\\s+TypeOrmOptionsFactory", "description": "TypeORM config factory" }
19
+ ],
20
+ "keywords": {
21
+ "interface": ["interface", "abstract class", "CanActivate", "PipeTransform", "NestInterceptor", "ExceptionFilter", "NestMiddleware", "NestModule", "OnModuleInit", "OnModuleDestroy"],
22
+ "implementation": ["implements", "extends", "class", "@Injectable", "@Controller", "@Module"]
23
+ }
24
+ }
@@ -0,0 +1,137 @@
1
+ {
2
+ "language": "nextjs",
3
+ "implementationPatterns": [
4
+ {
5
+ "interface": "Page",
6
+ "implementationKeyword": "export default function",
7
+ "pattern": "export\\s+default\\s+(?:async\\s+)?function\\s+\\w+\\s*\\(\\s*(?:\\{\\s*(?:params|searchParams)[^}]*\\})?",
8
+ "description": "App Router page component implementing the page file convention"
9
+ },
10
+ {
11
+ "interface": "Layout",
12
+ "implementationKeyword": "export default function",
13
+ "pattern": "export\\s+default\\s+(?:async\\s+)?function\\s+\\w+\\s*\\(\\s*\\{\\s*children",
14
+ "description": "App Router layout component implementing the layout file convention"
15
+ },
16
+ {
17
+ "interface": "Loading",
18
+ "implementationKeyword": "export default function",
19
+ "pattern": "export\\s+default\\s+function\\s+Loading\\s*\\(",
20
+ "description": "Loading UI component implementing the loading file convention"
21
+ },
22
+ {
23
+ "interface": "Error",
24
+ "implementationKeyword": "export default function",
25
+ "pattern": "export\\s+default\\s+function\\s+Error\\s*\\(\\s*\\{\\s*error\\s*,\\s*reset",
26
+ "description": "Error boundary component implementing the error file convention"
27
+ },
28
+ {
29
+ "interface": "NotFound",
30
+ "implementationKeyword": "export default function",
31
+ "pattern": "export\\s+default\\s+function\\s+NotFound\\s*\\(",
32
+ "description": "Not-found component implementing the not-found file convention"
33
+ },
34
+ {
35
+ "interface": "RouteHandler",
36
+ "implementationKeyword": "export async function",
37
+ "pattern": "export\\s+(?:async\\s+)?function\\s+(?:GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)\\s*\\(",
38
+ "description": "App Router Route Handler implementing HTTP method handlers"
39
+ },
40
+ {
41
+ "interface": "Middleware",
42
+ "implementationKeyword": "export function middleware",
43
+ "pattern": "export\\s+(?:async\\s+)?function\\s+middleware\\s*\\(\\s*(?:request|req)\\s*:\\s*NextRequest",
44
+ "description": "Middleware function implementing the middleware file convention"
45
+ },
46
+ {
47
+ "interface": "ServerAction",
48
+ "implementationKeyword": "use server",
49
+ "pattern": "['\"]use server['\"]\\s*;?\\s*(?:export\\s+)?async\\s+function\\s+\\w+",
50
+ "description": "Server Action implementing the 'use server' directive convention"
51
+ },
52
+ {
53
+ "interface": "GetServerSideProps",
54
+ "implementationKeyword": "export const getServerSideProps",
55
+ "pattern": "export\\s+(?:const\\s+getServerSideProps|async\\s+function\\s+getServerSideProps)",
56
+ "description": "Pages Router server-side data fetching implementation"
57
+ },
58
+ {
59
+ "interface": "GetStaticProps",
60
+ "implementationKeyword": "export const getStaticProps",
61
+ "pattern": "export\\s+(?:const\\s+getStaticProps|async\\s+function\\s+getStaticProps)",
62
+ "description": "Pages Router static generation implementation"
63
+ },
64
+ {
65
+ "interface": "GetStaticPaths",
66
+ "implementationKeyword": "export const getStaticPaths",
67
+ "pattern": "export\\s+(?:const\\s+getStaticPaths|async\\s+function\\s+getStaticPaths)",
68
+ "description": "Pages Router static paths implementation for dynamic routes"
69
+ },
70
+ {
71
+ "interface": "APIRoute",
72
+ "implementationKeyword": "export default function handler",
73
+ "pattern": "export\\s+default\\s+(?:async\\s+)?function\\s+handler\\s*\\(\\s*req\\s*:\\s*NextApiRequest",
74
+ "description": "Pages Router API route handler implementation"
75
+ },
76
+ {
77
+ "interface": "GenerateMetadata",
78
+ "implementationKeyword": "export async function generateMetadata",
79
+ "pattern": "export\\s+async\\s+function\\s+generateMetadata\\s*\\(",
80
+ "description": "Dynamic metadata generation function implementation"
81
+ },
82
+ {
83
+ "interface": "GenerateStaticParams",
84
+ "implementationKeyword": "export async function generateStaticParams",
85
+ "pattern": "export\\s+async\\s+function\\s+generateStaticParams\\s*\\(",
86
+ "description": "Static params generation function implementation"
87
+ },
88
+ {
89
+ "interface": "Template",
90
+ "implementationKeyword": "export default function",
91
+ "pattern": "export\\s+default\\s+function\\s+Template\\s*\\(\\s*\\{\\s*children",
92
+ "description": "Template component implementing the template file convention"
93
+ },
94
+ {
95
+ "interface": "GlobalError",
96
+ "implementationKeyword": "export default function",
97
+ "pattern": "export\\s+default\\s+function\\s+GlobalError\\s*\\(\\s*\\{\\s*error\\s*,\\s*reset",
98
+ "description": "Global error boundary implementing the global-error file convention"
99
+ },
100
+ {
101
+ "interface": "Default",
102
+ "implementationKeyword": "export default function",
103
+ "pattern": "export\\s+default\\s+function\\s+Default\\s*\\(",
104
+ "description": "Default component for parallel route slots implementing the default file convention"
105
+ }
106
+ ],
107
+ "keywords": {
108
+ "interface": [
109
+ "Page",
110
+ "Layout",
111
+ "Loading",
112
+ "Error",
113
+ "NotFound",
114
+ "Template",
115
+ "GlobalError",
116
+ "Default",
117
+ "RouteHandler",
118
+ "Middleware",
119
+ "ServerAction",
120
+ "APIRoute",
121
+ "GetServerSideProps",
122
+ "GetStaticProps",
123
+ "GetStaticPaths",
124
+ "GenerateMetadata",
125
+ "GenerateStaticParams"
126
+ ],
127
+ "implementation": [
128
+ "export default function",
129
+ "export default async function",
130
+ "export async function",
131
+ "export const",
132
+ "export function",
133
+ "use server",
134
+ "use client"
135
+ ]
136
+ }
137
+ }
@@ -0,0 +1,125 @@
1
+ {
2
+ "language": "react",
3
+ "implementationPatterns": [
4
+ {
5
+ "interface": "React.Component",
6
+ "implementationKeyword": "extends",
7
+ "pattern": "class\\s+(\\w+)\\s+extends\\s+(?:React\\.)?Component",
8
+ "description": "Class component extending React.Component with lifecycle methods and state"
9
+ },
10
+ {
11
+ "interface": "React.PureComponent",
12
+ "implementationKeyword": "extends",
13
+ "pattern": "class\\s+(\\w+)\\s+extends\\s+(?:React\\.)?PureComponent",
14
+ "description": "Class component extending React.PureComponent with shallow prop/state comparison"
15
+ },
16
+ {
17
+ "interface": "React.memo",
18
+ "implementationKeyword": "memo",
19
+ "pattern": "(?:const|let)\\s+(\\w+)\\s*=\\s*(?:React\\.)?memo\\s*\\(",
20
+ "description": "Memoized component implementation using React.memo wrapper"
21
+ },
22
+ {
23
+ "interface": "React.forwardRef",
24
+ "implementationKeyword": "forwardRef",
25
+ "pattern": "(?:const|let)\\s+(\\w+)\\s*=\\s*(?:React\\.)?forwardRef\\s*[<(]",
26
+ "description": "Component with ref forwarding using React.forwardRef"
27
+ },
28
+ {
29
+ "interface": "Context.Provider",
30
+ "implementationKeyword": "Provider",
31
+ "pattern": "<(\\w+Context)\\.Provider\\s+value=",
32
+ "description": "Context Provider implementation that supplies context value to descendants"
33
+ },
34
+ {
35
+ "interface": "Context.Consumer",
36
+ "implementationKeyword": "Consumer",
37
+ "pattern": "<(\\w+Context)\\.Consumer>",
38
+ "description": "Context Consumer implementation using render props pattern"
39
+ },
40
+ {
41
+ "interface": "useContext",
42
+ "implementationKeyword": "useContext",
43
+ "pattern": "(?:const|let)\\s+(\\w+)\\s*=\\s*useContext\\s*\\(",
44
+ "description": "Context consumption using useContext hook"
45
+ },
46
+ {
47
+ "interface": "CustomHook",
48
+ "implementationKeyword": "function",
49
+ "pattern": "(?:export\\s+)?(?:function|const)\\s+(use[A-Z]\\w*)\\s*(?:=|\\()",
50
+ "description": "Custom hook implementation following the use* naming convention"
51
+ },
52
+ {
53
+ "interface": "ErrorBoundary",
54
+ "implementationKeyword": "componentDidCatch",
55
+ "pattern": "class\\s+(\\w+)\\s+extends\\s+(?:React\\.)?Component[^{]*\\{[^}]*componentDidCatch",
56
+ "description": "Error boundary implementation with componentDidCatch lifecycle method"
57
+ },
58
+ {
59
+ "interface": "ErrorBoundary.getDerivedStateFromError",
60
+ "implementationKeyword": "getDerivedStateFromError",
61
+ "pattern": "static\\s+getDerivedStateFromError\\s*\\(",
62
+ "description": "Error boundary static method for deriving state from caught errors"
63
+ },
64
+ {
65
+ "interface": "HOC",
66
+ "implementationKeyword": "with",
67
+ "pattern": "(?:export\\s+)?(?:function|const)\\s+(with[A-Z]\\w*)\\s*(?:=\\s*)?[<(]",
68
+ "description": "Higher-Order Component implementation following the with* naming convention"
69
+ },
70
+ {
71
+ "interface": "React.lazy",
72
+ "implementationKeyword": "lazy",
73
+ "pattern": "(?:const|let)\\s+(\\w+)\\s*=\\s*(?:React\\.)?lazy\\s*\\(",
74
+ "description": "Lazy-loaded component implementation using dynamic import"
75
+ },
76
+ {
77
+ "interface": "useReducer",
78
+ "implementationKeyword": "reducer",
79
+ "pattern": "(?:function|const)\\s+(\\w+(?:Reducer|reducer))\\s*(?:=|\\()\\s*(?:\\(state|\\(prevState)",
80
+ "description": "Reducer function implementation for useReducer hook"
81
+ },
82
+ {
83
+ "interface": "EventHandler",
84
+ "implementationKeyword": "handle",
85
+ "pattern": "(?:const|function)\\s+(handle[A-Z]\\w*)\\s*=?\\s*(?:useCallback\\s*\\()?\\s*(?:async\\s*)?\\(",
86
+ "description": "Event handler implementation following the handle* naming convention"
87
+ },
88
+ {
89
+ "interface": "React.FC",
90
+ "implementationKeyword": "FC",
91
+ "pattern": "(?:const|let)\\s+(\\w+)\\s*:\\s*(?:React\\.)?FC",
92
+ "description": "Function component typed with React.FC type annotation"
93
+ }
94
+ ],
95
+ "keywords": {
96
+ "interface": [
97
+ "React.Component",
98
+ "React.PureComponent",
99
+ "React.FC",
100
+ "React.ForwardRefRenderFunction",
101
+ "React.ComponentType",
102
+ "React.MemoExoticComponent",
103
+ "React.LazyExoticComponent",
104
+ "React.Context",
105
+ "React.Reducer",
106
+ "React.ErrorInfo",
107
+ "React.RefObject",
108
+ "React.MutableRefObject"
109
+ ],
110
+ "implementation": [
111
+ "extends Component",
112
+ "extends PureComponent",
113
+ "React.memo(",
114
+ "React.forwardRef(",
115
+ "React.lazy(",
116
+ "createContext(",
117
+ "useContext(",
118
+ "useReducer(",
119
+ "componentDidCatch",
120
+ "getDerivedStateFromError",
121
+ "useImperativeHandle(",
122
+ "forwardRef("
123
+ ]
124
+ }
125
+ }
@@ -0,0 +1,89 @@
1
+ {
2
+ "language": "shadcn",
3
+ "implementationPatterns": [
4
+ {
5
+ "name": "ForwardRef Component",
6
+ "pattern": "const\\s+(\\w+)\\s*=\\s*React\\.forwardRef<",
7
+ "captureGroup": 1,
8
+ "description": "React.forwardRef component implementation"
9
+ },
10
+ {
11
+ "name": "Component DisplayName",
12
+ "pattern": "(\\w+)\\.displayName\\s*=",
13
+ "captureGroup": 1,
14
+ "description": "Component displayName assignment for DevTools"
15
+ },
16
+ {
17
+ "name": "CVA Variant Implementation",
18
+ "pattern": "const\\s+(\\w+Variants?)\\s*=\\s*cva\\(",
19
+ "captureGroup": 1,
20
+ "description": "cva() class-variance-authority variant definition"
21
+ },
22
+ {
23
+ "name": "cn() Utility Function",
24
+ "pattern": "function\\s+(cn)\\(\\.\\.\\.",
25
+ "captureGroup": 1,
26
+ "description": "cn() class merging utility function implementation"
27
+ },
28
+ {
29
+ "name": "cn() Arrow Utility",
30
+ "pattern": "(?:export\\s+)?const\\s+(cn)\\s*=\\s*\\(",
31
+ "captureGroup": 1,
32
+ "description": "cn() utility implemented as arrow function"
33
+ },
34
+ {
35
+ "name": "useToast Hook",
36
+ "pattern": "function\\s+(useToast)\\s*\\(",
37
+ "captureGroup": 1,
38
+ "description": "useToast hook implementation for toast notifications"
39
+ },
40
+ {
41
+ "name": "Toast Reducer",
42
+ "pattern": "(?:const|function)\\s+(\\w*[Rr]educer)\\s*[=(]",
43
+ "captureGroup": 1,
44
+ "description": "Toast state reducer implementation"
45
+ },
46
+ {
47
+ "name": "FormField Context Provider",
48
+ "pattern": "<FormFieldContext\\.Provider\\s+value=\\{([^}]+)\\}",
49
+ "captureGroup": 1,
50
+ "description": "FormField context provider wrapping form fields"
51
+ },
52
+ {
53
+ "name": "Custom Hook Implementation",
54
+ "pattern": "(?:export\\s+)?function\\s+(use\\w+)\\s*\\(",
55
+ "captureGroup": 1,
56
+ "description": "Custom React hook implementation"
57
+ },
58
+ {
59
+ "name": "Radix Primitive Wrapper",
60
+ "pattern": "<(\\w+Primitive)\\b",
61
+ "captureGroup": 1,
62
+ "description": "Wrapper around a Radix UI primitive component"
63
+ },
64
+ {
65
+ "name": "DataTable Implementation",
66
+ "pattern": "function\\s+(DataTable)[<(]",
67
+ "captureGroup": 1,
68
+ "description": "DataTable component implementation with TanStack Table"
69
+ },
70
+ {
71
+ "name": "Column Accessor Implementation",
72
+ "pattern": "(?:accessorKey|accessorFn):\\s*[\"']?(\\w+)",
73
+ "captureGroup": 1,
74
+ "description": "DataTable column accessor definition"
75
+ },
76
+ {
77
+ "name": "Form Validation Schema",
78
+ "pattern": "const\\s+(\\w+Schema)\\s*=\\s*z\\.",
79
+ "captureGroup": 1,
80
+ "description": "Zod validation schema implementation for forms"
81
+ },
82
+ {
83
+ "name": "Component Composition with Slot",
84
+ "pattern": "asChild\\s*(?:\\?|&&)\\s*.*<(Slot)\\b",
85
+ "captureGroup": 1,
86
+ "description": "Component composition using Radix Slot for asChild pattern"
87
+ }
88
+ ]
89
+ }
@@ -18,17 +18,73 @@
18
18
  "implementationKeyword": "source",
19
19
  "pattern": "(?:source|\\.)\\s+([\\w./]+)",
20
20
  "description": "Sourcing another script (include)"
21
+ },
22
+ {
23
+ "interface": "callback_pattern",
24
+ "implementationKeyword": "function",
25
+ "pattern": "^\\s*(?:function\\s+)?(\\w+_(?:callback|handler|hook))\\s*\\(\\s*\\)",
26
+ "description": "Functions following callback/handler/hook naming convention"
27
+ },
28
+ {
29
+ "interface": "completion_function",
30
+ "implementationKeyword": "complete -F",
31
+ "pattern": "^\\s*(?:function\\s+)?(_\\w+)\\s*\\(\\s*\\).*#.*completion",
32
+ "description": "Programmable completion functions (typically prefixed with _)"
33
+ },
34
+ {
35
+ "interface": "trap_handler",
36
+ "implementationKeyword": "trap",
37
+ "pattern": "^\\s*(?:function\\s+)?(cleanup|on_exit|on_err|handle_\\w+)\\s*\\(\\s*\\)",
38
+ "description": "Functions used as trap signal handlers"
39
+ },
40
+ {
41
+ "interface": "subcommand_pattern",
42
+ "implementationKeyword": "case",
43
+ "pattern": "^\\s*(?:function\\s+)?cmd_(\\w+)\\s*\\(\\s*\\)|^\\s*(?:function\\s+)?subcmd_(\\w+)",
44
+ "description": "Functions implementing CLI subcommands (cmd_* or subcmd_* prefix)"
45
+ },
46
+ {
47
+ "interface": "Widget",
48
+ "implementationKeyword": "zle",
49
+ "pattern": "zle\\s+-N\\s+(\\w+)",
50
+ "description": "ZLE widget registration"
51
+ },
52
+ {
53
+ "interface": "Completion",
54
+ "implementationKeyword": "compdef",
55
+ "pattern": "compdef\\s+(\\w+)",
56
+ "description": "Completion function binding"
57
+ },
58
+ {
59
+ "interface": "Autoload",
60
+ "implementationKeyword": "autoload",
61
+ "pattern": "autoload\\s+(?:-[Uz]+\\s+)*(\\w+)",
62
+ "description": "Autoloaded function"
21
63
  }
22
64
  ],
23
65
  "keywords": {
24
66
  "interface": [
25
67
  "function name",
26
- "alias"
68
+ "alias",
69
+ "callback",
70
+ "handler",
71
+ "hook",
72
+ "plugin",
73
+ "override",
74
+ "autoload",
75
+ "zle -N",
76
+ "compdef"
27
77
  ],
28
78
  "implementation": [
29
79
  "function...{}",
30
80
  "() {}",
31
- "alias...="
32
- ]
81
+ "alias...=",
82
+ "function",
83
+ "complete -F",
84
+ "trap",
85
+ "() {",
86
+ "autoload -Uz"
87
+ ],
88
+ "note": "Bash does not have formal interface/implementation constructs. Patterns here detect convention-based implementations like callback naming and completion functions."
33
89
  }
34
90
  }
@@ -0,0 +1,24 @@
1
+ {
2
+ "language": "angular",
3
+ "inlayHintPatterns": [
4
+ { "pattern": "(\\w+)\\s*=\\s*inject\\s*\\(\\s*(\\w+)\\s*\\)", "captureGroup": 1, "label": ": ${2}", "kind": 1, "tooltip": "Injected type from inject() call", "position": "after" },
5
+ { "pattern": "(\\w+)\\s*=\\s*signal\\s*<([^>]+)>\\s*\\(", "captureGroup": 1, "label": ": WritableSignal<${2}>", "kind": 1, "tooltip": "Writable signal type", "position": "after" },
6
+ { "pattern": "(\\w+)\\s*=\\s*signal\\s*\\(\\s*(['\"])(.+?)\\2\\s*\\)", "captureGroup": 1, "label": ": WritableSignal<string>", "kind": 1, "tooltip": "Signal inferred as string type", "position": "after" },
7
+ { "pattern": "(\\w+)\\s*=\\s*computed\\s*\\(", "captureGroup": 1, "label": ": Signal<…>", "kind": 1, "tooltip": "Computed signal return type", "position": "after" },
8
+ { "pattern": "(\\w+)\\s*=\\s*input(?:\\.required)?\\s*<([^>]+)>\\s*\\(", "captureGroup": 1, "label": ": InputSignal<${2}>", "kind": 1, "tooltip": "Signal-based input type", "position": "after" },
9
+ { "pattern": "(\\w+)\\s*=\\s*output\\s*<([^>]+)>\\s*\\(", "captureGroup": 1, "label": ": OutputEmitterRef<${2}>", "kind": 1, "tooltip": "Signal-based output event type", "position": "after" },
10
+ { "pattern": "\\|\\s*(\\w+)\\b", "captureGroup": 1, "label": "→ transformed", "kind": 2, "tooltip": "Pipe transform return value", "position": "after" },
11
+ { "pattern": "new\\s+FormControl\\s*<([^>]+)>\\s*\\(", "captureGroup": 1, "label": "FormControl<${1}>", "kind": 1, "tooltip": "Typed form control value type", "position": "after" },
12
+ { "pattern": "\\.subscribe\\s*\\(\\s*(\\w+)\\s*=>", "captureGroup": 1, "label": ": Observable emission", "kind": 1, "tooltip": "Observable subscription callback parameter", "position": "after" },
13
+ { "pattern": "this\\.route\\.(?:params|queryParams|paramMap)\\b", "captureGroup": 0, "label": ": Observable<Params>", "kind": 1, "tooltip": "Route parameter observable type", "position": "after" }
14
+ ],
15
+ "typeInferenceRules": [
16
+ { "pattern": "(\\w+)\\s*=\\s*signal\\s*\\(\\s*(\\d+)\\s*\\)", "inferredType": "WritableSignal<number>", "description": "Numeric literal initializer infers number signal" },
17
+ { "pattern": "(\\w+)\\s*=\\s*signal\\s*\\(\\s*true|false\\s*\\)", "inferredType": "WritableSignal<boolean>", "description": "Boolean literal initializer infers boolean signal" },
18
+ { "pattern": "(\\w+)\\s*=\\s*signal\\s*\\(\\s*['\"].*?['\"]\\s*\\)", "inferredType": "WritableSignal<string>", "description": "String literal initializer infers string signal" },
19
+ { "pattern": "(\\w+)\\s*=\\s*signal\\s*\\(\\s*\\[\\]\\s*\\)", "inferredType": "WritableSignal<any[]>", "description": "Empty array initializer infers array signal" },
20
+ { "pattern": "(\\w+)\\s*=\\s*inject\\s*\\(\\s*(\\w+)\\s*\\)", "inferredType": "${2}", "description": "inject() call infers the type of the provided token" },
21
+ { "pattern": "new\\s+FormControl\\s*\\(\\s*['\"].*?['\"]\\s*\\)", "inferredType": "FormControl<string | null>", "description": "FormControl with string initial value" },
22
+ { "pattern": "new\\s+FormGroup\\s*\\(\\s*\\{", "inferredType": "FormGroup", "description": "FormGroup inferred from object literal controls" }
23
+ ]
24
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "language": "nestjs",
3
+ "inlayHintPatterns": [
4
+ { "pattern": "constructor\\((?:private|protected|public)\\s+(?:readonly\\s+)?(\\w+):\\s*(\\w+)", "kind": 1, "label": ": {type}", "position": "after_capture_1", "paddingLeft": true, "description": "Show injected service types" },
5
+ { "pattern": "@(Body|Param|Query|Headers)\\((?:['\"]([^'\"]+)['\"])?\\)\\s+(\\w+)", "kind": 2, "label": "{param_name}:", "position": "before_capture_3", "paddingRight": true, "description": "Show decorator parameter source" },
6
+ { "pattern": "(\\w+)\\s*=\\s*(?:await\\s+)?this\\.(\\w+Service)\\.(\\w+)\\(", "kind": 1, "label": ": {inferred_type}", "position": "after_capture_1", "paddingLeft": true, "description": "Infer service method return type" },
7
+ { "pattern": "(?:const|let)\\s+(\\w+)\\s*=\\s*(?:await\\s+)?this\\.configService\\.get(?:<[^>]+>)?\\(['\"]([^'\"]+)['\"]\\)", "kind": 1, "label": ": {config_type}", "position": "after_capture_1", "paddingLeft": true, "description": "Config value type hint" },
8
+ { "pattern": "@HttpCode\\((\\d+)\\)", "kind": 2, "label": "HTTP {status}", "position": "after_capture_1", "paddingLeft": true, "description": "HTTP status code meaning" },
9
+ { "pattern": "@(Get|Post|Put|Patch|Delete)\\(['\"]([^'\"]*)['\"]\\)", "kind": 2, "label": "{method} {path}", "position": "after_capture_0", "paddingLeft": true, "description": "Full route path hint" },
10
+ { "pattern": "\\bnew\\s+(\\w+Exception)\\(", "kind": 1, "label": "extends HttpException", "position": "after_capture_1", "paddingLeft": true, "description": "Exception class hierarchy" },
11
+ { "pattern": "module\\.get<(\\w+)>\\((\\w+)\\)", "kind": 1, "label": ": {type}", "position": "after_capture_0", "paddingLeft": true, "description": "Testing module.get return type" },
12
+ { "pattern": "(\\w+)\\s*=\\s*(.+)", "kind": 1, "label": ": {inferred_type}", "position": "after_capture_1", "paddingLeft": true, "description": "Variable type inference" }
13
+ ],
14
+ "typeInferenceRules": {
15
+ "string_literal": { "pattern": "['\"].*['\"]", "type": "string" },
16
+ "number_literal": { "pattern": "\\d+(\\.\\d+)?", "type": "number" },
17
+ "boolean_literal": { "pattern": "\\b(true|false)\\b", "type": "boolean" },
18
+ "array_literal": { "pattern": "\\[.*\\]", "type": "array" },
19
+ "object_literal": { "pattern": "\\{.*\\}", "type": "object" },
20
+ "null_literal": { "pattern": "\\b(null|undefined)\\b", "type": "null" },
21
+ "new_instance": { "pattern": "new\\s+(\\w+)\\(", "type": "{capture_1}" },
22
+ "await_expression": { "pattern": "await\\s+", "type": "Promise<unknown>" }
23
+ }
24
+ }