@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.
- package/data/codeActions/angular.json +126 -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/codeLens/angular.json +22 -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 +56 -0
- package/data/color/angular.json +21 -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/commands/angular.json +312 -0
- package/data/commands/manifest.json +5 -0
- 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/completion/angular.json +1490 -0
- package/data/completion/css.json +793 -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/shadcn.json +1202 -0
- package/data/completion/shell.json +2446 -510
- package/data/declaration/angular.json +46 -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 +72 -0
- package/data/definition/angular.json +670 -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/shadcn.json +99 -0
- package/data/definition/shell.json +820 -0
- package/data/documentHighlight/angular.json +414 -0
- package/data/documentHighlight/css.json +77 -2
- 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 +105 -10
- package/data/documentRangeFormatting/angular.json +45 -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/documentSymbol/angular.json +180 -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 +49 -0
- package/data/foldingRange/angular.json +99 -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/formatting/angular.json +21 -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/hover/angular.json +455 -0
- package/data/hover/css.json +232 -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/shadcn.json +450 -0
- package/data/hover/shell.json +684 -75
- package/data/implementation/angular.json +22 -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/inlayHints/angular.json +24 -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/inlineCompletions/angular.json +135 -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/linkedEditingRange/angular.json +23 -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/links/angular.json +95 -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 +25 -0
- package/data/manifest.json +339 -152
- package/data/onTypeFormatting/angular.json +14 -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/rangeSemanticTokens/angular.json +140 -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 +99 -8
- package/data/references/angular.json +26 -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 +66 -0
- package/data/rename/angular.json +131 -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/selectionRange/angular.json +95 -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/semanticTokens/angular.json +198 -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/signatureHelp/angular.json +182 -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/typeDefinition/angular.json +362 -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/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,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "angular",
|
|
3
|
+
"triggerCharacters": [";", "}", "\n", ">"],
|
|
4
|
+
"rules": [
|
|
5
|
+
{ "trigger": ";", "action": "indentCurrentLine", "context": "statement_end", "description": "Maintain current indentation after semicolon at end of statement" },
|
|
6
|
+
{ "trigger": "}", "action": "reduceIndent", "context": "closing_brace", "description": "Reduce indentation when closing a block with }" },
|
|
7
|
+
{ "trigger": "\n", "action": "indentAfterOpen", "context": "after_opening_brace", "description": "Increase indentation on newline after an opening brace" },
|
|
8
|
+
{ "trigger": ">", "action": "indentCurrentLine", "context": "closing_tag", "description": "Auto-indent closing HTML/template tags to match their opening tag" },
|
|
9
|
+
{ "trigger": "\n", "action": "insertNewlineAndIndent", "context": "after_decorator", "description": "Insert newline and maintain indentation after decorator before class/method declaration" },
|
|
10
|
+
{ "trigger": "\n", "action": "indentCurrentLine", "context": "pipe_expression", "description": "Align continuation of pipe expressions in templates with the pipe operator" },
|
|
11
|
+
{ "trigger": "\n", "action": "indentCurrentLine", "context": "template_expression", "description": "Indent template interpolation expressions and bindings continued on a new line" },
|
|
12
|
+
{ "trigger": "\n", "action": "alignWithOpening", "context": "array_object_literal", "description": "Align array and object literal entries with the opening bracket or brace" }
|
|
13
|
+
]
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "nestjs",
|
|
3
|
+
"onTypeFormatting": {
|
|
4
|
+
"triggerCharacters": ["}", ";", "\n"],
|
|
5
|
+
"rules": [
|
|
6
|
+
{ "trigger": "}", "description": "Auto-indent closing brace", "pattern": "^(\\s*)\\}", "action": "matchIndent", "referencePattern": "\\{\\s*$" },
|
|
7
|
+
{ "trigger": ";", "description": "Trim trailing spaces before semicolon", "pattern": "\\s+;$", "replacement": ";" },
|
|
8
|
+
{ "trigger": "\n", "description": "Continue JSDoc comment", "pattern": "^\\s*\\*\\s", "action": "continueComment", "insertText": " * " },
|
|
9
|
+
{ "trigger": "\n", "description": "Auto-indent after opening brace", "pattern": "\\{\\s*$", "action": "indent" },
|
|
10
|
+
{ "trigger": "\n", "description": "Auto-indent after decorator", "pattern": "^\\s*@\\w+\\([^)]*\\)\\s*$", "action": "keepIndent" },
|
|
11
|
+
{ "trigger": "\n", "description": "Auto-indent after arrow function", "pattern": "=>\\s*\\{?\\s*$", "action": "indent" },
|
|
12
|
+
{ "trigger": "\n", "description": "Indent after class declaration", "pattern": "class\\s+\\w+[^{]*\\{\\s*$", "action": "indent" },
|
|
13
|
+
{ "trigger": "\n", "description": "Indent after module metadata", "pattern": "@Module\\(\\{\\s*$", "action": "indent" }
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "nextjs",
|
|
3
|
+
"onTypeFormatting": {
|
|
4
|
+
"triggerCharacters": ["}", ";", "\n", ">"],
|
|
5
|
+
"rules": [
|
|
6
|
+
{ "trigger": "}", "description": "Auto-indent closing brace", "pattern": "^(\\s*)\\}", "action": "matchIndent", "referencePattern": "\\{\\s*$" },
|
|
7
|
+
{ "trigger": ";", "description": "Trim trailing spaces before semicolon", "pattern": "\\s+;$", "replacement": ";" },
|
|
8
|
+
{ "trigger": "\n", "description": "Continue JSDoc comment", "pattern": "^\\s*\\*\\s", "action": "continueComment", "insertText": " * " },
|
|
9
|
+
{ "trigger": "\n", "description": "Auto-indent after opening brace", "pattern": "\\{\\s*$", "action": "indent" },
|
|
10
|
+
{ "trigger": "\n", "description": "Auto-indent after arrow function", "pattern": "=>\\s*$", "action": "indent" },
|
|
11
|
+
{ "trigger": "\n", "description": "Auto-indent JSX children", "pattern": "<[A-Z][a-zA-Z0-9]*[^/]*>\\s*$", "action": "indent" },
|
|
12
|
+
{ "trigger": ">", "description": "Auto-close JSX tag", "pattern": "<([a-zA-Z][a-zA-Z0-9.]*)(?:\\s[^>]*)?>$", "action": "closeTag", "insertText": "</$1>" },
|
|
13
|
+
{ "trigger": "\n", "description": "Auto-indent after return (", "pattern": "return\\s*\\(\\s*$", "action": "indent" },
|
|
14
|
+
{ "trigger": "\n", "description": "Indent after export default", "pattern": "export\\s+default\\s+function\\s+\\w+\\([^)]*\\)\\s*\\{\\s*$", "action": "indent" }
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "react",
|
|
3
|
+
"onTypeFormatting": {
|
|
4
|
+
"triggerCharacters": ["}", ";", "\n", ">"],
|
|
5
|
+
"rules": [
|
|
6
|
+
{
|
|
7
|
+
"trigger": "}",
|
|
8
|
+
"description": "Auto-indent closing brace of JSX expression or component body",
|
|
9
|
+
"action": "indentOutdent",
|
|
10
|
+
"context": {
|
|
11
|
+
"beforeText": "^\\s*\\}",
|
|
12
|
+
"matchIndent": "opening_brace"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"trigger": "}",
|
|
17
|
+
"description": "Close curly brace in JSX expression",
|
|
18
|
+
"action": "indentOutdent",
|
|
19
|
+
"context": {
|
|
20
|
+
"beforeText": "^\\s*\\}\\}",
|
|
21
|
+
"note": "Handles double closing braces in style={{ }} patterns"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"trigger": ";",
|
|
26
|
+
"description": "Format statement ending with semicolon",
|
|
27
|
+
"action": "none",
|
|
28
|
+
"context": {
|
|
29
|
+
"beforeText": ".*;$"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"trigger": ";",
|
|
34
|
+
"description": "Auto-format hook dependency array after semicolon in useEffect cleanup",
|
|
35
|
+
"action": "indent",
|
|
36
|
+
"context": {
|
|
37
|
+
"beforeText": "return\\s+\\(\\)\\s*=>\\s*\\{[^}]*;$"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"trigger": "\n",
|
|
42
|
+
"description": "Auto-indent after opening JSX tag",
|
|
43
|
+
"action": "indent",
|
|
44
|
+
"context": {
|
|
45
|
+
"beforeText": "<[A-Za-z][a-zA-Z0-9.]*[^/]*>\\s*$"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"trigger": "\n",
|
|
50
|
+
"description": "Auto-indent after opening curly brace",
|
|
51
|
+
"action": "indent",
|
|
52
|
+
"context": {
|
|
53
|
+
"beforeText": "\\{\\s*$"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"trigger": "\n",
|
|
58
|
+
"description": "Auto-indent after arrow function",
|
|
59
|
+
"action": "indent",
|
|
60
|
+
"context": {
|
|
61
|
+
"beforeText": "=>\\s*\\{\\s*$"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"trigger": "\n",
|
|
66
|
+
"description": "Auto-indent after return (",
|
|
67
|
+
"action": "indent",
|
|
68
|
+
"context": {
|
|
69
|
+
"beforeText": "return\\s*\\(\\s*$"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"trigger": "\n",
|
|
74
|
+
"description": "Auto-indent inside JSX children",
|
|
75
|
+
"action": "indent",
|
|
76
|
+
"context": {
|
|
77
|
+
"beforeText": "<[A-Za-z][a-zA-Z0-9.]*[^>]*>\\s*$",
|
|
78
|
+
"afterText": "^\\s*<\\/"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"trigger": "\n",
|
|
83
|
+
"description": "Maintain indent after JSX prop on new line",
|
|
84
|
+
"action": "maintainIndent",
|
|
85
|
+
"context": {
|
|
86
|
+
"beforeText": "^\\s+\\w+=",
|
|
87
|
+
"insideTag": true
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"trigger": "\n",
|
|
92
|
+
"description": "Auto-indent after useEffect/useMemo/useCallback opening",
|
|
93
|
+
"action": "indent",
|
|
94
|
+
"context": {
|
|
95
|
+
"beforeText": "use(?:Effect|Memo|Callback|LayoutEffect)\\s*\\(\\s*(?:async\\s*)?\\(?[^)]*\\)?\\s*=>\\s*\\{\\s*$"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"trigger": ">",
|
|
100
|
+
"description": "Auto-close JSX tag",
|
|
101
|
+
"action": "autoClose",
|
|
102
|
+
"context": {
|
|
103
|
+
"beforeText": "<([A-Z][a-zA-Z0-9.]*)(?:\\s[^>]*)?>$",
|
|
104
|
+
"insertText": "$0</${1}>"
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"trigger": ">",
|
|
109
|
+
"description": "Auto-close HTML tag in JSX",
|
|
110
|
+
"action": "autoClose",
|
|
111
|
+
"context": {
|
|
112
|
+
"beforeText": "<([a-z][a-z0-9]*)(?:\\s[^>]*)?>$",
|
|
113
|
+
"insertText": "$0</${1}>",
|
|
114
|
+
"excludeTags": ["br", "hr", "img", "input", "meta", "link", "area", "base", "col", "embed", "source", "track", "wbr"]
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"trigger": "\n",
|
|
119
|
+
"description": "Auto-indent after conditional && or ternary in JSX",
|
|
120
|
+
"action": "indent",
|
|
121
|
+
"context": {
|
|
122
|
+
"beforeText": "(?:&&|\\?|:)\\s*\\(\\s*$"
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "shadcn",
|
|
3
|
+
"triggerCharacters": [";", "}", "\n", ">"],
|
|
4
|
+
"rules": [
|
|
5
|
+
{
|
|
6
|
+
"trigger": ";",
|
|
7
|
+
"action": "trimTrailingWhitespace",
|
|
8
|
+
"context": "End of statement within component body or utility function",
|
|
9
|
+
"description": "Trim trailing whitespace and ensure proper line ending after semicolon"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"trigger": "}",
|
|
13
|
+
"action": "reduceIndent",
|
|
14
|
+
"context": "Closing brace of a variant object, component body, or function",
|
|
15
|
+
"description": "Reduce indentation level on closing brace to match the opening block"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"trigger": "\n",
|
|
19
|
+
"action": "indentAfterJSXOpen",
|
|
20
|
+
"context": "After opening JSX tag such as <Card>, <Dialog>, <FormItem>",
|
|
21
|
+
"description": "Auto-indent new line after an opening JSX tag by one level"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"trigger": ">",
|
|
25
|
+
"action": "matchClosingTag",
|
|
26
|
+
"context": "Closing JSX tag such as </Card>, </DialogContent>",
|
|
27
|
+
"description": "Align closing JSX tag indentation to match its corresponding opening tag"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"trigger": "\n",
|
|
31
|
+
"action": "continueClassString",
|
|
32
|
+
"context": "Inside a className string or cn() call spanning multiple lines",
|
|
33
|
+
"description": "Continue className string indentation aligned with the opening quote or first argument"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"trigger": "\n",
|
|
37
|
+
"action": "indentCnArgument",
|
|
38
|
+
"context": "After a comma inside a cn() call with multiple arguments",
|
|
39
|
+
"description": "Indent new cn() argument to align with the first argument"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"trigger": "\n",
|
|
43
|
+
"action": "formatCvaVariant",
|
|
44
|
+
"context": "Inside a cva() variants object definition",
|
|
45
|
+
"description": "Auto-indent variant key-value pairs within the cva config object"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"trigger": "\n",
|
|
49
|
+
"action": "indentFormField",
|
|
50
|
+
"context": "Inside FormField > FormItem nesting hierarchy",
|
|
51
|
+
"description": "Maintain proper nesting indentation for FormItem, FormLabel, FormControl, FormDescription, FormMessage"
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
@@ -1,68 +1,72 @@
|
|
|
1
|
-
{
|
|
2
|
-
"language": "shell",
|
|
3
|
-
"autoFormatTriggerCharacters": [
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
1
|
+
{
|
|
2
|
+
"language": "shell",
|
|
3
|
+
"autoFormatTriggerCharacters": [
|
|
4
|
+
"\n",
|
|
5
|
+
"}",
|
|
6
|
+
";"
|
|
7
|
+
],
|
|
8
|
+
"formatRules": [
|
|
9
|
+
{
|
|
10
|
+
"trigger": "}",
|
|
11
|
+
"description": "Outdent closing brace for function body",
|
|
12
|
+
"rules": [
|
|
13
|
+
{
|
|
14
|
+
"action": "outdent",
|
|
15
|
+
"pattern": "^\\s*\\}",
|
|
16
|
+
"description": "Outdent closing brace to align with function declaration"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"trigger": ";",
|
|
22
|
+
"description": "Format after semicolons in compound commands",
|
|
23
|
+
"rules": [
|
|
24
|
+
{
|
|
25
|
+
"action": "trimWhitespace",
|
|
26
|
+
"pattern": "\\s+;",
|
|
27
|
+
"description": "Remove trailing whitespace before semicolon"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"trigger": "\n",
|
|
33
|
+
"description": "Auto-indent new line based on shell context",
|
|
34
|
+
"rules": [
|
|
35
|
+
{
|
|
36
|
+
"action": "indent",
|
|
37
|
+
"pattern": "^\\s*(if|elif|else|for|while|until|case|select)\\b.*$",
|
|
38
|
+
"description": "Indent after control flow keyword"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"action": "indent",
|
|
42
|
+
"pattern": "\\bthen\\s*$",
|
|
43
|
+
"description": "Indent after then"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"action": "indent",
|
|
47
|
+
"pattern": "\\bdo\\s*$",
|
|
48
|
+
"description": "Indent after do"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"action": "indent",
|
|
52
|
+
"pattern": "\\{\\s*$",
|
|
53
|
+
"description": "Indent after opening brace"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"action": "outdent",
|
|
57
|
+
"pattern": "^\\s*(fi|done|esac|\\}|else|elif)\\b",
|
|
58
|
+
"description": "Outdent closing keywords"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"action": "trimWhitespace",
|
|
62
|
+
"pattern": "\\s+$",
|
|
63
|
+
"description": "Remove trailing whitespace"
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"indentation": {
|
|
69
|
+
"increasePattern": "^\\s*(if|elif|else|for|while|until|case|select)\\b.*$|\\b(then|do)\\s*$|\\{\\s*$",
|
|
70
|
+
"decreasePattern": "^\\s*(fi|done|esac|\\}|else|elif)\\b"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "angular",
|
|
3
|
+
"tokenTypes": [
|
|
4
|
+
"namespace",
|
|
5
|
+
"type",
|
|
6
|
+
"class",
|
|
7
|
+
"enum",
|
|
8
|
+
"interface",
|
|
9
|
+
"struct",
|
|
10
|
+
"typeParameter",
|
|
11
|
+
"parameter",
|
|
12
|
+
"variable",
|
|
13
|
+
"property",
|
|
14
|
+
"enumMember",
|
|
15
|
+
"event",
|
|
16
|
+
"function",
|
|
17
|
+
"method",
|
|
18
|
+
"macro",
|
|
19
|
+
"keyword",
|
|
20
|
+
"modifier",
|
|
21
|
+
"comment",
|
|
22
|
+
"string",
|
|
23
|
+
"number",
|
|
24
|
+
"regexp",
|
|
25
|
+
"operator",
|
|
26
|
+
"decorator"
|
|
27
|
+
],
|
|
28
|
+
"tokenModifiers": [
|
|
29
|
+
"declaration",
|
|
30
|
+
"definition",
|
|
31
|
+
"readonly",
|
|
32
|
+
"static",
|
|
33
|
+
"deprecated",
|
|
34
|
+
"abstract",
|
|
35
|
+
"async",
|
|
36
|
+
"modification",
|
|
37
|
+
"documentation",
|
|
38
|
+
"defaultLibrary"
|
|
39
|
+
],
|
|
40
|
+
"rangeTokenRules": [
|
|
41
|
+
{
|
|
42
|
+
"pattern": "@(Component|Injectable|NgModule|Directive|Pipe|Input|Output|ViewChild|ViewChildren|ContentChild|ContentChildren|HostBinding|HostListener)\\b",
|
|
43
|
+
"tokenType": "decorator",
|
|
44
|
+
"tokenModifiers": ["definition"],
|
|
45
|
+
"scope": "line",
|
|
46
|
+
"description": "Angular decorators in the visible range context"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"pattern": "(?:public|private|protected|static|async|abstract)?\\s*\\w+\\s*\\([^)]*\\)\\s*(?::\\s*[^{]+)?\\s*\\{",
|
|
50
|
+
"tokenType": "method",
|
|
51
|
+
"tokenModifiers": ["declaration"],
|
|
52
|
+
"scope": "block",
|
|
53
|
+
"description": "Method signatures within visible range including access modifiers and return types"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"pattern": "(?:public|private|protected|readonly|static)?\\s+\\w+\\s*(?::\\s*[^=;]+)?\\s*[=;]",
|
|
57
|
+
"tokenType": "property",
|
|
58
|
+
"tokenModifiers": ["declaration"],
|
|
59
|
+
"scope": "line",
|
|
60
|
+
"description": "Property declarations with optional type annotations in visible range"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"pattern": "(?:readonly\\s+)?\\w+\\s*=\\s*(?:signal|computed|input|output|model)\\s*[<(]",
|
|
64
|
+
"tokenType": "function",
|
|
65
|
+
"tokenModifiers": ["defaultLibrary"],
|
|
66
|
+
"scope": "line",
|
|
67
|
+
"description": "Signal-based declarations (signal, computed, input, output, model) in visible range"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"pattern": "\\{\\{[^}]+\\}\\}|\\[\\w+\\]|\\(\\w+\\)|\\*\\w+",
|
|
71
|
+
"tokenType": "keyword",
|
|
72
|
+
"tokenModifiers": [],
|
|
73
|
+
"scope": "line",
|
|
74
|
+
"description": "Angular template expressions: interpolation, property binding, event binding, and structural directives"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"pattern": "\\|\\s*\\w+(?:\\s*:\\s*[^|]*)?",
|
|
78
|
+
"tokenType": "function",
|
|
79
|
+
"tokenModifiers": [],
|
|
80
|
+
"scope": "line",
|
|
81
|
+
"description": "Angular pipe usages in template expressions within visible range"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"pattern": "^import\\s+(?:\\{[^}]*\\}|\\*\\s+as\\s+\\w+|\\w+)\\s+from\\s+['\"][^'\"]+['\"]",
|
|
85
|
+
"tokenType": "namespace",
|
|
86
|
+
"tokenModifiers": [],
|
|
87
|
+
"scope": "line",
|
|
88
|
+
"description": "Import statements in the visible range"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"pattern": "constructor\\s*\\(([^)]*)\\)",
|
|
92
|
+
"tokenType": "parameter",
|
|
93
|
+
"tokenModifiers": ["declaration"],
|
|
94
|
+
"scope": "block",
|
|
95
|
+
"description": "Constructor parameter declarations for dependency injection in visible range"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"pattern": "<([A-Z]\\w*(?:\\s*,\\s*[A-Z]\\w*)*)>",
|
|
99
|
+
"tokenType": "typeParameter",
|
|
100
|
+
"tokenModifiers": [],
|
|
101
|
+
"scope": "line",
|
|
102
|
+
"description": "Generic type arguments within the visible range"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"pattern": "\\b(ngOnInit|ngOnDestroy|ngOnChanges|ngAfterViewInit|ngAfterContentInit|ngDoCheck|ngAfterViewChecked|ngAfterContentChecked)\\s*\\(",
|
|
106
|
+
"tokenType": "method",
|
|
107
|
+
"tokenModifiers": ["definition"],
|
|
108
|
+
"scope": "block",
|
|
109
|
+
"description": "Angular lifecycle method implementations in visible range"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"pattern": "(?:Routes|Route)\\s*[=:]\\s*\\[|\\{\\s*path\\s*:",
|
|
113
|
+
"tokenType": "variable",
|
|
114
|
+
"tokenModifiers": ["readonly"],
|
|
115
|
+
"scope": "block",
|
|
116
|
+
"description": "Route configuration objects and arrays in visible range"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"pattern": "(?:new\\s+FormControl|new\\s+FormGroup|new\\s+FormArray|this\\.fb\\.control|this\\.fb\\.group|this\\.fb\\.array)\\s*\\(",
|
|
120
|
+
"tokenType": "function",
|
|
121
|
+
"tokenModifiers": ["defaultLibrary"],
|
|
122
|
+
"scope": "line",
|
|
123
|
+
"description": "Reactive form control declarations in visible range"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"pattern": "\\binject\\s*(<[^>]*>)?\\s*\\([^)]*\\)",
|
|
127
|
+
"tokenType": "function",
|
|
128
|
+
"tokenModifiers": ["defaultLibrary"],
|
|
129
|
+
"scope": "line",
|
|
130
|
+
"description": "inject() function calls for dependency injection in visible range"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"pattern": "\\benum\\s+\\w+\\s*\\{[^}]*\\}",
|
|
134
|
+
"tokenType": "enum",
|
|
135
|
+
"tokenModifiers": ["declaration"],
|
|
136
|
+
"scope": "block",
|
|
137
|
+
"description": "Enum declarations with members in visible range"
|
|
138
|
+
}
|
|
139
|
+
]
|
|
140
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "nestjs",
|
|
3
|
+
"rangeSemanticTokens": {
|
|
4
|
+
"tokenTypes": ["namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator"],
|
|
5
|
+
"tokenModifiers": ["declaration", "definition", "readonly", "static", "deprecated", "async", "modification", "documentation", "defaultLibrary", "abstract"],
|
|
6
|
+
"tokenLegend": {
|
|
7
|
+
"tokenTypes": ["namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator"],
|
|
8
|
+
"tokenModifiers": ["declaration", "definition", "readonly", "static", "deprecated", "async", "modification", "documentation", "defaultLibrary", "abstract"]
|
|
9
|
+
},
|
|
10
|
+
"rangeTokenRules": [
|
|
11
|
+
{ "pattern": "\\b(import|export|from|default|as|const|let|var|function|return|if|else|for|while|switch|case|break|continue|throw|try|catch|finally|new|typeof|instanceof|async|await|class|extends|this|implements|abstract|private|protected|public|readonly)\\b", "tokenType": "keyword", "tokenModifiers": [], "description": "Keywords" },
|
|
12
|
+
{ "pattern": "@(Controller|Injectable|Module|Get|Post|Put|Patch|Delete|Body|Param|Query|Headers|UseGuards|UseInterceptors|UsePipes|UseFilters|Inject|Catch|SetMetadata)\\b", "tokenType": "decorator", "tokenModifiers": ["defaultLibrary"], "description": "NestJS decorators" },
|
|
13
|
+
{ "pattern": "@(Entity|Column|PrimaryGeneratedColumn|ManyToOne|OneToMany|ManyToMany|OneToOne|JoinColumn)\\b", "tokenType": "decorator", "tokenModifiers": ["defaultLibrary"], "description": "TypeORM decorators" },
|
|
14
|
+
{ "pattern": "@(IsString|IsNumber|IsNotEmpty|IsOptional|IsEmail|IsArray|IsEnum|ValidateNested)\\b", "tokenType": "decorator", "tokenModifiers": ["defaultLibrary"], "description": "Validator decorators" },
|
|
15
|
+
{ "pattern": "\\b(NestFactory|ModuleRef|ConfigModule|TypeOrmModule|JwtModule|ValidationPipe)\\b", "tokenType": "class", "tokenModifiers": ["defaultLibrary"], "description": "NestJS classes" },
|
|
16
|
+
{ "pattern": "\\b(HttpException|BadRequestException|UnauthorizedException|ForbiddenException|NotFoundException)\\b", "tokenType": "class", "tokenModifiers": ["defaultLibrary"], "description": "Exceptions" },
|
|
17
|
+
{ "pattern": "\\b(CanActivate|PipeTransform|NestInterceptor|ExceptionFilter|NestMiddleware|ExecutionContext|ArgumentsHost)\\b", "tokenType": "interface", "tokenModifiers": ["defaultLibrary"], "description": "Interfaces" },
|
|
18
|
+
{ "pattern": "\\bclass\\s+(\\w+)", "tokenType": "class", "tokenModifiers": ["declaration"], "description": "Class declarations" },
|
|
19
|
+
{ "pattern": "\\binterface\\s+(\\w+)", "tokenType": "interface", "tokenModifiers": ["declaration"], "description": "Interface declarations" },
|
|
20
|
+
{ "pattern": "\\benum\\s+(\\w+)", "tokenType": "enum", "tokenModifiers": ["declaration"], "description": "Enum declarations" },
|
|
21
|
+
{ "pattern": "(?:'[^']*'|\"[^\"]*\"|`[^`]*`)", "tokenType": "string", "tokenModifiers": [], "description": "Strings" },
|
|
22
|
+
{ "pattern": "\\b\\d+(\\.\\d+)?\\b", "tokenType": "number", "tokenModifiers": [], "description": "Numbers" },
|
|
23
|
+
{ "pattern": "(?:^|\\s)\\/\\/.*", "tokenType": "comment", "tokenModifiers": [], "description": "Comments" },
|
|
24
|
+
{ "pattern": "\\b(describe|it|expect|beforeEach|afterEach|Test)\\b", "tokenType": "function", "tokenModifiers": ["defaultLibrary"], "description": "Testing" }
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"language": "nextjs",
|
|
3
|
+
"rangeSemanticTokens": {
|
|
4
|
+
"tokenTypes": ["namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator"],
|
|
5
|
+
"tokenModifiers": ["declaration", "definition", "readonly", "static", "deprecated", "async", "modification", "documentation", "defaultLibrary", "abstract"],
|
|
6
|
+
"tokenLegend": {
|
|
7
|
+
"tokenTypes": ["namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator"],
|
|
8
|
+
"tokenModifiers": ["declaration", "definition", "readonly", "static", "deprecated", "async", "modification", "documentation", "defaultLibrary", "abstract"]
|
|
9
|
+
},
|
|
10
|
+
"rangeTokenRules": [
|
|
11
|
+
{ "pattern": "\\b(import|export|from|default|as|const|let|var|function|return|if|else|for|while|switch|case|break|continue|throw|try|catch|finally|new|typeof|instanceof|async|await|class|extends|this)\\b", "tokenType": "keyword", "tokenModifiers": [], "description": "Keywords" },
|
|
12
|
+
{ "pattern": "\\b(use(?:State|Effect|Context|Reducer|Callback|Memo|Ref|Router|Pathname|SearchParams|Params|FormStatus|FormState|Optimistic))\\b", "tokenType": "function", "tokenModifiers": ["defaultLibrary"], "description": "Hooks" },
|
|
13
|
+
{ "pattern": "\\b(Image|Link|Script|Head)\\b", "tokenType": "class", "tokenModifiers": ["defaultLibrary"], "description": "Next.js components" },
|
|
14
|
+
{ "pattern": "\\b(NextRequest|NextResponse|NextPage|Metadata|Viewport)\\b", "tokenType": "type", "tokenModifiers": ["defaultLibrary"], "description": "Next.js types" },
|
|
15
|
+
{ "pattern": "\\b(redirect|notFound|revalidatePath|revalidateTag|headers|cookies|fetch)\\b", "tokenType": "function", "tokenModifiers": ["defaultLibrary"], "description": "Server functions" },
|
|
16
|
+
{ "pattern": "\"use (client|server)\"", "tokenType": "macro", "tokenModifiers": [], "description": "Directives" },
|
|
17
|
+
{ "pattern": "\\bexport\\s+async\\s+function\\s+(GET|POST|PUT|PATCH|DELETE)\\b", "tokenType": "method", "tokenModifiers": ["async"], "description": "Route handlers" },
|
|
18
|
+
{ "pattern": "\\bexport\\s+const\\s+(metadata|revalidate|dynamic|runtime)\\b", "tokenType": "variable", "tokenModifiers": ["readonly"], "description": "Config exports" },
|
|
19
|
+
{ "pattern": "<([A-Z][a-zA-Z0-9.]*)", "tokenType": "class", "tokenModifiers": [], "description": "JSX components" },
|
|
20
|
+
{ "pattern": "\\binterface\\s+(\\w+)", "tokenType": "interface", "tokenModifiers": ["declaration"], "description": "Interfaces" },
|
|
21
|
+
{ "pattern": "\\btype\\s+(\\w+)\\s*=", "tokenType": "type", "tokenModifiers": ["declaration"], "description": "Type aliases" },
|
|
22
|
+
{ "pattern": "\\b(process\\.env\\.\\w+)\\b", "tokenType": "variable", "tokenModifiers": ["readonly"], "description": "Env vars" },
|
|
23
|
+
{ "pattern": "(?:'[^']*'|\"[^\"]*\"|`[^`]*`)", "tokenType": "string", "tokenModifiers": [], "description": "Strings" },
|
|
24
|
+
{ "pattern": "\\b\\d+(\\.\\d+)?\\b", "tokenType": "number", "tokenModifiers": [], "description": "Numbers" },
|
|
25
|
+
{ "pattern": "(?:^|\\s)\\/\\/.*", "tokenType": "comment", "tokenModifiers": [], "description": "Comments" }
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
}
|