@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.
- package/data/codeActions/angular.json +126 -0
- package/data/codeActions/css.json +111 -0
- package/data/codeActions/nestjs.json +124 -0
- package/data/codeActions/nextjs.json +198 -0
- package/data/codeActions/react.json +154 -0
- package/data/codeActions/shadcn.json +112 -0
- package/data/codeActions/shell.json +169 -26
- package/data/codeActions/tailwindcss.json +76 -0
- package/data/codeLens/angular.json +22 -0
- package/data/codeLens/css.json +68 -0
- package/data/codeLens/nestjs.json +21 -0
- package/data/codeLens/nextjs.json +117 -0
- package/data/codeLens/react.json +89 -0
- package/data/codeLens/shadcn.json +89 -0
- package/data/codeLens/shell.json +59 -17
- package/data/codeLens/tailwindcss.json +103 -0
- package/data/color/angular.json +21 -0
- package/data/color/css.json +124 -0
- package/data/color/nestjs.json +18 -0
- package/data/color/nextjs.json +22 -0
- package/data/color/react.json +93 -0
- package/data/color/shadcn.json +66 -0
- package/data/color/shell.json +106 -80
- package/data/color/tailwindcss.json +53 -0
- package/data/commands/angular.json +312 -0
- package/data/commands/css.json +41 -0
- package/data/commands/manifest.json +734 -727
- package/data/commands/nestjs.json +273 -0
- package/data/commands/nextjs.json +123 -0
- package/data/commands/react.json +210 -0
- package/data/commands/shadcn.json +410 -0
- package/data/commands/shell.json +571 -41
- package/data/commands/tailwindcss.json +53 -0
- package/data/completion/angular.json +1490 -0
- package/data/completion/css.json +1176 -0
- package/data/completion/javascript.json +27 -0
- package/data/completion/nestjs.json +1454 -0
- package/data/completion/nextjs.json +1373 -0
- package/data/completion/react.json +1319 -0
- package/data/completion/redis-cli.json +1 -1
- package/data/completion/shadcn.json +1202 -0
- package/data/completion/shell.json +2446 -510
- package/data/completion/tailwindcss.json +284 -0
- package/data/completion/typescript.json +27 -0
- package/data/declaration/angular.json +46 -0
- package/data/declaration/css.json +59 -0
- package/data/declaration/nestjs.json +47 -0
- package/data/declaration/nextjs.json +274 -0
- package/data/declaration/react.json +199 -0
- package/data/declaration/shadcn.json +211 -0
- package/data/declaration/shell.json +343 -24
- package/data/declaration/tailwindcss.json +137 -0
- package/data/definition/angular.json +670 -0
- package/data/definition/css.json +115 -0
- package/data/definition/nestjs.json +684 -0
- package/data/definition/nextjs.json +439 -0
- package/data/definition/react.json +397 -0
- package/data/definition/redis-cli.json +1 -1
- package/data/definition/shadcn.json +99 -0
- package/data/definition/shell.json +820 -0
- package/data/definition/tailwindcss.json +115 -0
- package/data/documentHighlight/angular.json +414 -0
- package/data/documentHighlight/css.json +125 -0
- package/data/documentHighlight/nestjs.json +115 -0
- package/data/documentHighlight/nextjs.json +212 -0
- package/data/documentHighlight/react.json +119 -0
- package/data/documentHighlight/shadcn.json +168 -0
- package/data/documentHighlight/shell.json +664 -334
- package/data/documentHighlight/tailwindcss.json +160 -0
- package/data/documentRangeFormatting/angular.json +45 -0
- package/data/documentRangeFormatting/css.json +101 -0
- package/data/documentRangeFormatting/nestjs.json +17 -0
- package/data/documentRangeFormatting/nextjs.json +17 -0
- package/data/documentRangeFormatting/react.json +78 -0
- package/data/documentRangeFormatting/shadcn.json +45 -0
- package/data/documentRangeFormatting/shell.json +120 -53
- package/data/documentRangeFormatting/tailwindcss.json +55 -0
- package/data/documentSymbol/angular.json +180 -0
- package/data/documentSymbol/css.json +96 -0
- package/data/documentSymbol/nestjs.json +152 -0
- package/data/documentSymbol/nextjs.json +159 -0
- package/data/documentSymbol/react.json +145 -0
- package/data/documentSymbol/shadcn.json +131 -0
- package/data/documentSymbol/shell.json +166 -26
- package/data/documentSymbol/tailwindcss.json +110 -0
- package/data/foldingRange/angular.json +99 -0
- package/data/foldingRange/css.json +66 -0
- package/data/foldingRange/nestjs.json +26 -0
- package/data/foldingRange/nextjs.json +26 -0
- package/data/foldingRange/react.json +120 -0
- package/data/foldingRange/shadcn.json +93 -0
- package/data/foldingRange/shell.json +106 -46
- package/data/foldingRange/tailwindcss.json +60 -0
- package/data/formatting/angular.json +21 -0
- package/data/formatting/css.json +73 -0
- package/data/formatting/nestjs.json +23 -0
- package/data/formatting/nextjs.json +23 -0
- package/data/formatting/react.json +71 -0
- package/data/formatting/shadcn.json +61 -0
- package/data/formatting/shell.json +103 -19
- package/data/formatting/tailwindcss.json +48 -0
- package/data/hover/angular.json +455 -0
- package/data/hover/css.json +300 -0
- package/data/hover/nestjs.json +296 -0
- package/data/hover/nextjs.json +305 -0
- package/data/hover/react.json +173 -0
- package/data/hover/redis-cli.json +1 -1
- package/data/hover/shadcn.json +450 -0
- package/data/hover/shell.json +684 -75
- package/data/hover/tailwindcss.json +968 -0
- package/data/implementation/angular.json +22 -0
- package/data/implementation/css.json +65 -0
- package/data/implementation/nestjs.json +24 -0
- package/data/implementation/nextjs.json +137 -0
- package/data/implementation/react.json +125 -0
- package/data/implementation/shadcn.json +89 -0
- package/data/implementation/shell.json +59 -3
- package/data/implementation/tailwindcss.json +59 -0
- package/data/inlayHints/angular.json +24 -0
- package/data/inlayHints/css.json +87 -0
- package/data/inlayHints/nestjs.json +24 -0
- package/data/inlayHints/nextjs.json +143 -0
- package/data/inlayHints/react.json +177 -0
- package/data/inlayHints/shadcn.json +109 -0
- package/data/inlayHints/shell.json +223 -35
- package/data/inlayHints/tailwindcss.json +111 -0
- package/data/inlineCompletions/angular.json +135 -0
- package/data/inlineCompletions/css.json +125 -0
- package/data/inlineCompletions/javascript.json +12 -0
- package/data/inlineCompletions/nestjs.json +25 -0
- package/data/inlineCompletions/nextjs.json +179 -0
- package/data/inlineCompletions/react.json +203 -0
- package/data/inlineCompletions/shadcn.json +115 -0
- package/data/inlineCompletions/shell.json +185 -35
- package/data/inlineCompletions/tailwindcss.json +411 -0
- package/data/inlineCompletions/typescript.json +12 -0
- package/data/linkedEditingRange/angular.json +23 -0
- package/data/linkedEditingRange/css.json +40 -0
- package/data/linkedEditingRange/nestjs.json +10 -0
- package/data/linkedEditingRange/nextjs.json +11 -0
- package/data/linkedEditingRange/react.json +75 -0
- package/data/linkedEditingRange/shadcn.json +23 -0
- package/data/linkedEditingRange/shell.json +25 -25
- package/data/linkedEditingRange/tailwindcss.json +30 -0
- package/data/links/angular.json +95 -0
- package/data/links/css.json +55 -0
- package/data/links/nestjs.json +130 -0
- package/data/links/nextjs.json +91 -0
- package/data/links/react.json +75 -0
- package/data/links/shadcn.json +98 -0
- package/data/links/shell.json +56 -0
- package/data/links/tailwindcss.json +65 -0
- package/data/manifest.json +399 -150
- package/data/onTypeFormatting/angular.json +14 -0
- package/data/onTypeFormatting/css.json +82 -0
- package/data/onTypeFormatting/nestjs.json +16 -0
- package/data/onTypeFormatting/nextjs.json +17 -0
- package/data/onTypeFormatting/react.json +127 -0
- package/data/onTypeFormatting/shadcn.json +54 -0
- package/data/onTypeFormatting/shell.json +72 -68
- package/data/onTypeFormatting/tailwindcss.json +63 -0
- package/data/rangeSemanticTokens/angular.json +140 -0
- package/data/rangeSemanticTokens/css.json +125 -0
- package/data/rangeSemanticTokens/nestjs.json +27 -0
- package/data/rangeSemanticTokens/nextjs.json +28 -0
- package/data/rangeSemanticTokens/react.json +216 -0
- package/data/rangeSemanticTokens/shadcn.json +140 -0
- package/data/rangeSemanticTokens/shell.json +247 -69
- package/data/rangeSemanticTokens/tailwindcss.json +186 -0
- package/data/references/angular.json +26 -0
- package/data/references/css.json +65 -0
- package/data/references/nestjs.json +24 -0
- package/data/references/nextjs.json +178 -0
- package/data/references/react.json +192 -0
- package/data/references/shadcn.json +101 -0
- package/data/references/shell.json +323 -92
- package/data/references/tailwindcss.json +125 -0
- package/data/rename/angular.json +131 -0
- package/data/rename/css.json +91 -0
- package/data/rename/nestjs.json +32 -0
- package/data/rename/nextjs.json +31 -0
- package/data/rename/react.json +88 -0
- package/data/rename/shadcn.json +79 -0
- package/data/rename/shell.json +101 -31
- package/data/rename/tailwindcss.json +58 -0
- package/data/selectionRange/angular.json +95 -0
- package/data/selectionRange/css.json +55 -0
- package/data/selectionRange/nestjs.json +21 -0
- package/data/selectionRange/nextjs.json +22 -0
- package/data/selectionRange/react.json +87 -0
- package/data/selectionRange/shadcn.json +89 -0
- package/data/selectionRange/shell.json +65 -35
- package/data/selectionRange/tailwindcss.json +35 -0
- package/data/semanticTokens/angular.json +198 -0
- package/data/semanticTokens/css.json +107 -0
- package/data/semanticTokens/nestjs.json +35 -0
- package/data/semanticTokens/nextjs.json +38 -0
- package/data/semanticTokens/react.json +215 -0
- package/data/semanticTokens/shadcn.json +180 -0
- package/data/semanticTokens/shell.json +238 -65
- package/data/semanticTokens/tailwindcss.json +161 -0
- package/data/signatureHelp/angular.json +182 -0
- package/data/signatureHelp/css.json +137 -0
- package/data/signatureHelp/nestjs.json +128 -0
- package/data/signatureHelp/nextjs.json +127 -0
- package/data/signatureHelp/react.json +281 -0
- package/data/signatureHelp/shadcn.json +237 -0
- package/data/signatureHelp/shell.json +797 -104
- package/data/signatureHelp/tailwindcss.json +64 -0
- package/data/typeDefinition/angular.json +362 -0
- package/data/typeDefinition/css.json +53 -0
- package/data/typeDefinition/nestjs.json +334 -0
- package/data/typeDefinition/nextjs.json +285 -0
- package/data/typeDefinition/react.json +236 -0
- package/data/typeDefinition/shadcn.json +292 -0
- package/data/typeDefinition/shell.json +104 -40
- package/data/typeDefinition/tailwindcss.json +47 -0
- package/package.json +1 -1
- package/data/codeActions/bash.json +0 -169
- package/data/codeActions/zsh.json +0 -49
- package/data/codeLens/bash.json +0 -75
- package/data/codeLens/zsh.json +0 -19
- package/data/color/bash.json +0 -100
- package/data/color/zsh.json +0 -80
- package/data/commands/bash.json +0 -102
- package/data/commands/zsh.json +0 -166
- package/data/completion/bash.json +0 -1184
- package/data/completion/zsh.json +0 -973
- package/data/declaration/bash.json +0 -301
- package/data/declaration/zsh.json +0 -205
- package/data/definition/bash.json +0 -565
- package/data/definition/zsh.json +0 -350
- package/data/documentHighlight/bash.json +0 -393
- package/data/documentHighlight/zsh.json +0 -266
- package/data/documentRangeFormatting/bash.json +0 -41
- package/data/documentRangeFormatting/zsh.json +0 -59
- package/data/documentSymbol/bash.json +0 -124
- package/data/documentSymbol/zsh.json +0 -26
- package/data/foldingRange/bash.json +0 -76
- package/data/foldingRange/zsh.json +0 -46
- package/data/formatting/bash.json +0 -88
- package/data/formatting/zsh.json +0 -28
- package/data/hover/bash.json +0 -579
- package/data/hover/zsh.json +0 -96
- package/data/implementation/bash.json +0 -44
- package/data/implementation/zsh.json +0 -41
- package/data/inlayHints/bash.json +0 -207
- package/data/inlayHints/zsh.json +0 -43
- package/data/inlineCompletions/bash.json +0 -155
- package/data/inlineCompletions/zsh.json +0 -17
- package/data/linkedEditingRange/bash.json +0 -25
- package/data/linkedEditingRange/zsh.json +0 -25
- package/data/links/bash.json +0 -56
- package/data/links/zsh.json +0 -15
- package/data/onTypeFormatting/bash.json +0 -68
- package/data/onTypeFormatting/zsh.json +0 -68
- package/data/rangeSemanticTokens/bash.json +0 -90
- package/data/rangeSemanticTokens/zsh.json +0 -76
- package/data/references/bash.json +0 -221
- package/data/references/zsh.json +0 -166
- package/data/rename/bash.json +0 -37
- package/data/rename/zsh.json +0 -31
- package/data/selectionRange/bash.json +0 -35
- package/data/selectionRange/zsh.json +0 -35
- package/data/semanticTokens/bash.json +0 -71
- package/data/semanticTokens/zsh.json +0 -71
- package/data/signatureHelp/bash.json +0 -111
- package/data/signatureHelp/zsh.json +0 -118
- package/data/typeDefinition/bash.json +0 -95
- package/data/typeDefinition/zsh.json +0 -40
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "css",
|
|
3
|
+
"inlayHintPatterns": [
|
|
4
|
+
{
|
|
5
|
+
"pattern": "([.#]?[a-zA-Z_][a-zA-Z0-9_-]*(?:\\s*[>+~]\\s*[.#]?[a-zA-Z_][a-zA-Z0-9_-]*)*)\\s*\\{",
|
|
6
|
+
"kind": "type",
|
|
7
|
+
"label": "specificity: (${id}, ${class}, ${type})",
|
|
8
|
+
"position": "after",
|
|
9
|
+
"description": "Displays the computed specificity of a CSS selector as an (ID, Class, Type) tuple. Helps understand cascade priority."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"pattern": "#([0-9a-fA-F]{3,8})\\b",
|
|
13
|
+
"kind": "type",
|
|
14
|
+
"label": "■ ${color}",
|
|
15
|
+
"position": "after",
|
|
16
|
+
"description": "Shows a color swatch preview inline after hex color values for visual identification."
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"pattern": ":\\s*(-?\\d+(\\.\\d+)?)px\\b",
|
|
20
|
+
"kind": "type",
|
|
21
|
+
"label": "${rem}rem",
|
|
22
|
+
"position": "after",
|
|
23
|
+
"description": "Displays the rem equivalent of pixel values (assumes 16px base). Example: 24px → 1.5rem."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"pattern": ":\\s*(-?\\d+(\\.\\d+)?)rem\\b",
|
|
27
|
+
"kind": "type",
|
|
28
|
+
"label": "${px}px",
|
|
29
|
+
"position": "after",
|
|
30
|
+
"description": "Displays the pixel equivalent of rem values (assumes 16px base). Example: 1.5rem → 24px."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"pattern": "margin:\\s*([^;]+);",
|
|
34
|
+
"kind": "type",
|
|
35
|
+
"label": "↑${top} →${right} ↓${bottom} ←${left}",
|
|
36
|
+
"position": "after",
|
|
37
|
+
"description": "Expands margin shorthand to show computed values for each side (top, right, bottom, left)."
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"pattern": "padding:\\s*([^;]+);",
|
|
41
|
+
"kind": "type",
|
|
42
|
+
"label": "↑${top} →${right} ↓${bottom} ←${left}",
|
|
43
|
+
"position": "after",
|
|
44
|
+
"description": "Expands padding shorthand to show computed values for each side (top, right, bottom, left)."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"pattern": "z-index:\\s*(-?\\d+)",
|
|
48
|
+
"kind": "type",
|
|
49
|
+
"label": "stacking layer: ${level}",
|
|
50
|
+
"position": "after",
|
|
51
|
+
"description": "Indicates the relative stacking layer of the z-index value within the current stacking context."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"pattern": "transition:\\s*([^;]+);",
|
|
55
|
+
"kind": "type",
|
|
56
|
+
"label": "⏱ ${totalDuration}",
|
|
57
|
+
"position": "after",
|
|
58
|
+
"description": "Shows the total transition duration including delay for quick reference."
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"pattern": "animation:\\s*([^;]+);",
|
|
62
|
+
"kind": "type",
|
|
63
|
+
"label": "⏱ ${duration} × ${iterations}",
|
|
64
|
+
"position": "after",
|
|
65
|
+
"description": "Shows animation duration and iteration count for quick reference."
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"pattern": "grid-template-columns:\\s*repeat\\((\\d+|auto-fill|auto-fit),\\s*([^)]+)\\)",
|
|
69
|
+
"kind": "type",
|
|
70
|
+
"label": "${count} columns",
|
|
71
|
+
"position": "after",
|
|
72
|
+
"description": "Shows the number of grid columns generated by repeat() for easier visualization."
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"pattern": "font-size:\\s*clamp\\(([^,]+),\\s*([^,]+),\\s*([^)]+)\\)",
|
|
76
|
+
"kind": "type",
|
|
77
|
+
"label": "min: ${1}, preferred: ${2}, max: ${3}",
|
|
78
|
+
"position": "after",
|
|
79
|
+
"description": "Breaks down clamp() function parameters for fluid font-size declarations."
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"typeInferenceRules": {
|
|
83
|
+
"specificity": "Computed as (count of #id selectors, count of .class/:pseudo-class/[attribute] selectors, count of element/::pseudo-element selectors)",
|
|
84
|
+
"pxToRem": "Divide pixel value by 16 (default browser font-size)",
|
|
85
|
+
"shorthandExpansion": "1 value = all sides; 2 values = vertical|horizontal; 3 values = top|horizontal|bottom; 4 values = top|right|bottom|left"
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "nextjs",
|
|
3
|
+
"inlayHintPatterns": [
|
|
4
|
+
{
|
|
5
|
+
"pattern": "(?:const|let|var)\\s+(\\w+)\\s*=\\s*(?!\\{|\\[|\\(|function|class|new)(.+)",
|
|
6
|
+
"kind": 1,
|
|
7
|
+
"label": ": ${inferredType}",
|
|
8
|
+
"position": "afterIdentifier",
|
|
9
|
+
"paddingLeft": false,
|
|
10
|
+
"paddingRight": true,
|
|
11
|
+
"description": "Infer type for variable assignments"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"pattern": "const\\s+\\[(\\w+),\\s*set\\w+\\]\\s*=\\s*useState\\(([^)]*?)\\)",
|
|
15
|
+
"kind": 1,
|
|
16
|
+
"label": ": ${inferredType}",
|
|
17
|
+
"position": "afterIdentifier",
|
|
18
|
+
"paddingLeft": false,
|
|
19
|
+
"paddingRight": true,
|
|
20
|
+
"description": "Infer useState generic type from initial value"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"pattern": "const\\s+(router)\\s*=\\s*useRouter\\(\\)",
|
|
24
|
+
"kind": 1,
|
|
25
|
+
"label": ": AppRouterInstance",
|
|
26
|
+
"position": "afterIdentifier",
|
|
27
|
+
"paddingLeft": false,
|
|
28
|
+
"paddingRight": true,
|
|
29
|
+
"description": "Show useRouter return type"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"pattern": "const\\s+(pathname)\\s*=\\s*usePathname\\(\\)",
|
|
33
|
+
"kind": 1,
|
|
34
|
+
"label": ": string",
|
|
35
|
+
"position": "afterIdentifier",
|
|
36
|
+
"paddingLeft": false,
|
|
37
|
+
"paddingRight": true,
|
|
38
|
+
"description": "Show usePathname return type"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"pattern": "const\\s+(searchParams)\\s*=\\s*useSearchParams\\(\\)",
|
|
42
|
+
"kind": 1,
|
|
43
|
+
"label": ": ReadonlyURLSearchParams",
|
|
44
|
+
"position": "afterIdentifier",
|
|
45
|
+
"paddingLeft": false,
|
|
46
|
+
"paddingRight": true,
|
|
47
|
+
"description": "Show useSearchParams return type"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"pattern": "export\\s+default\\s+(?:async\\s+)?function\\s+\\w+\\(\\s*\\{\\s*(params)\\s*\\}",
|
|
51
|
+
"kind": 1,
|
|
52
|
+
"label": ": { [key: string]: string | string[] }",
|
|
53
|
+
"position": "afterIdentifier",
|
|
54
|
+
"paddingLeft": false,
|
|
55
|
+
"paddingRight": true,
|
|
56
|
+
"description": "Annotate params type in page components"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"pattern": "export\\s+default\\s+(?:async\\s+)?function\\s+\\w+\\(\\s*\\{[^}]*(searchParams)[^}]*\\}",
|
|
60
|
+
"kind": 1,
|
|
61
|
+
"label": ": { [key: string]: string | string[] | undefined }",
|
|
62
|
+
"position": "afterIdentifier",
|
|
63
|
+
"paddingLeft": false,
|
|
64
|
+
"paddingRight": true,
|
|
65
|
+
"description": "Annotate searchParams type in page components"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"pattern": "const\\s+(\\w+)\\s*=\\s*await\\s+fetch\\(",
|
|
69
|
+
"kind": 1,
|
|
70
|
+
"label": ": Response",
|
|
71
|
+
"position": "afterIdentifier",
|
|
72
|
+
"paddingLeft": false,
|
|
73
|
+
"paddingRight": true,
|
|
74
|
+
"description": "Show fetch response type"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"pattern": "async\\s+function\\s+\\w+Action\\([^)]*\\)\\s*(?::\\s*Promise<([^>]+)>)?",
|
|
78
|
+
"kind": 1,
|
|
79
|
+
"label": "=> Promise<void>",
|
|
80
|
+
"position": "afterParameters",
|
|
81
|
+
"paddingLeft": true,
|
|
82
|
+
"paddingRight": false,
|
|
83
|
+
"description": "Show server action return type"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"pattern": "\\b(?:redirect|notFound|revalidatePath|revalidateTag)\\(([^,)]+)",
|
|
87
|
+
"kind": 2,
|
|
88
|
+
"label": "url:",
|
|
89
|
+
"position": "beforeArgument",
|
|
90
|
+
"paddingLeft": false,
|
|
91
|
+
"paddingRight": true,
|
|
92
|
+
"description": "Parameter name hints at call sites"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"pattern": "export\\s+(?:async\\s+)?function\\s+(?:GET|POST|PUT|PATCH|DELETE)\\s*\\(\\s*(\\w+)",
|
|
96
|
+
"kind": 1,
|
|
97
|
+
"label": ": NextRequest",
|
|
98
|
+
"position": "afterIdentifier",
|
|
99
|
+
"paddingLeft": false,
|
|
100
|
+
"paddingRight": true,
|
|
101
|
+
"description": "Annotate route handler request parameter type"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"pattern": "export\\s+(?:async\\s+)?function\\s+(?:GET|POST|PUT|PATCH|DELETE)\\s*\\([^,]+,\\s*\\{\\s*(params)\\s*\\}",
|
|
105
|
+
"kind": 1,
|
|
106
|
+
"label": ": { [key: string]: string }",
|
|
107
|
+
"position": "afterIdentifier",
|
|
108
|
+
"paddingLeft": false,
|
|
109
|
+
"paddingRight": true,
|
|
110
|
+
"description": "Annotate route handler context params type"
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"typeInferenceRules": {
|
|
114
|
+
"string": {
|
|
115
|
+
"pattern": "^[\"'`]",
|
|
116
|
+
"type": "string"
|
|
117
|
+
},
|
|
118
|
+
"number": {
|
|
119
|
+
"pattern": "^\\d+\\.?\\d*$",
|
|
120
|
+
"type": "number"
|
|
121
|
+
},
|
|
122
|
+
"boolean": {
|
|
123
|
+
"pattern": "^(true|false)$",
|
|
124
|
+
"type": "boolean"
|
|
125
|
+
},
|
|
126
|
+
"array": {
|
|
127
|
+
"pattern": "^\\[",
|
|
128
|
+
"type": "Array<unknown>"
|
|
129
|
+
},
|
|
130
|
+
"null": {
|
|
131
|
+
"pattern": "^null$",
|
|
132
|
+
"type": "null"
|
|
133
|
+
},
|
|
134
|
+
"object": {
|
|
135
|
+
"pattern": "^\\{",
|
|
136
|
+
"type": "Record<string, unknown>"
|
|
137
|
+
},
|
|
138
|
+
"jsx": {
|
|
139
|
+
"pattern": "^<[A-Z]",
|
|
140
|
+
"type": "JSX.Element"
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "react",
|
|
3
|
+
"inlayHintPatterns": [
|
|
4
|
+
{
|
|
5
|
+
"pattern": "const\\s+\\[(\\w+),\\s*(\\w+)\\]\\s*=\\s*useState\\s*\\(([^)]*?)\\)",
|
|
6
|
+
"hints": [
|
|
7
|
+
{
|
|
8
|
+
"position": "after:captureGroup:1",
|
|
9
|
+
"label": ": S",
|
|
10
|
+
"description": "Inferred state type from initial value",
|
|
11
|
+
"kind": "type"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"position": "after:captureGroup:2",
|
|
15
|
+
"label": ": Dispatch<SetStateAction<S>>",
|
|
16
|
+
"description": "State setter function type",
|
|
17
|
+
"kind": "type"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"pattern": "const\\s+(\\w+)\\s*=\\s*useRef\\s*\\(([^)]*?)\\)",
|
|
23
|
+
"hints": [
|
|
24
|
+
{
|
|
25
|
+
"position": "after:captureGroup:1",
|
|
26
|
+
"label": ": MutableRefObject<T>",
|
|
27
|
+
"description": "Ref object type inferred from initial value",
|
|
28
|
+
"kind": "type"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"pattern": "const\\s+(\\w+)\\s*=\\s*useMemo\\s*\\(\\s*\\(\\)\\s*=>",
|
|
34
|
+
"hints": [
|
|
35
|
+
{
|
|
36
|
+
"position": "after:captureGroup:1",
|
|
37
|
+
"label": ": T",
|
|
38
|
+
"description": "Memoized value type inferred from factory return",
|
|
39
|
+
"kind": "type"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"pattern": "const\\s+(\\w+)\\s*=\\s*useCallback\\s*\\(",
|
|
45
|
+
"hints": [
|
|
46
|
+
{
|
|
47
|
+
"position": "after:captureGroup:1",
|
|
48
|
+
"label": ": T",
|
|
49
|
+
"description": "Memoized callback type inferred from function",
|
|
50
|
+
"kind": "type"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"pattern": "const\\s+(\\w+)\\s*=\\s*useContext\\s*\\((\\w+)\\)",
|
|
56
|
+
"hints": [
|
|
57
|
+
{
|
|
58
|
+
"position": "after:captureGroup:1",
|
|
59
|
+
"label": ": ContextType",
|
|
60
|
+
"description": "Context value type from provider",
|
|
61
|
+
"kind": "type"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"pattern": "const\\s+\\[(\\w+),\\s*(\\w+)\\]\\s*=\\s*useReducer\\s*\\(",
|
|
67
|
+
"hints": [
|
|
68
|
+
{
|
|
69
|
+
"position": "after:captureGroup:1",
|
|
70
|
+
"label": ": State",
|
|
71
|
+
"description": "Reducer state type",
|
|
72
|
+
"kind": "type"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"position": "after:captureGroup:2",
|
|
76
|
+
"label": ": Dispatch<Action>",
|
|
77
|
+
"description": "Reducer dispatch function",
|
|
78
|
+
"kind": "type"
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"pattern": "const\\s+(\\w+)\\s*=\\s*useId\\s*\\(\\)",
|
|
84
|
+
"hints": [
|
|
85
|
+
{
|
|
86
|
+
"position": "after:captureGroup:1",
|
|
87
|
+
"label": ": string",
|
|
88
|
+
"description": "Unique ID string",
|
|
89
|
+
"kind": "type"
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"pattern": "const\\s+\\[(\\w+),\\s*(\\w+)\\]\\s*=\\s*useTransition\\s*\\(\\)",
|
|
95
|
+
"hints": [
|
|
96
|
+
{
|
|
97
|
+
"position": "after:captureGroup:1",
|
|
98
|
+
"label": ": boolean",
|
|
99
|
+
"description": "Pending transition state",
|
|
100
|
+
"kind": "type"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"position": "after:captureGroup:2",
|
|
104
|
+
"label": ": TransitionStartFunction",
|
|
105
|
+
"description": "Function to start a transition",
|
|
106
|
+
"kind": "type"
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"pattern": "const\\s+(\\w+)\\s*=\\s*useDeferredValue\\s*\\(([^)]+)\\)",
|
|
112
|
+
"hints": [
|
|
113
|
+
{
|
|
114
|
+
"position": "after:captureGroup:1",
|
|
115
|
+
"label": ": T",
|
|
116
|
+
"description": "Deferred value type, same as input",
|
|
117
|
+
"kind": "type"
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"pattern": "useEffect\\s*\\(\\s*\\(\\)\\s*=>\\s*\\{[^}]*\\}\\s*,\\s*\\[([^\\]]*)\\]",
|
|
123
|
+
"hints": [
|
|
124
|
+
{
|
|
125
|
+
"position": "before:captureGroup:1",
|
|
126
|
+
"label": "deps: ",
|
|
127
|
+
"description": "Dependency array for the effect",
|
|
128
|
+
"kind": "parameter"
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"pattern": "useMemo\\s*\\(\\s*\\(\\)\\s*=>[^,]*,\\s*\\[([^\\]]*)\\]",
|
|
134
|
+
"hints": [
|
|
135
|
+
{
|
|
136
|
+
"position": "before:captureGroup:1",
|
|
137
|
+
"label": "deps: ",
|
|
138
|
+
"description": "Dependency array for memoization",
|
|
139
|
+
"kind": "parameter"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"pattern": "useCallback\\s*\\([^,]*,\\s*\\[([^\\]]*)\\]",
|
|
145
|
+
"hints": [
|
|
146
|
+
{
|
|
147
|
+
"position": "before:captureGroup:1",
|
|
148
|
+
"label": "deps: ",
|
|
149
|
+
"description": "Dependency array for callback memoization",
|
|
150
|
+
"kind": "parameter"
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"pattern": "(?:function|const)\\s+([A-Z][a-zA-Z0-9]*)\\s*(?::\\s*React\\.FC<(\\w+)>)?\\s*(?:=\\s*)?\\(([^)]*?)\\)",
|
|
156
|
+
"hints": [
|
|
157
|
+
{
|
|
158
|
+
"position": "before:captureGroup:3",
|
|
159
|
+
"label": "props: ",
|
|
160
|
+
"description": "Component props parameter",
|
|
161
|
+
"kind": "parameter"
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"pattern": "const\\s+(\\w+)\\s*=\\s*useSyncExternalStore\\s*\\(",
|
|
167
|
+
"hints": [
|
|
168
|
+
{
|
|
169
|
+
"position": "after:captureGroup:1",
|
|
170
|
+
"label": ": Snapshot",
|
|
171
|
+
"description": "External store snapshot type",
|
|
172
|
+
"kind": "type"
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
}
|
|
176
|
+
]
|
|
177
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "shadcn",
|
|
3
|
+
"inlayHintPatterns": [
|
|
4
|
+
{
|
|
5
|
+
"pattern": "const\\s+(\\w+Variants?)\\s*=\\s*cva\\(",
|
|
6
|
+
"captureGroup": 1,
|
|
7
|
+
"label": ": (props?: VariantProps) => string",
|
|
8
|
+
"kind": 1,
|
|
9
|
+
"tooltip": "cva() returns a function that accepts variant props and returns a class string",
|
|
10
|
+
"position": "after"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"pattern": "\\bcn\\(([^)]+)\\)",
|
|
14
|
+
"captureGroup": 0,
|
|
15
|
+
"label": ": string",
|
|
16
|
+
"kind": 1,
|
|
17
|
+
"tooltip": "cn() returns a merged Tailwind CSS class string",
|
|
18
|
+
"position": "after"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"pattern": "const\\s+\\{\\s*(toast).*\\}\\s*=\\s*useToast\\(",
|
|
22
|
+
"captureGroup": 1,
|
|
23
|
+
"label": ": (props: ToastProps) => { id, dismiss, update }",
|
|
24
|
+
"kind": 1,
|
|
25
|
+
"tooltip": "toast() creates a new toast notification and returns control handles",
|
|
26
|
+
"position": "after"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"pattern": "const\\s+(\\w+)\\s*=\\s*useFormField\\(",
|
|
30
|
+
"captureGroup": 1,
|
|
31
|
+
"label": ": { id, name, formItemId, formDescriptionId, formMessageId, invalid, isDirty, isTouched, error }",
|
|
32
|
+
"kind": 1,
|
|
33
|
+
"tooltip": "useFormField() returns form field state and accessibility IDs",
|
|
34
|
+
"position": "after"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"pattern": "variant=[\"'](\\w+)[\"']",
|
|
38
|
+
"captureGroup": 1,
|
|
39
|
+
"label": ": VariantProps[\"variant\"]",
|
|
40
|
+
"kind": 1,
|
|
41
|
+
"tooltip": "Variant prop value from the component's cva definition",
|
|
42
|
+
"position": "after"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"pattern": "React\\.forwardRef<(\\w+),\\s*(\\w+)>",
|
|
46
|
+
"captureGroup": 1,
|
|
47
|
+
"label": ": React.Ref<$1>",
|
|
48
|
+
"kind": 1,
|
|
49
|
+
"tooltip": "Ref type forwarded to the underlying DOM element",
|
|
50
|
+
"position": "after"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"pattern": "<FormField[^>]*render=\\{\\(\\{\\s*field\\s*\\}\\)",
|
|
54
|
+
"captureGroup": 0,
|
|
55
|
+
"label": ": ControllerRenderProps<TFieldValues>",
|
|
56
|
+
"kind": 1,
|
|
57
|
+
"tooltip": "field object contains value, onChange, onBlur, name, and ref",
|
|
58
|
+
"position": "after"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"pattern": "z\\.infer<typeof\\s+(\\w+)>",
|
|
62
|
+
"captureGroup": 1,
|
|
63
|
+
"label": ": inferred type",
|
|
64
|
+
"kind": 1,
|
|
65
|
+
"tooltip": "Type inferred from the referenced zod schema",
|
|
66
|
+
"position": "after"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"pattern": "accessorKey:\\s*[\"'](\\w+)[\"']",
|
|
70
|
+
"captureGroup": 1,
|
|
71
|
+
"label": ": keyof TData",
|
|
72
|
+
"kind": 1,
|
|
73
|
+
"tooltip": "Column accessor key typed to a property of the row data",
|
|
74
|
+
"position": "after"
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"typeInferenceRules": [
|
|
78
|
+
{
|
|
79
|
+
"pattern": "const\\s+\\w+\\s*=\\s*cva\\(",
|
|
80
|
+
"inferredType": "(props?: VariantProps<typeof variants>) => string",
|
|
81
|
+
"description": "cva() call infers a variant function type based on the provided config"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"pattern": "useForm<z\\.infer<typeof\\s+(\\w+)>>",
|
|
85
|
+
"inferredType": "UseFormReturn<z.infer<typeof $1>>",
|
|
86
|
+
"description": "useForm infers form type from zod schema via z.infer"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"pattern": "useReactTable\\(\\{",
|
|
90
|
+
"inferredType": "Table<TData>",
|
|
91
|
+
"description": "useReactTable returns a Table instance typed to the data shape"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"pattern": "const\\s+\\{\\s*toast\\s*,?\\s*toasts\\s*\\}\\s*=\\s*useToast\\(",
|
|
95
|
+
"inferredType": "{ toast: ToastFunction; toasts: Toast[]; dismiss: (id?: string) => void }",
|
|
96
|
+
"description": "useToast hook returns toast action and current toasts array"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"pattern": "React\\.forwardRef<(\\w+),\\s*(\\w+)>",
|
|
100
|
+
"inferredType": "React.ForwardRefExoticComponent<$2 & React.RefAttributes<$1>>",
|
|
101
|
+
"description": "forwardRef infers an exotic component type from element and props generics"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"pattern": "const\\s+\\w+\\s*=\\s*useFormField\\(",
|
|
105
|
+
"inferredType": "{ id: string; name: string; formItemId: string; formDescriptionId: string; formMessageId: string; invalid: boolean; isDirty: boolean; isTouched: boolean; error?: FieldError }",
|
|
106
|
+
"description": "useFormField returns form field context with validation state"
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}
|