@css-modules-kit/ts-plugin 0.6.0 → 0.7.0
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/dist/language-plugin.d.ts +2 -5
- package/dist/language-plugin.d.ts.map +1 -1
- package/dist/language-plugin.js +7 -9
- package/dist/language-plugin.js.map +1 -1
- package/dist/language-service/feature/definition-and-bound-span.js +1 -1
- package/dist/language-service/feature/definition-and-bound-span.js.map +1 -1
- package/dist/language-service/feature/semantic-diagnostic.js +1 -1
- package/dist/language-service/feature/semantic-diagnostic.js.map +1 -1
- package/dist/language-service/feature/syntactic-diagnostic.js +1 -1
- package/dist/language-service/feature/syntactic-diagnostic.js.map +1 -1
- package/dist/language-service/proxy.js +1 -1
- package/dist/language-service/proxy.js.map +1 -1
- package/dist/protocol-handler/documentLink.js +1 -1
- package/dist/protocol-handler/documentLink.js.map +1 -1
- package/dist/util.d.ts +0 -3
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +0 -18
- package/dist/util.js.map +1 -1
- package/package.json +2 -2
- package/src/language-plugin.ts +10 -15
- package/src/language-service/feature/definition-and-bound-span.ts +1 -1
- package/src/language-service/feature/semantic-diagnostic.ts +1 -1
- package/src/language-service/feature/syntactic-diagnostic.ts +1 -1
- package/src/language-service/proxy.ts +1 -1
- package/src/protocol-handler/documentLink.ts +1 -1
- package/src/util.ts +0 -18
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import type { CMKConfig, CSSModule,
|
|
1
|
+
import type { CMKConfig, CSSModule, MatchesPattern, Resolver } from '@css-modules-kit/core';
|
|
2
2
|
import type { LanguagePlugin, SourceScript, VirtualCode } from '@volar/language-core';
|
|
3
3
|
export declare const LANGUAGE_ID = "css";
|
|
4
4
|
export declare const CMK_DATA_KEY: unique symbol;
|
|
5
5
|
interface CSSModuleVirtualCode extends VirtualCode {
|
|
6
|
-
[CMK_DATA_KEY]:
|
|
7
|
-
cssModule: CSSModule;
|
|
8
|
-
syntacticDiagnostics: DiagnosticWithLocation[];
|
|
9
|
-
};
|
|
6
|
+
[CMK_DATA_KEY]: CSSModule;
|
|
10
7
|
}
|
|
11
8
|
export interface CSSModuleScript extends SourceScript<string> {
|
|
12
9
|
generated: SourceScript<string>['generated'] & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-plugin.d.ts","sourceRoot":"","sources":["../src/language-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"language-plugin.d.ts","sourceRoot":"","sources":["../src/language-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5F,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAItF,eAAO,MAAM,WAAW,QAAQ,CAAC;AAEjC,eAAO,MAAM,YAAY,eAAiC,CAAC;AAE3D,UAAU,oBAAqB,SAAQ,WAAW;IAChD,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY,CAAC,MAAM,CAAC;IAC3D,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG;QAC7C,IAAI,EAAE,oBAAoB,CAAC;KAC5B,CAAC;CACH;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,SAAS,GAChB,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAoErC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,IAAI,eAAe,CAIrG"}
|
package/dist/language-plugin.js
CHANGED
|
@@ -33,15 +33,16 @@ function createCSSLanguagePlugin(resolver, matchesPattern, config) {
|
|
|
33
33
|
}
|
|
34
34
|
const length = snapshot.getLength();
|
|
35
35
|
const cssModuleCode = snapshot.getText(0, length);
|
|
36
|
-
const
|
|
36
|
+
const cssModule = (0, core_1.parseCSSModule)(cssModuleCode, {
|
|
37
37
|
fileName: scriptId,
|
|
38
|
-
// The CSS
|
|
39
|
-
//
|
|
40
|
-
|
|
38
|
+
// NOTE: The standard CSS Language Server reports invalid syntax errors.
|
|
39
|
+
// Therefore, if ts-plugin also reports it, the same error is reported twice.
|
|
40
|
+
// To avoid this, ts-plugin does not report invalid syntax errors.
|
|
41
|
+
includeSyntaxError: false,
|
|
41
42
|
keyframes: config.keyframes,
|
|
42
43
|
});
|
|
43
44
|
// eslint-disable-next-line prefer-const
|
|
44
|
-
let { text, mapping, linkedCodeMapping } = (0, core_1.
|
|
45
|
+
let { text, mapping, linkedCodeMapping } = (0, core_1.generateDts)(cssModule, { resolver, matchesPattern }, { ...config, forTsPlugin: true });
|
|
45
46
|
return {
|
|
46
47
|
id: 'main',
|
|
47
48
|
languageId: 'typescript',
|
|
@@ -54,10 +55,7 @@ function createCSSLanguagePlugin(resolver, matchesPattern, config) {
|
|
|
54
55
|
mappings: [{ ...mapping, data: { navigation: true } }],
|
|
55
56
|
// `linkedCodeMappings` are required to support "Go to Definition" and renaming for the imported tokens
|
|
56
57
|
linkedCodeMappings: [{ ...linkedCodeMapping, data: undefined }],
|
|
57
|
-
[exports.CMK_DATA_KEY]:
|
|
58
|
-
cssModule,
|
|
59
|
-
syntacticDiagnostics: diagnostics,
|
|
60
|
-
},
|
|
58
|
+
[exports.CMK_DATA_KEY]: cssModule,
|
|
61
59
|
};
|
|
62
60
|
},
|
|
63
61
|
typescript: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-plugin.js","sourceRoot":"","sources":["../src/language-plugin.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"language-plugin.js","sourceRoot":"","sources":["../src/language-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ function getDefinitionAndBoundSpan(language, languageService) {
|
|
|
12
12
|
for (const def of result.definitions) {
|
|
13
13
|
const script = language.scripts.get(def.fileName);
|
|
14
14
|
if ((0, language_plugin_js_1.isCSSModuleScript)(script)) {
|
|
15
|
-
const cssModule = script.generated.root[language_plugin_js_1.CMK_DATA_KEY]
|
|
15
|
+
const cssModule = script.generated.root[language_plugin_js_1.CMK_DATA_KEY];
|
|
16
16
|
const token = cssModule.localTokens.find((t) => t.name === def.name);
|
|
17
17
|
if (token?.declarationLoc) {
|
|
18
18
|
def.contextSpan = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-and-bound-span.js","sourceRoot":"","sources":["../../../src/language-service/feature/definition-and-bound-span.ts"],"names":[],"mappings":";;AAIA,8DAuBC;AAzBD,iEAA2E;AAE3E,SAAgB,yBAAyB,CACvC,QAA0B,EAC1B,eAAmC;IAEnC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,eAAe,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO,MAAM,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAY,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"definition-and-bound-span.js","sourceRoot":"","sources":["../../../src/language-service/feature/definition-and-bound-span.ts"],"names":[],"mappings":";;AAIA,8DAuBC;AAzBD,iEAA2E;AAE3E,SAAgB,yBAAyB,CACvC,QAA0B,EAC1B,eAAmC;IAEnC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,eAAe,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO,MAAM,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAY,CAAC,CAAC;gBACtD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrE,IAAI,KAAK,EAAE,cAAc,EAAE,CAAC;oBAC1B,GAAG,CAAC,WAAW,GAAG;wBAChB,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM;wBACxC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM;qBAC5E,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -11,7 +11,7 @@ function getSemanticDiagnostics(language, languageService, exportBuilder, resolv
|
|
|
11
11
|
const script = language.scripts.get(fileName);
|
|
12
12
|
if ((0, language_plugin_js_1.isCSSModuleScript)(script)) {
|
|
13
13
|
const virtualCode = script.generated.root;
|
|
14
|
-
const cssModule = virtualCode[language_plugin_js_1.CMK_DATA_KEY]
|
|
14
|
+
const cssModule = virtualCode[language_plugin_js_1.CMK_DATA_KEY];
|
|
15
15
|
// Clear cache to update export records for all files
|
|
16
16
|
exportBuilder.clearCache();
|
|
17
17
|
const diagnostics = (0, core_1.checkCSSModule)(cssModule, config, exportBuilder, matchesPattern, resolver, getCSSModule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-diagnostic.js","sourceRoot":"","sources":["../../../src/language-service/feature/semantic-diagnostic.ts"],"names":[],"mappings":";;AAOA,wDA2BC;AAjCD,gDAA0E;AAG1E,iEAA2E;AAE3E,sCAAsC;AACtC,SAAgB,sBAAsB,CACpC,QAA0B,EAC1B,eAAmC,EACnC,aAA4B,EAC5B,QAAkB,EAClB,cAA8B,EAC9B,YAAqD,EACrD,MAAiB;IAEjB,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,eAAe,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1C,MAAM,SAAS,GAAG,WAAW,CAAC,iCAAY,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"semantic-diagnostic.js","sourceRoot":"","sources":["../../../src/language-service/feature/semantic-diagnostic.ts"],"names":[],"mappings":";;AAOA,wDA2BC;AAjCD,gDAA0E;AAG1E,iEAA2E;AAE3E,sCAAsC;AACtC,SAAgB,sBAAsB,CACpC,QAA0B,EAC1B,eAAmC,EACnC,aAA4B,EAC5B,QAAkB,EAClB,cAA8B,EAC9B,YAAqD,EACrD,MAAiB;IAEjB,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,eAAe,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1C,MAAM,SAAS,GAAG,WAAW,CAAC,iCAAY,CAAC,CAAC;YAE5C,qDAAqD;YACrD,aAAa,CAAC,UAAU,EAAE,CAAC;YAE3B,MAAM,WAAW,GAAG,IAAA,qBAAc,EAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC7G,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAG,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;YAC1E,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAA,wBAAiB,EAAC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YACvG,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -10,7 +10,7 @@ function getSyntacticDiagnostics(language, languageService) {
|
|
|
10
10
|
const script = language.scripts.get(fileName);
|
|
11
11
|
if ((0, language_plugin_js_1.isCSSModuleScript)(script)) {
|
|
12
12
|
const virtualCode = script.generated.root;
|
|
13
|
-
const diagnostics = virtualCode[language_plugin_js_1.CMK_DATA_KEY].
|
|
13
|
+
const diagnostics = virtualCode[language_plugin_js_1.CMK_DATA_KEY].diagnostics;
|
|
14
14
|
const sourceFile = languageService.getProgram().getSourceFile(fileName);
|
|
15
15
|
const tsDiagnostics = diagnostics.map((diagnostic) => (0, core_1.convertDiagnosticWithLocation)(diagnostic, () => sourceFile));
|
|
16
16
|
prior.push(...tsDiagnostics);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntactic-diagnostic.js","sourceRoot":"","sources":["../../../src/language-service/feature/syntactic-diagnostic.ts"],"names":[],"mappings":";;AAKA,0DAmBC;AAxBD,gDAAsE;AAGtE,iEAA2E;AAE3E,SAAgB,uBAAuB,CACrC,QAA0B,EAC1B,eAAmC;IAEnC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,eAAe,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,iCAAY,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"syntactic-diagnostic.js","sourceRoot":"","sources":["../../../src/language-service/feature/syntactic-diagnostic.ts"],"names":[],"mappings":";;AAKA,0DAmBC;AAxBD,gDAAsE;AAGtE,iEAA2E;AAE3E,SAAgB,uBAAuB,CACrC,QAA0B,EAC1B,eAAmC;IAEnC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,eAAe,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,iCAAY,CAAC,CAAC,WAAW,CAAC;YAC1D,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAG,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;YAC1E,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACnD,IAAA,oCAA6B,EAAC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAC5D,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -21,7 +21,7 @@ function proxyLanguageService(language, languageService, project, resolver, matc
|
|
|
21
21
|
const getCSSModule = (path) => {
|
|
22
22
|
const script = language.scripts.get(path);
|
|
23
23
|
if ((0, language_plugin_js_1.isCSSModuleScript)(script)) {
|
|
24
|
-
return script.generated.root[language_plugin_js_1.CMK_DATA_KEY]
|
|
24
|
+
return script.generated.root[language_plugin_js_1.CMK_DATA_KEY];
|
|
25
25
|
}
|
|
26
26
|
return undefined;
|
|
27
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/language-service/proxy.ts"],"names":[],"mappings":";;AAaA,oDA4CC;AAxDD,gDAAgG;AAGhG,8DAAwE;AACxE,uDAA+D;AAC/D,2DAA8F;AAC9F,yFAAmF;AACnF,uDAAoF;AACpF,6EAA0E;AAC1E,+EAA4E;AAE5E,sCAAsC;AACtC,SAAgB,oBAAoB,CAClC,QAA0B,EAC1B,eAAmC,EACnC,OAA0B,EAC1B,QAAkB,EAClB,cAA8B,EAC9B,MAAiB;IAEjB,MAAM,KAAK,GAAuB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEtD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAiC,EAAE,CAAC;QAC7E,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAE,CAAC;QAC9B,yEAAyE;QACzE,mEAAmE;QACnE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAU,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAY,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/language-service/proxy.ts"],"names":[],"mappings":";;AAaA,oDA4CC;AAxDD,gDAAgG;AAGhG,8DAAwE;AACxE,uDAA+D;AAC/D,2DAA8F;AAC9F,yFAAmF;AACnF,uDAAoF;AACpF,6EAA0E;AAC1E,+EAA4E;AAE5E,sCAAsC;AACtC,SAAgB,oBAAoB,CAClC,QAA0B,EAC1B,eAAmC,EACnC,OAA0B,EAC1B,QAAkB,EAClB,cAA8B,EAC9B,MAAiB;IAEjB,MAAM,KAAK,GAAuB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEtD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAiC,EAAE,CAAC;QAC7E,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAE,CAAC;QAC9B,yEAAyE;QACzE,mEAAmE;QACnE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAU,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAY,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,0BAAmB,EAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAEtF,KAAK,CAAC,uBAAuB,GAAG,IAAA,iDAAuB,EAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACnF,KAAK,CAAC,sBAAsB,GAAG,IAAA,+CAAsB,EACnD,QAAQ,EACR,eAAe,EACf,aAAa,EACb,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,MAAM,CACP,CAAC;IACF,KAAK,CAAC,sBAAsB,GAAG,IAAA,oCAAsB,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAChF,KAAK,CAAC,mBAAmB,GAAG,IAAA,iCAAmB,EAAC,eAAe,CAAC,CAAC;IACjE,KAAK,CAAC,wBAAwB,GAAG,IAAA,wCAAwB,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACnF,KAAK,CAAC,yBAAyB,GAAG,IAAA,yCAAyB,EAAC,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/F,KAAK,CAAC,sBAAsB,GAAG,IAAA,oCAAsB,EAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5G,KAAK,CAAC,yBAAyB,GAAG,IAAA,wDAAyB,EAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAEvF,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -15,7 +15,7 @@ function createDocumentLinkHandler(projectService, projectToLanguage, resolver)
|
|
|
15
15
|
const script = language.scripts.get(fileName);
|
|
16
16
|
const links = [];
|
|
17
17
|
if ((0, language_plugin_js_1.isCSSModuleScript)(script)) {
|
|
18
|
-
const { tokenImporters } = script.generated.root[language_plugin_js_1.CMK_DATA_KEY]
|
|
18
|
+
const { tokenImporters } = script.generated.root[language_plugin_js_1.CMK_DATA_KEY];
|
|
19
19
|
for (const { from, fromLoc } of tokenImporters) {
|
|
20
20
|
const resolved = resolver(from, { request: fileName });
|
|
21
21
|
if (!resolved)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentLink.js","sourceRoot":"","sources":["../../src/protocol-handler/documentLink.ts"],"names":[],"mappings":";;AAWA,8DA0BC;AAlCD,8DAAwE;AAMxE,wCAAyD;AAEzD,SAAgB,yBAAyB,CACvC,cAAwC,EACxC,iBAA+D,EAC/D,QAAkB;IAElB,OAAO,CAAC,OAAyC,EAA4C,EAAE;QAC7F,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QACvC,MAAM,OAAO,GAAG,IAAA,qCAA2B,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAY,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"documentLink.js","sourceRoot":"","sources":["../../src/protocol-handler/documentLink.ts"],"names":[],"mappings":";;AAWA,8DA0BC;AAlCD,8DAAwE;AAMxE,wCAAyD;AAEzD,SAAgB,yBAAyB,CACvC,cAAwC,EACxC,iBAA+D,EAC/D,QAAkB;IAElB,OAAO,CAAC,OAAyC,EAA4C,EAAE;QAC7F,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QACvC,MAAM,OAAO,GAAG,IAAA,qCAA2B,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,IAAI,IAAA,sCAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAY,CAAC,CAAC;YAC/D,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,cAAc,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACvD,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBACxB,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;iBAC7F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/util.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { type CMKConfig, type Resolver } from '@css-modules-kit/core';
|
|
2
2
|
import ts from 'typescript';
|
|
3
|
-
/** The error code used by tsserver to display the css-modules-kit error in the editor. */
|
|
4
|
-
export declare const TS_ERROR_CODE_FOR_CMK_ERROR = 0;
|
|
5
|
-
export declare function convertErrorCategory(category: 'error' | 'warning' | 'suggestion'): ts.DiagnosticCategory;
|
|
6
3
|
export declare function createPreferencesForCompletion<T extends ts.UserPreferences>(preferences: T, config: CMKConfig): T;
|
|
7
4
|
/**
|
|
8
5
|
* Convert default imports to namespace imports for CSS modules.
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAmB,KAAK,QAAQ,EAAsB,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAmB,KAAK,QAAQ,EAAsB,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,CAOjH;AACD;;;GAGG;AACH,wBAAgB,uCAAuC,CACrD,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,EAC/C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAoBN;AAED,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,EACxC,QAAQ,EAAE,MAAM,GACf,EAAE,CAAC,MAAM,CAAC,iBAAiB,GAAG,SAAS,CAIzC"}
|
package/dist/util.js
CHANGED
|
@@ -3,29 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.TS_ERROR_CODE_FOR_CMK_ERROR = void 0;
|
|
7
|
-
exports.convertErrorCategory = convertErrorCategory;
|
|
8
6
|
exports.createPreferencesForCompletion = createPreferencesForCompletion;
|
|
9
7
|
exports.convertDefaultImportsToNamespaceImports = convertDefaultImportsToNamespaceImports;
|
|
10
8
|
exports.getConfiguredProjectForFile = getConfiguredProjectForFile;
|
|
11
9
|
const core_1 = require("@css-modules-kit/core");
|
|
12
10
|
const typescript_1 = __importDefault(require("typescript"));
|
|
13
|
-
/** The error code used by tsserver to display the css-modules-kit error in the editor. */
|
|
14
|
-
// NOTE: Use any other number than 1002 or later, as they are reserved by TypeScript's built-in errors.
|
|
15
|
-
// ref: https://github.com/microsoft/TypeScript/blob/220706eb0320ff46fad8bf80a5e99db624ee7dfb/src/compiler/diagnosticMessages.json
|
|
16
|
-
exports.TS_ERROR_CODE_FOR_CMK_ERROR = 0;
|
|
17
|
-
function convertErrorCategory(category) {
|
|
18
|
-
switch (category) {
|
|
19
|
-
case 'error':
|
|
20
|
-
return typescript_1.default.DiagnosticCategory.Error;
|
|
21
|
-
case 'warning':
|
|
22
|
-
return typescript_1.default.DiagnosticCategory.Warning;
|
|
23
|
-
case 'suggestion':
|
|
24
|
-
return typescript_1.default.DiagnosticCategory.Suggestion;
|
|
25
|
-
default:
|
|
26
|
-
throw new Error(`Unknown category: ${String(category)}`);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
11
|
function createPreferencesForCompletion(preferences, config) {
|
|
30
12
|
// By default, files in `generated/` are included in the completion candidates.
|
|
31
13
|
// To exclude them, we add the `dtsOutDir` to the `autoImportFileExcludePatterns`.
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;AAGA,wEAOC;AAKD,0FAwBC;AAED,kEAOC;AAhDD,gDAA2G;AAC3G,4DAA4B;AAE5B,SAAgB,8BAA8B,CAA+B,WAAc,EAAE,MAAiB;IAC5G,+EAA+E;IAC/E,kFAAkF;IAClF,OAAO;QACL,GAAG,WAAW;QACd,6BAA6B,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,6BAA6B,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;KACxG,CAAC;AACJ,CAAC;AACD;;;GAGG;AACH,SAAgB,uCAAuC,CACrD,SAA+C,EAC/C,QAAgB,EAChB,QAAkB;IAElB,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;YAAE,SAAS;QACnE,8DAA8D;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAA,sBAAe,EAAC,QAAQ,CAAC;YAAE,SAAS;QAEtD,8EAA8E;QAC9E,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC5C,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAC7C,UAAU,yBAAkB,OAAO,EACnC,eAAe,yBAAkB,OAAO,CACzC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,2BAA2B,CACzC,cAAwC,EACxC,QAAgB;IAEhB,MAAM,OAAO,GAAG,cAAc,CAAC,wBAAwB,CAAC,oBAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IACrG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,oBAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU;QAAE,OAAO;IACjF,OAAO,OAAsC,CAAC;AAChD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@css-modules-kit/ts-plugin",
|
|
3
3
|
"description": "A TypeScript Language Service Plugin for CSS Modules",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.7.0",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"repository": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@volar/language-core": "^2.4.23",
|
|
51
51
|
"@volar/typescript": "^2.4.23",
|
|
52
|
-
"@css-modules-kit/core": "^0.
|
|
52
|
+
"@css-modules-kit/core": "^0.7.0"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"typescript": ">=5.6.3"
|
package/src/language-plugin.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CMKConfig, CSSModule,
|
|
2
|
-
import {
|
|
1
|
+
import type { CMKConfig, CSSModule, MatchesPattern, Resolver } from '@css-modules-kit/core';
|
|
2
|
+
import { generateDts, parseCSSModule } from '@css-modules-kit/core';
|
|
3
3
|
import type { LanguagePlugin, SourceScript, VirtualCode } from '@volar/language-core';
|
|
4
4
|
import type {} from '@volar/typescript';
|
|
5
5
|
import ts from 'typescript';
|
|
@@ -9,10 +9,7 @@ export const LANGUAGE_ID = 'css';
|
|
|
9
9
|
export const CMK_DATA_KEY = Symbol('css-modules-kit-data');
|
|
10
10
|
|
|
11
11
|
interface CSSModuleVirtualCode extends VirtualCode {
|
|
12
|
-
[CMK_DATA_KEY]:
|
|
13
|
-
cssModule: CSSModule;
|
|
14
|
-
syntacticDiagnostics: DiagnosticWithLocation[];
|
|
15
|
-
};
|
|
12
|
+
[CMK_DATA_KEY]: CSSModule;
|
|
16
13
|
}
|
|
17
14
|
|
|
18
15
|
export interface CSSModuleScript extends SourceScript<string> {
|
|
@@ -47,15 +44,16 @@ export function createCSSLanguagePlugin(
|
|
|
47
44
|
|
|
48
45
|
const length = snapshot.getLength();
|
|
49
46
|
const cssModuleCode = snapshot.getText(0, length);
|
|
50
|
-
const
|
|
47
|
+
const cssModule = parseCSSModule(cssModuleCode, {
|
|
51
48
|
fileName: scriptId,
|
|
52
|
-
// The CSS
|
|
53
|
-
//
|
|
54
|
-
|
|
49
|
+
// NOTE: The standard CSS Language Server reports invalid syntax errors.
|
|
50
|
+
// Therefore, if ts-plugin also reports it, the same error is reported twice.
|
|
51
|
+
// To avoid this, ts-plugin does not report invalid syntax errors.
|
|
52
|
+
includeSyntaxError: false,
|
|
55
53
|
keyframes: config.keyframes,
|
|
56
54
|
});
|
|
57
55
|
// eslint-disable-next-line prefer-const
|
|
58
|
-
let { text, mapping, linkedCodeMapping } =
|
|
56
|
+
let { text, mapping, linkedCodeMapping } = generateDts(
|
|
59
57
|
cssModule,
|
|
60
58
|
{ resolver, matchesPattern },
|
|
61
59
|
{ ...config, forTsPlugin: true },
|
|
@@ -72,10 +70,7 @@ export function createCSSLanguagePlugin(
|
|
|
72
70
|
mappings: [{ ...mapping, data: { navigation: true } }],
|
|
73
71
|
// `linkedCodeMappings` are required to support "Go to Definition" and renaming for the imported tokens
|
|
74
72
|
linkedCodeMappings: [{ ...linkedCodeMapping, data: undefined }],
|
|
75
|
-
[CMK_DATA_KEY]:
|
|
76
|
-
cssModule,
|
|
77
|
-
syntacticDiagnostics: diagnostics,
|
|
78
|
-
},
|
|
73
|
+
[CMK_DATA_KEY]: cssModule,
|
|
79
74
|
};
|
|
80
75
|
},
|
|
81
76
|
typescript: {
|
|
@@ -13,7 +13,7 @@ export function getDefinitionAndBoundSpan(
|
|
|
13
13
|
for (const def of result.definitions) {
|
|
14
14
|
const script = language.scripts.get(def.fileName);
|
|
15
15
|
if (isCSSModuleScript(script)) {
|
|
16
|
-
const cssModule = script.generated.root[CMK_DATA_KEY]
|
|
16
|
+
const cssModule = script.generated.root[CMK_DATA_KEY];
|
|
17
17
|
const token = cssModule.localTokens.find((t) => t.name === def.name);
|
|
18
18
|
if (token?.declarationLoc) {
|
|
19
19
|
def.contextSpan = {
|
|
@@ -20,7 +20,7 @@ export function getSemanticDiagnostics(
|
|
|
20
20
|
const script = language.scripts.get(fileName);
|
|
21
21
|
if (isCSSModuleScript(script)) {
|
|
22
22
|
const virtualCode = script.generated.root;
|
|
23
|
-
const cssModule = virtualCode[CMK_DATA_KEY]
|
|
23
|
+
const cssModule = virtualCode[CMK_DATA_KEY];
|
|
24
24
|
|
|
25
25
|
// Clear cache to update export records for all files
|
|
26
26
|
exportBuilder.clearCache();
|
|
@@ -13,7 +13,7 @@ export function getSyntacticDiagnostics(
|
|
|
13
13
|
const script = language.scripts.get(fileName);
|
|
14
14
|
if (isCSSModuleScript(script)) {
|
|
15
15
|
const virtualCode = script.generated.root;
|
|
16
|
-
const diagnostics = virtualCode[CMK_DATA_KEY].
|
|
16
|
+
const diagnostics = virtualCode[CMK_DATA_KEY].diagnostics;
|
|
17
17
|
const sourceFile = languageService.getProgram()!.getSourceFile(fileName)!;
|
|
18
18
|
const tsDiagnostics = diagnostics.map((diagnostic) =>
|
|
19
19
|
convertDiagnosticWithLocation(diagnostic, () => sourceFile),
|
|
@@ -31,7 +31,7 @@ export function proxyLanguageService(
|
|
|
31
31
|
const getCSSModule = (path: string) => {
|
|
32
32
|
const script = language.scripts.get(path);
|
|
33
33
|
if (isCSSModuleScript(script)) {
|
|
34
|
-
return script.generated.root[CMK_DATA_KEY]
|
|
34
|
+
return script.generated.root[CMK_DATA_KEY];
|
|
35
35
|
}
|
|
36
36
|
return undefined;
|
|
37
37
|
};
|
|
@@ -23,7 +23,7 @@ export function createDocumentLinkHandler(
|
|
|
23
23
|
const script = language.scripts.get(fileName);
|
|
24
24
|
const links: DocumentLink[] = [];
|
|
25
25
|
if (isCSSModuleScript(script)) {
|
|
26
|
-
const { tokenImporters } = script.generated.root[CMK_DATA_KEY]
|
|
26
|
+
const { tokenImporters } = script.generated.root[CMK_DATA_KEY];
|
|
27
27
|
for (const { from, fromLoc } of tokenImporters) {
|
|
28
28
|
const resolved = resolver(from, { request: fileName });
|
|
29
29
|
if (!resolved) continue;
|
package/src/util.ts
CHANGED
|
@@ -1,24 +1,6 @@
|
|
|
1
1
|
import { type CMKConfig, isCSSModuleFile, type Resolver, STYLES_EXPORT_NAME } from '@css-modules-kit/core';
|
|
2
2
|
import ts from 'typescript';
|
|
3
3
|
|
|
4
|
-
/** The error code used by tsserver to display the css-modules-kit error in the editor. */
|
|
5
|
-
// NOTE: Use any other number than 1002 or later, as they are reserved by TypeScript's built-in errors.
|
|
6
|
-
// ref: https://github.com/microsoft/TypeScript/blob/220706eb0320ff46fad8bf80a5e99db624ee7dfb/src/compiler/diagnosticMessages.json
|
|
7
|
-
export const TS_ERROR_CODE_FOR_CMK_ERROR = 0;
|
|
8
|
-
|
|
9
|
-
export function convertErrorCategory(category: 'error' | 'warning' | 'suggestion'): ts.DiagnosticCategory {
|
|
10
|
-
switch (category) {
|
|
11
|
-
case 'error':
|
|
12
|
-
return ts.DiagnosticCategory.Error;
|
|
13
|
-
case 'warning':
|
|
14
|
-
return ts.DiagnosticCategory.Warning;
|
|
15
|
-
case 'suggestion':
|
|
16
|
-
return ts.DiagnosticCategory.Suggestion;
|
|
17
|
-
default:
|
|
18
|
-
throw new Error(`Unknown category: ${String(category)}`);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
4
|
export function createPreferencesForCompletion<T extends ts.UserPreferences>(preferences: T, config: CMKConfig): T {
|
|
23
5
|
// By default, files in `generated/` are included in the completion candidates.
|
|
24
6
|
// To exclude them, we add the `dtsOutDir` to the `autoImportFileExcludePatterns`.
|