@css-modules-kit/ts-plugin 0.7.0 → 0.8.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/README.md +53 -20
- package/dist/{index.js → index.cjs} +15 -9
- package/dist/index.cjs.map +1 -0
- package/dist/{index.d.ts → index.d.cts} +1 -1
- package/dist/index.d.cts.map +1 -0
- package/dist/language-plugin.d.ts +2 -2
- package/dist/language-plugin.d.ts.map +1 -1
- package/dist/language-plugin.js +15 -23
- package/dist/language-plugin.js.map +1 -1
- package/dist/language-service/feature/code-fix.js +14 -21
- package/dist/language-service/feature/code-fix.js.map +1 -1
- package/dist/language-service/feature/completion.js +15 -22
- package/dist/language-service/feature/completion.js.map +1 -1
- package/dist/language-service/feature/definition-and-bound-span.d.ts.map +1 -1
- package/dist/language-service/feature/definition-and-bound-span.js +27 -14
- package/dist/language-service/feature/definition-and-bound-span.js.map +1 -1
- package/dist/language-service/feature/refactor.js +10 -15
- package/dist/language-service/feature/refactor.js.map +1 -1
- package/dist/language-service/feature/semantic-diagnostic.d.ts.map +1 -1
- package/dist/language-service/feature/semantic-diagnostic.js +13 -11
- package/dist/language-service/feature/semantic-diagnostic.js.map +1 -1
- package/dist/language-service/feature/syntactic-diagnostic.js +6 -9
- package/dist/language-service/feature/syntactic-diagnostic.js.map +1 -1
- package/dist/language-service/proxy.d.ts.map +1 -1
- package/dist/language-service/proxy.js +20 -24
- package/dist/language-service/proxy.js.map +1 -1
- package/dist/protocol-handler/documentLink.js +6 -9
- package/dist/protocol-handler/documentLink.js.map +1 -1
- package/dist/protocol-handler/rename.js +5 -11
- package/dist/protocol-handler/rename.js.map +1 -1
- package/dist/protocol-handler/renameInfo.js +5 -11
- package/dist/protocol-handler/renameInfo.js.map +1 -1
- package/dist/type.js +1 -2
- package/dist/util.js +9 -17
- package/dist/util.js.map +1 -1
- package/package.json +6 -6
- package/src/{index.ts → index.cts} +15 -8
- package/src/language-plugin.ts +2 -7
- package/src/language-service/feature/definition-and-bound-span.ts +28 -9
- package/src/language-service/feature/semantic-diagnostic.ts +7 -2
- package/src/language-service/proxy.ts +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,37 +1,70 @@
|
|
|
1
1
|
# `@css-modules-kit/ts-plugin`
|
|
2
2
|
|
|
3
|
-
A TypeScript Language Service Plugin for CSS Modules
|
|
3
|
+
A TypeScript Language Service Plugin for CSS Modules.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Installation
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
### VS Code
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Install the ts-plugin via the Extension. Please install:
|
|
10
|
+
|
|
11
|
+
- https://marketplace.visualstudio.com/items?itemName=mizdra.css-modules-kit-vscode
|
|
12
|
+
|
|
13
|
+
### Neovim
|
|
14
|
+
|
|
15
|
+
First, install ts-plugin globally.
|
|
10
16
|
|
|
11
17
|
```bash
|
|
12
|
-
npm i -
|
|
18
|
+
npm i -g @css-modules-kit/ts-plugin
|
|
13
19
|
```
|
|
14
20
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
### Neovim
|
|
21
|
+
Next, update your LSP client configuration. Below is an example using `nvim-lspconfig`.
|
|
18
22
|
|
|
19
23
|
```lua
|
|
20
24
|
local lspconfig = require('lspconfig')
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
init_options = {
|
|
24
|
-
plugins = {
|
|
25
|
-
{
|
|
26
|
-
name = '@css-modules-kit/ts-plugin',
|
|
27
|
-
languages = { 'css' },
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'css' },
|
|
32
|
-
}
|
|
26
|
+
-- TODO: Welcome to contribute
|
|
33
27
|
```
|
|
34
28
|
|
|
29
|
+
### Emacs
|
|
30
|
+
|
|
31
|
+
First, install ts-plugin globally.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm i -g @css-modules-kit/ts-plugin
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Next, update your LSP client configuration.
|
|
38
|
+
|
|
39
|
+
TODO: Welcome to contribute
|
|
40
|
+
|
|
41
|
+
### Zed
|
|
42
|
+
|
|
43
|
+
Install the ts-plugin via the Extension. Please follow the steps below:
|
|
44
|
+
|
|
45
|
+
1. Install ["CSS Modules Kit" extension](https://zed.dev/extensions/css-modules-kit).
|
|
46
|
+
2. Add the following to your `~./config/zed/settings.json` file:
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"languages": {
|
|
50
|
+
"CSS": {
|
|
51
|
+
"language_servers": ["vtsls", "..."]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
3. Restart Zed.
|
|
57
|
+
|
|
58
|
+
### WebStorm
|
|
59
|
+
|
|
60
|
+
Not yet supported.
|
|
61
|
+
|
|
62
|
+
### StackBlitz Codeflow
|
|
63
|
+
|
|
64
|
+
Install the ts-plugin via the Extension. Please install:
|
|
65
|
+
|
|
66
|
+
- https://open-vsx.org/extension/mizdra/css-modules-kit-vscode
|
|
67
|
+
|
|
35
68
|
## Configuration
|
|
36
69
|
|
|
37
|
-
See [
|
|
70
|
+
See [Configuration](https://github.com/mizdra/css-modules-kit?tab=readme-ov-file#configuration).
|
|
@@ -34,23 +34,29 @@ const plugin = (0, createLanguageServicePlugin_js_1.createLanguageServicePlugin)
|
|
|
34
34
|
return { languagePlugins: [] };
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
if (config.enabled === false) {
|
|
38
|
+
return { languagePlugins: [] };
|
|
39
|
+
}
|
|
40
|
+
// tsserver should report a "Cannot find module" error for import statements in CSS Modules that
|
|
38
41
|
// do not exist. However, if `dtsOutDir` is included in `rootDirs` and old .d.ts files remain
|
|
39
42
|
// in `dtsOutDir`, the error will not be reported. Therefore, remove `dtsOutDir` from `rootDirs`.
|
|
40
43
|
const getCompilationSettings = info.languageServiceHost.getCompilationSettings.bind(info.languageServiceHost);
|
|
41
44
|
info.languageServiceHost.getCompilationSettings = () => {
|
|
42
|
-
const settings =
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
const settings = getCompilationSettings();
|
|
46
|
+
return new Proxy(settings, {
|
|
47
|
+
get(target, prop, receiver) {
|
|
48
|
+
if (prop === 'rootDirs' && target.rootDirs) {
|
|
49
|
+
return target.rootDirs.filter((dir) => dir !== config.dtsOutDir);
|
|
50
|
+
}
|
|
51
|
+
return Reflect.get(target, prop, receiver);
|
|
52
|
+
},
|
|
53
|
+
});
|
|
48
54
|
};
|
|
49
55
|
const moduleResolutionCache = info.languageServiceHost.getModuleResolutionCache?.();
|
|
50
56
|
const resolver = (0, core_1.createResolver)(config.compilerOptions, moduleResolutionCache);
|
|
51
57
|
const matchesPattern = (0, core_1.createMatchesPattern)(config);
|
|
52
58
|
return {
|
|
53
|
-
languagePlugins: [(0, language_plugin_js_1.createCSSLanguagePlugin)(
|
|
59
|
+
languagePlugins: [(0, language_plugin_js_1.createCSSLanguagePlugin)(matchesPattern, config)],
|
|
54
60
|
setup: (language) => {
|
|
55
61
|
projectToLanguage.set(info.project, language);
|
|
56
62
|
info.languageService = (0, proxy_js_1.proxyLanguageService)(language, info.languageService, info.project, resolver, matchesPattern, config);
|
|
@@ -85,4 +91,4 @@ const plugin = (0, createLanguageServicePlugin_js_1.createLanguageServicePlugin)
|
|
|
85
91
|
};
|
|
86
92
|
});
|
|
87
93
|
module.exports = plugin;
|
|
88
|
-
//# sourceMappingURL=index.
|
|
94
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.cts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.cts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AASjC,QAAA,MAAM,MAAM,+BAsGV,CAAC;AAEH,SAAS,MAAM,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CMKConfig, CSSModule, MatchesPattern
|
|
1
|
+
import type { CMKConfig, CSSModule, MatchesPattern } 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;
|
|
@@ -10,7 +10,7 @@ export interface CSSModuleScript extends SourceScript<string> {
|
|
|
10
10
|
root: CSSModuleVirtualCode;
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
-
export declare function createCSSLanguagePlugin(
|
|
13
|
+
export declare function createCSSLanguagePlugin(matchesPattern: MatchesPattern, config: CMKConfig): LanguagePlugin<string, VirtualCode>;
|
|
14
14
|
export declare function isCSSModuleScript(script: SourceScript<string> | undefined): script is CSSModuleScript;
|
|
15
15
|
export {};
|
|
16
16
|
//# sourceMappingURL=language-plugin.d.ts.map
|
|
@@ -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,cAAc,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,MAAM,uBAAuB,CAAC;AAElF,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,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,SAAS,GAChB,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAgErC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,IAAI,eAAe,CAIrG"}
|
package/dist/language-plugin.js
CHANGED
|
@@ -1,24 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.CMK_DATA_KEY = exports.LANGUAGE_ID = void 0;
|
|
7
|
-
exports.createCSSLanguagePlugin = createCSSLanguagePlugin;
|
|
8
|
-
exports.isCSSModuleScript = isCSSModuleScript;
|
|
9
|
-
const core_1 = require("@css-modules-kit/core");
|
|
10
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
11
|
-
exports.LANGUAGE_ID = 'css';
|
|
12
|
-
exports.CMK_DATA_KEY = Symbol('css-modules-kit-data');
|
|
13
|
-
function createCSSLanguagePlugin(resolver, matchesPattern, config) {
|
|
1
|
+
import { generateDts, parseCSSModule } from '@css-modules-kit/core';
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
export const LANGUAGE_ID = 'css';
|
|
4
|
+
export const CMK_DATA_KEY = Symbol('css-modules-kit-data');
|
|
5
|
+
export function createCSSLanguagePlugin(matchesPattern, config) {
|
|
14
6
|
return {
|
|
15
7
|
getLanguageId(scriptId) {
|
|
16
8
|
if (!scriptId.endsWith('.css'))
|
|
17
9
|
return undefined;
|
|
18
|
-
return
|
|
10
|
+
return LANGUAGE_ID;
|
|
19
11
|
},
|
|
20
12
|
createVirtualCode(scriptId, languageId, snapshot) {
|
|
21
|
-
if (languageId !==
|
|
13
|
+
if (languageId !== LANGUAGE_ID)
|
|
22
14
|
return undefined;
|
|
23
15
|
if (!matchesPattern(scriptId)) {
|
|
24
16
|
// `scriptId` is CSS, but not a CSS module.
|
|
@@ -33,7 +25,7 @@ function createCSSLanguagePlugin(resolver, matchesPattern, config) {
|
|
|
33
25
|
}
|
|
34
26
|
const length = snapshot.getLength();
|
|
35
27
|
const cssModuleCode = snapshot.getText(0, length);
|
|
36
|
-
const cssModule =
|
|
28
|
+
const cssModule = parseCSSModule(cssModuleCode, {
|
|
37
29
|
fileName: scriptId,
|
|
38
30
|
// NOTE: The standard CSS Language Server reports invalid syntax errors.
|
|
39
31
|
// Therefore, if ts-plugin also reports it, the same error is reported twice.
|
|
@@ -42,7 +34,7 @@ function createCSSLanguagePlugin(resolver, matchesPattern, config) {
|
|
|
42
34
|
keyframes: config.keyframes,
|
|
43
35
|
});
|
|
44
36
|
// eslint-disable-next-line prefer-const
|
|
45
|
-
let { text, mapping, linkedCodeMapping } =
|
|
37
|
+
let { text, mapping, linkedCodeMapping } = generateDts(cssModule, { ...config, forTsPlugin: true });
|
|
46
38
|
return {
|
|
47
39
|
id: 'main',
|
|
48
40
|
languageId: 'typescript',
|
|
@@ -55,7 +47,7 @@ function createCSSLanguagePlugin(resolver, matchesPattern, config) {
|
|
|
55
47
|
mappings: [{ ...mapping, data: { navigation: true } }],
|
|
56
48
|
// `linkedCodeMappings` are required to support "Go to Definition" and renaming for the imported tokens
|
|
57
49
|
linkedCodeMappings: [{ ...linkedCodeMapping, data: undefined }],
|
|
58
|
-
[
|
|
50
|
+
[CMK_DATA_KEY]: cssModule,
|
|
59
51
|
};
|
|
60
52
|
},
|
|
61
53
|
typescript: {
|
|
@@ -63,20 +55,20 @@ function createCSSLanguagePlugin(resolver, matchesPattern, config) {
|
|
|
63
55
|
{
|
|
64
56
|
extension: 'css',
|
|
65
57
|
isMixedContent: true,
|
|
66
|
-
scriptKind:
|
|
58
|
+
scriptKind: ts.ScriptKind.TS,
|
|
67
59
|
},
|
|
68
60
|
],
|
|
69
61
|
getServiceScript(root) {
|
|
70
62
|
return {
|
|
71
63
|
code: root,
|
|
72
|
-
extension:
|
|
73
|
-
scriptKind:
|
|
64
|
+
extension: ts.Extension.Ts,
|
|
65
|
+
scriptKind: ts.ScriptKind.TS,
|
|
74
66
|
};
|
|
75
67
|
},
|
|
76
68
|
},
|
|
77
69
|
};
|
|
78
70
|
}
|
|
79
|
-
function isCSSModuleScript(script) {
|
|
80
|
-
return (!!script && script.languageId ===
|
|
71
|
+
export function isCSSModuleScript(script) {
|
|
72
|
+
return (!!script && script.languageId === LANGUAGE_ID && !!script.generated?.root && CMK_DATA_KEY in script.generated.root);
|
|
81
73
|
}
|
|
82
74
|
//# sourceMappingURL=language-plugin.js.map
|
|
@@ -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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"}
|
|
@@ -1,26 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.PROPERTY_DOES_NOT_EXIST_ERROR_CODES = exports.CANNOT_FIND_NAME_ERROR_CODE = void 0;
|
|
7
|
-
exports.getCodeFixesAtPosition = getCodeFixesAtPosition;
|
|
8
|
-
const core_1 = require("@css-modules-kit/core");
|
|
9
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
10
|
-
const util_js_1 = require("../../util.js");
|
|
1
|
+
import { isCSSModuleFile } from '@css-modules-kit/core';
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
import { convertDefaultImportsToNamespaceImports, createPreferencesForCompletion } from '../../util.js';
|
|
11
4
|
// ref: https://github.com/microsoft/TypeScript/blob/220706eb0320ff46fad8bf80a5e99db624ee7dfb/src/compiler/diagnosticMessages.json
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
function getCodeFixesAtPosition(language, languageService, project, resolver, config) {
|
|
5
|
+
export const CANNOT_FIND_NAME_ERROR_CODE = 2304;
|
|
6
|
+
export const PROPERTY_DOES_NOT_EXIST_ERROR_CODES = [2339, 2551];
|
|
7
|
+
export function getCodeFixesAtPosition(language, languageService, project, resolver, config) {
|
|
15
8
|
return (...args) => {
|
|
16
9
|
const [fileName, start, end, errorCodes, formatOptions, preferences, ...rest] = args;
|
|
17
|
-
const prior = Array.from(languageService.getCodeFixesAtPosition(fileName, start, end, errorCodes, formatOptions,
|
|
10
|
+
const prior = Array.from(languageService.getCodeFixesAtPosition(fileName, start, end, errorCodes, formatOptions, createPreferencesForCompletion(preferences, config), ...rest));
|
|
18
11
|
if (config.namedExports && !config.prioritizeNamedImports) {
|
|
19
|
-
|
|
12
|
+
convertDefaultImportsToNamespaceImports(prior, fileName, resolver);
|
|
20
13
|
excludeNamedImports(prior, fileName, resolver);
|
|
21
14
|
}
|
|
22
15
|
// If a user is trying to use a non-existent token (e.g. `styles.nonExistToken`), provide a code fix to add the token.
|
|
23
|
-
if (errorCodes.some((errorCode) =>
|
|
16
|
+
if (errorCodes.some((errorCode) => PROPERTY_DOES_NOT_EXIST_ERROR_CODES.includes(errorCode))) {
|
|
24
17
|
const tokenConsumer = getTokenConsumerAtPosition(fileName, start, languageService, project, config);
|
|
25
18
|
if (tokenConsumer) {
|
|
26
19
|
prior.push({
|
|
@@ -45,7 +38,7 @@ function excludeNamedImports(codeFixes, fileName, resolver) {
|
|
|
45
38
|
continue;
|
|
46
39
|
const specifier = match[1];
|
|
47
40
|
const resolved = resolver(specifier, { request: fileName });
|
|
48
|
-
if (!resolved || !
|
|
41
|
+
if (!resolved || !isCSSModuleFile(resolved))
|
|
49
42
|
continue;
|
|
50
43
|
for (const change of codeFix.changes) {
|
|
51
44
|
change.textChanges = change.textChanges.filter((textChange) => !textChange.newText.startsWith(`import {`));
|
|
@@ -71,7 +64,7 @@ function getTokenConsumerAtPosition(fileName, position, languageService, project
|
|
|
71
64
|
if (!definition)
|
|
72
65
|
return undefined;
|
|
73
66
|
// `definition` is may be `styles` definition in CSS Modules file.
|
|
74
|
-
if (
|
|
67
|
+
if (isCSSModuleFile(definition.fileName)) {
|
|
75
68
|
return { tokenName: propertyAccessExpression.name.text, from: definition.fileName };
|
|
76
69
|
}
|
|
77
70
|
else if (config.namedExports) {
|
|
@@ -79,7 +72,7 @@ function getTokenConsumerAtPosition(fileName, position, languageService, project
|
|
|
79
72
|
// (e.g. the `styles` of `import * as styles from './a.module.css'`).
|
|
80
73
|
// In that case, we need to call `getDefinitionAtPosition` again to get the definition in CSS module file.
|
|
81
74
|
[definition] = languageService.getDefinitionAtPosition(definition.fileName, definition.textSpan.start) ?? [];
|
|
82
|
-
if (definition &&
|
|
75
|
+
if (definition && isCSSModuleFile(definition.fileName)) {
|
|
83
76
|
return { tokenName: propertyAccessExpression.name.text, from: definition.fileName };
|
|
84
77
|
}
|
|
85
78
|
}
|
|
@@ -88,10 +81,10 @@ function getTokenConsumerAtPosition(fileName, position, languageService, project
|
|
|
88
81
|
/** Get the property access expression at the specified position. (e.g. `obj.foo`, `styles.foo`) */
|
|
89
82
|
function getPropertyAccessExpressionAtPosition(sourceFile, position) {
|
|
90
83
|
function getPropertyAccessExpressionImpl(node) {
|
|
91
|
-
if (node.pos <= position && position <= node.end &&
|
|
84
|
+
if (node.pos <= position && position <= node.end && ts.isPropertyAccessExpression(node)) {
|
|
92
85
|
return node;
|
|
93
86
|
}
|
|
94
|
-
return
|
|
87
|
+
return ts.forEachChild(node, getPropertyAccessExpressionImpl);
|
|
95
88
|
}
|
|
96
89
|
return getPropertyAccessExpressionImpl(sourceFile);
|
|
97
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-fix.js","sourceRoot":"","sources":["../../../src/language-service/feature/code-fix.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"code-fix.js","sourceRoot":"","sources":["../../../src/language-service/feature/code-fix.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getCompletionsAtPosition = getCompletionsAtPosition;
|
|
7
|
-
exports.getCompletionEntryDetails = getCompletionEntryDetails;
|
|
8
|
-
const core_1 = require("@css-modules-kit/core");
|
|
9
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
10
|
-
const util_js_1 = require("../../util.js");
|
|
11
|
-
function getCompletionsAtPosition(languageService, config) {
|
|
1
|
+
import { getCssModuleFileName, isComponentFileName, isCSSModuleFile, STYLES_EXPORT_NAME } from '@css-modules-kit/core';
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
import { convertDefaultImportsToNamespaceImports, createPreferencesForCompletion } from '../../util.js';
|
|
4
|
+
export function getCompletionsAtPosition(languageService, config) {
|
|
12
5
|
return (...args) => {
|
|
13
6
|
const [fileName, position, options, ...rest] = args;
|
|
14
|
-
const prior = languageService.getCompletionsAtPosition(fileName, position,
|
|
7
|
+
const prior = languageService.getCompletionsAtPosition(fileName, position, createPreferencesForCompletion(options ?? {}, config), ...rest);
|
|
15
8
|
if (!prior)
|
|
16
9
|
return;
|
|
17
|
-
if (
|
|
18
|
-
const cssModuleFileName =
|
|
10
|
+
if (isComponentFileName(fileName)) {
|
|
11
|
+
const cssModuleFileName = getCssModuleFileName(fileName);
|
|
19
12
|
for (const entry of prior.entries) {
|
|
20
13
|
if (isDefaultExportedStylesEntry(entry) && entry.data.fileName === cssModuleFileName) {
|
|
21
14
|
// Prioritize the completion of the `styles' import for the current .ts file for usability.
|
|
@@ -49,12 +42,12 @@ function getCompletionsAtPosition(languageService, config) {
|
|
|
49
42
|
* Check if the completion entry is the default exported `styles` entry.
|
|
50
43
|
*/
|
|
51
44
|
function isDefaultExportedStylesEntry(entry) {
|
|
52
|
-
return (entry.name ===
|
|
45
|
+
return (entry.name === STYLES_EXPORT_NAME &&
|
|
53
46
|
entry.data !== undefined &&
|
|
54
47
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
55
|
-
entry.data.exportName ===
|
|
48
|
+
entry.data.exportName === ts.InternalSymbolName.Default &&
|
|
56
49
|
entry.data.fileName !== undefined &&
|
|
57
|
-
|
|
50
|
+
isCSSModuleFile(entry.data.fileName));
|
|
58
51
|
}
|
|
59
52
|
/**
|
|
60
53
|
* Check if the completion entry is a named exported token entry.
|
|
@@ -62,24 +55,24 @@ function isDefaultExportedStylesEntry(entry) {
|
|
|
62
55
|
function isNamedExportedTokenEntry(entry) {
|
|
63
56
|
return (entry.data !== undefined &&
|
|
64
57
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
65
|
-
entry.data.exportName !==
|
|
58
|
+
entry.data.exportName !== ts.InternalSymbolName.Default &&
|
|
66
59
|
entry.data.fileName !== undefined &&
|
|
67
|
-
|
|
60
|
+
isCSSModuleFile(entry.data.fileName));
|
|
68
61
|
}
|
|
69
62
|
function isClassNamePropEntry(entry) {
|
|
70
63
|
return (entry.name === 'className' &&
|
|
71
|
-
entry.kind ===
|
|
64
|
+
entry.kind === ts.ScriptElementKind.memberVariableElement &&
|
|
72
65
|
(entry.insertText === 'className="$1"' || entry.insertText === "className='$1'") &&
|
|
73
66
|
entry.isSnippet);
|
|
74
67
|
}
|
|
75
|
-
function getCompletionEntryDetails(languageService, resolver, config) {
|
|
68
|
+
export function getCompletionEntryDetails(languageService, resolver, config) {
|
|
76
69
|
return (...args) => {
|
|
77
70
|
const [fileName] = args;
|
|
78
71
|
const details = languageService.getCompletionEntryDetails(...args);
|
|
79
72
|
if (!details)
|
|
80
73
|
return undefined;
|
|
81
74
|
if (config.namedExports && !config.prioritizeNamedImports && details.codeActions) {
|
|
82
|
-
|
|
75
|
+
convertDefaultImportsToNamespaceImports(details.codeActions, fileName, resolver);
|
|
83
76
|
}
|
|
84
77
|
return details;
|
|
85
78
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/language-service/feature/completion.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/language-service/feature/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-and-bound-span.d.ts","sourceRoot":"","sources":["../../../src/language-service/feature/definition-and-bound-span.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC1B,eAAe,EAAE,EAAE,CAAC,eAAe,GAClC,EAAE,CAAC,eAAe,CAAC,2BAA2B,CAAC,
|
|
1
|
+
{"version":3,"file":"definition-and-bound-span.d.ts","sourceRoot":"","sources":["../../../src/language-service/feature/definition-and-bound-span.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC1B,eAAe,EAAE,EAAE,CAAC,eAAe,GAClC,EAAE,CAAC,eAAe,CAAC,2BAA2B,CAAC,CAuCjD"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getDefinitionAndBoundSpan = getDefinitionAndBoundSpan;
|
|
4
|
-
const language_plugin_js_1 = require("../../language-plugin.js");
|
|
5
|
-
function getDefinitionAndBoundSpan(language, languageService) {
|
|
1
|
+
import { CMK_DATA_KEY, isCSSModuleScript } from '../../language-plugin.js';
|
|
2
|
+
export function getDefinitionAndBoundSpan(language, languageService) {
|
|
6
3
|
return (...args) => {
|
|
7
4
|
const result = languageService.getDefinitionAndBoundSpan(...args);
|
|
8
5
|
if (!result)
|
|
@@ -11,15 +8,31 @@ function getDefinitionAndBoundSpan(language, languageService) {
|
|
|
11
8
|
return result;
|
|
12
9
|
for (const def of result.definitions) {
|
|
13
10
|
const script = language.scripts.get(def.fileName);
|
|
14
|
-
if (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
if (!isCSSModuleScript(script))
|
|
12
|
+
continue;
|
|
13
|
+
const cssModule = script.generated.root[CMK_DATA_KEY];
|
|
14
|
+
// Search tokens and set `contextSpan`. `contextSpan` is used for Definition Preview in editors.
|
|
15
|
+
const localToken = cssModule.localTokens.find((t) => t.name === def.name && t.loc.start.offset === def.textSpan.start);
|
|
16
|
+
if (localToken?.declarationLoc) {
|
|
17
|
+
def.contextSpan = {
|
|
18
|
+
start: localToken.declarationLoc.start.offset,
|
|
19
|
+
length: localToken.declarationLoc.end.offset - localToken.declarationLoc.start.offset,
|
|
20
|
+
};
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
const importedValue = cssModule.tokenImporters
|
|
24
|
+
.flatMap((i) => (i.type === 'value' ? i.values : []))
|
|
25
|
+
.find((v) => {
|
|
26
|
+
const localName = v.localName ?? v.name;
|
|
27
|
+
const localLoc = v.localLoc ?? v.loc;
|
|
28
|
+
return localName === def.name && localLoc.start.offset === def.textSpan.start;
|
|
29
|
+
});
|
|
30
|
+
if (importedValue) {
|
|
31
|
+
const loc = importedValue.localLoc ?? importedValue.loc;
|
|
32
|
+
def.contextSpan = {
|
|
33
|
+
start: loc.start.offset,
|
|
34
|
+
length: loc.end.offset - loc.start.offset,
|
|
35
|
+
};
|
|
23
36
|
}
|
|
24
37
|
}
|
|
25
38
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-and-bound-span.js","sourceRoot":"","sources":["../../../src/language-service/feature/definition-and-bound-span.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"definition-and-bound-span.js","sourceRoot":"","sources":["../../../src/language-service/feature/definition-and-bound-span.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,UAAU,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,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAAE,SAAS;YAEzC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEtD,gGAAgG;YAChG,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,CACxE,CAAC;YACF,IAAI,UAAU,EAAE,cAAc,EAAE,CAAC;gBAC/B,GAAG,CAAC,WAAW,GAAG;oBAChB,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM;oBAC7C,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM;iBACtF,CAAC;gBACF,SAAS;YACX,CAAC;YACD,MAAM,aAAa,GAAG,SAAS,CAAC,cAAc;iBAC3C,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACpD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACV,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC;gBACxC,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;gBACrC,OAAO,SAAS,KAAK,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChF,CAAC,CAAC,CAAC;YACL,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,IAAI,aAAa,CAAC,GAAG,CAAC;gBACxD,GAAG,CAAC,WAAW,GAAG;oBAChB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;oBACvB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM;iBAC1C,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,34 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.createCssModuleFileRefactor = void 0;
|
|
4
|
-
exports.getApplicableRefactors = getApplicableRefactors;
|
|
5
|
-
exports.getEditsForRefactor = getEditsForRefactor;
|
|
6
|
-
const core_1 = require("@css-modules-kit/core");
|
|
7
|
-
exports.createCssModuleFileRefactor = {
|
|
1
|
+
import { getCssModuleFileName, isComponentFileName } from '@css-modules-kit/core';
|
|
2
|
+
export const createCssModuleFileRefactor = {
|
|
8
3
|
name: 'Create CSS Module file',
|
|
9
4
|
description: 'Create CSS Module file',
|
|
10
5
|
actions: [{ name: 'Create CSS Module file', description: 'Create CSS Module file for current file' }],
|
|
11
6
|
};
|
|
12
|
-
function getApplicableRefactors(languageService, project) {
|
|
7
|
+
export function getApplicableRefactors(languageService, project) {
|
|
13
8
|
return (...args) => {
|
|
14
9
|
const [fileName] = args;
|
|
15
10
|
const prior = languageService.getApplicableRefactors(...args);
|
|
16
|
-
if (
|
|
11
|
+
if (isComponentFileName(fileName)) {
|
|
17
12
|
// If the CSS Module file does not exist, provide a refactor to create it.
|
|
18
|
-
if (!project.fileExists(
|
|
19
|
-
prior.push(
|
|
13
|
+
if (!project.fileExists(getCssModuleFileName(fileName))) {
|
|
14
|
+
prior.push(createCssModuleFileRefactor);
|
|
20
15
|
}
|
|
21
16
|
}
|
|
22
17
|
return prior;
|
|
23
18
|
};
|
|
24
19
|
}
|
|
25
|
-
function getEditsForRefactor(languageService) {
|
|
20
|
+
export function getEditsForRefactor(languageService) {
|
|
26
21
|
return (...args) => {
|
|
27
22
|
const [fileName, , , refactorName] = args;
|
|
28
23
|
const prior = languageService.getEditsForRefactor(...args) ?? { edits: [] };
|
|
29
|
-
if (
|
|
30
|
-
if (refactorName ===
|
|
31
|
-
prior.edits.push(createNewCssModuleFileChange(
|
|
24
|
+
if (isComponentFileName(fileName)) {
|
|
25
|
+
if (refactorName === createCssModuleFileRefactor.name) {
|
|
26
|
+
prior.edits.push(createNewCssModuleFileChange(getCssModuleFileName(fileName)));
|
|
32
27
|
}
|
|
33
28
|
}
|
|
34
29
|
return prior;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refactor.js","sourceRoot":"","sources":["../../../src/language-service/feature/refactor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"refactor.js","sourceRoot":"","sources":["../../../src/language-service/feature/refactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGlF,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,wBAAwB;IACrC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;CACzD,CAAC;AAE/C,MAAM,UAAU,sBAAsB,CACpC,eAAmC,EACnC,OAA0B;IAE1B,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,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,0EAA0E;YAC1E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACxD,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,eAAmC;IACrE,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QACjB,MAAM,CAAC,QAAQ,EAAE,AAAD,EAAG,AAAD,EAAG,YAAY,CAAC,GAAG,IAAI,CAAC;QAC1C,MAAM,KAAK,GAAG,eAAe,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC5E,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,IAAI,YAAY,KAAK,2BAA2B,CAAC,IAAI,EAAE,CAAC;gBACtD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,WAAmB;IACvD,OAAO;QACL,QAAQ,EAAE,WAAW;QACrB,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC7D,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-diagnostic.d.ts","sourceRoot":"","sources":["../../../src/language-service/feature/semantic-diagnostic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE3G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"semantic-diagnostic.d.ts","sourceRoot":"","sources":["../../../src/language-service/feature/semantic-diagnostic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE3G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC1B,eAAe,EAAE,EAAE,CAAC,eAAe,EACnC,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,EACrD,MAAM,EAAE,SAAS,GAChB,EAAE,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAyB9C"}
|
|
@@ -1,22 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const core_1 = require("@css-modules-kit/core");
|
|
5
|
-
const language_plugin_js_1 = require("../../language-plugin.js");
|
|
6
|
-
// eslint-disable-next-line max-params
|
|
7
|
-
function getSemanticDiagnostics(language, languageService, exportBuilder, resolver, matchesPattern, getCSSModule, config) {
|
|
1
|
+
import { checkCSSModule, convertDiagnostic } from '@css-modules-kit/core';
|
|
2
|
+
import { CMK_DATA_KEY, isCSSModuleScript } from '../../language-plugin.js';
|
|
3
|
+
export function getSemanticDiagnostics(language, languageService, exportBuilder, resolver, matchesPattern, getCSSModule, config) {
|
|
8
4
|
return (...args) => {
|
|
9
5
|
const [fileName] = args;
|
|
10
6
|
const prior = languageService.getSemanticDiagnostics(...args);
|
|
11
7
|
const script = language.scripts.get(fileName);
|
|
12
|
-
if (
|
|
8
|
+
if (isCSSModuleScript(script)) {
|
|
13
9
|
const virtualCode = script.generated.root;
|
|
14
|
-
const cssModule = virtualCode[
|
|
10
|
+
const cssModule = virtualCode[CMK_DATA_KEY];
|
|
15
11
|
// Clear cache to update export records for all files
|
|
16
12
|
exportBuilder.clearCache();
|
|
17
|
-
const diagnostics =
|
|
13
|
+
const diagnostics = checkCSSModule(cssModule, {
|
|
14
|
+
config,
|
|
15
|
+
getExportRecord: (m) => exportBuilder.build(m),
|
|
16
|
+
matchesPattern,
|
|
17
|
+
resolver,
|
|
18
|
+
getCSSModule,
|
|
19
|
+
});
|
|
18
20
|
const sourceFile = languageService.getProgram().getSourceFile(fileName);
|
|
19
|
-
const tsDiagnostics = diagnostics.map((diagnostic) =>
|
|
21
|
+
const tsDiagnostics = diagnostics.map((diagnostic) => convertDiagnostic(diagnostic, () => sourceFile));
|
|
20
22
|
prior.push(...tsDiagnostics);
|
|
21
23
|
}
|
|
22
24
|
return prior;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-diagnostic.js","sourceRoot":"","sources":["../../../src/language-service/feature/semantic-diagnostic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"semantic-diagnostic.js","sourceRoot":"","sources":["../../../src/language-service/feature/semantic-diagnostic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1E,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,UAAU,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,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1C,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;YAE5C,qDAAqD;YACrD,aAAa,CAAC,UAAU,EAAE,CAAC;YAE3B,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,EAAE;gBAC5C,MAAM;gBACN,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9C,cAAc;gBACd,QAAQ;gBACR,YAAY;aACb,CAAC,CAAC;YACH,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,iBAAiB,CAAC,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"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const core_1 = require("@css-modules-kit/core");
|
|
5
|
-
const language_plugin_js_1 = require("../../language-plugin.js");
|
|
6
|
-
function getSyntacticDiagnostics(language, languageService) {
|
|
1
|
+
import { convertDiagnosticWithLocation } from '@css-modules-kit/core';
|
|
2
|
+
import { CMK_DATA_KEY, isCSSModuleScript } from '../../language-plugin.js';
|
|
3
|
+
export function getSyntacticDiagnostics(language, languageService) {
|
|
7
4
|
return (...args) => {
|
|
8
5
|
const [fileName] = args;
|
|
9
6
|
const prior = languageService.getSyntacticDiagnostics(...args);
|
|
10
7
|
const script = language.scripts.get(fileName);
|
|
11
|
-
if (
|
|
8
|
+
if (isCSSModuleScript(script)) {
|
|
12
9
|
const virtualCode = script.generated.root;
|
|
13
|
-
const diagnostics = virtualCode[
|
|
10
|
+
const diagnostics = virtualCode[CMK_DATA_KEY].diagnostics;
|
|
14
11
|
const sourceFile = languageService.getProgram().getSourceFile(fileName);
|
|
15
|
-
const tsDiagnostics = diagnostics.map((diagnostic) =>
|
|
12
|
+
const tsDiagnostics = diagnostics.map((diagnostic) => convertDiagnosticWithLocation(diagnostic, () => sourceFile));
|
|
16
13
|
prior.push(...tsDiagnostics);
|
|
17
14
|
}
|
|
18
15
|
return prior;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntactic-diagnostic.js","sourceRoot":"","sources":["../../../src/language-service/feature/syntactic-diagnostic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"syntactic-diagnostic.js","sourceRoot":"","sources":["../../../src/language-service/feature/syntactic-diagnostic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,UAAU,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,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,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,6BAA6B,CAAC,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/language-service/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAuB,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/language-service/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAuB,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AASjC,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC1B,eAAe,EAAE,EAAE,CAAC,eAAe,EACnC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAC1B,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,SAAS,GAChB,EAAE,CAAC,eAAe,CAqCpB"}
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const semantic_diagnostic_js_1 = require("./feature/semantic-diagnostic.js");
|
|
11
|
-
const syntactic_diagnostic_js_1 = require("./feature/syntactic-diagnostic.js");
|
|
12
|
-
// eslint-disable-next-line max-params
|
|
13
|
-
function proxyLanguageService(language, languageService, project, resolver, matchesPattern, config) {
|
|
1
|
+
import { createExportBuilder } from '@css-modules-kit/core';
|
|
2
|
+
import { CMK_DATA_KEY, isCSSModuleScript } from '../language-plugin.js';
|
|
3
|
+
import { getCodeFixesAtPosition } from './feature/code-fix.js';
|
|
4
|
+
import { getCompletionEntryDetails, getCompletionsAtPosition } from './feature/completion.js';
|
|
5
|
+
import { getDefinitionAndBoundSpan } from './feature/definition-and-bound-span.js';
|
|
6
|
+
import { getApplicableRefactors, getEditsForRefactor } from './feature/refactor.js';
|
|
7
|
+
import { getSemanticDiagnostics } from './feature/semantic-diagnostic.js';
|
|
8
|
+
import { getSyntacticDiagnostics } from './feature/syntactic-diagnostic.js';
|
|
9
|
+
export function proxyLanguageService(language, languageService, project, resolver, matchesPattern, config) {
|
|
14
10
|
const proxy = Object.create(null);
|
|
15
11
|
for (const k of Object.keys(languageService)) {
|
|
16
12
|
const x = languageService[k];
|
|
@@ -20,20 +16,20 @@ function proxyLanguageService(language, languageService, project, resolver, matc
|
|
|
20
16
|
}
|
|
21
17
|
const getCSSModule = (path) => {
|
|
22
18
|
const script = language.scripts.get(path);
|
|
23
|
-
if (
|
|
24
|
-
return script.generated.root[
|
|
19
|
+
if (isCSSModuleScript(script)) {
|
|
20
|
+
return script.generated.root[CMK_DATA_KEY];
|
|
25
21
|
}
|
|
26
22
|
return undefined;
|
|
27
23
|
};
|
|
28
|
-
const exportBuilder =
|
|
29
|
-
proxy.getSyntacticDiagnostics =
|
|
30
|
-
proxy.getSemanticDiagnostics =
|
|
31
|
-
proxy.getApplicableRefactors =
|
|
32
|
-
proxy.getEditsForRefactor =
|
|
33
|
-
proxy.getCompletionsAtPosition =
|
|
34
|
-
proxy.getCompletionEntryDetails =
|
|
35
|
-
proxy.getCodeFixesAtPosition =
|
|
36
|
-
proxy.getDefinitionAndBoundSpan =
|
|
24
|
+
const exportBuilder = createExportBuilder({ getCSSModule, resolver, matchesPattern });
|
|
25
|
+
proxy.getSyntacticDiagnostics = getSyntacticDiagnostics(language, languageService);
|
|
26
|
+
proxy.getSemanticDiagnostics = getSemanticDiagnostics(language, languageService, exportBuilder, resolver, matchesPattern, getCSSModule, config);
|
|
27
|
+
proxy.getApplicableRefactors = getApplicableRefactors(languageService, project);
|
|
28
|
+
proxy.getEditsForRefactor = getEditsForRefactor(languageService);
|
|
29
|
+
proxy.getCompletionsAtPosition = getCompletionsAtPosition(languageService, config);
|
|
30
|
+
proxy.getCompletionEntryDetails = getCompletionEntryDetails(languageService, resolver, config);
|
|
31
|
+
proxy.getCodeFixesAtPosition = getCodeFixesAtPosition(language, languageService, project, resolver, config);
|
|
32
|
+
proxy.getDefinitionAndBoundSpan = getDefinitionAndBoundSpan(language, languageService);
|
|
37
33
|
return proxy;
|
|
38
34
|
}
|
|
39
35
|
//# sourceMappingURL=proxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/language-service/proxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/language-service/proxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAsC,MAAM,uBAAuB,CAAC;AAGhG,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,MAAM,UAAU,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,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,mBAAmB,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAEtF,KAAK,CAAC,uBAAuB,GAAG,uBAAuB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACnF,KAAK,CAAC,sBAAsB,GAAG,sBAAsB,CACnD,QAAQ,EACR,eAAe,EACf,aAAa,EACb,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,MAAM,CACP,CAAC;IACF,KAAK,CAAC,sBAAsB,GAAG,sBAAsB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAChF,KAAK,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjE,KAAK,CAAC,wBAAwB,GAAG,wBAAwB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACnF,KAAK,CAAC,yBAAyB,GAAG,yBAAyB,CAAC,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/F,KAAK,CAAC,sBAAsB,GAAG,sBAAsB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5G,KAAK,CAAC,yBAAyB,GAAG,yBAAyB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAEvF,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const language_plugin_js_1 = require("../language-plugin.js");
|
|
5
|
-
const util_js_1 = require("../util.js");
|
|
6
|
-
function createDocumentLinkHandler(projectService, projectToLanguage, resolver) {
|
|
1
|
+
import { CMK_DATA_KEY, isCSSModuleScript } from '../language-plugin.js';
|
|
2
|
+
import { getConfiguredProjectForFile } from '../util.js';
|
|
3
|
+
export function createDocumentLinkHandler(projectService, projectToLanguage, resolver) {
|
|
7
4
|
return (request) => {
|
|
8
5
|
const { fileName } = request.arguments;
|
|
9
|
-
const project =
|
|
6
|
+
const project = getConfiguredProjectForFile(projectService, fileName);
|
|
10
7
|
if (!project)
|
|
11
8
|
return {};
|
|
12
9
|
const language = projectToLanguage.get(project);
|
|
@@ -14,8 +11,8 @@ function createDocumentLinkHandler(projectService, projectToLanguage, resolver)
|
|
|
14
11
|
return {};
|
|
15
12
|
const script = language.scripts.get(fileName);
|
|
16
13
|
const links = [];
|
|
17
|
-
if (
|
|
18
|
-
const { tokenImporters } = script.generated.root[
|
|
14
|
+
if (isCSSModuleScript(script)) {
|
|
15
|
+
const { tokenImporters } = script.generated.root[CMK_DATA_KEY];
|
|
19
16
|
for (const { from, fromLoc } of tokenImporters) {
|
|
20
17
|
const resolved = resolver(from, { request: fileName });
|
|
21
18
|
if (!resolved)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentLink.js","sourceRoot":"","sources":["../../src/protocol-handler/documentLink.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"documentLink.js","sourceRoot":"","sources":["../../src/protocol-handler/documentLink.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAMxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,UAAU,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,2BAA2B,CAAC,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,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,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"}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createRenameHandler = createRenameHandler;
|
|
7
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
8
|
-
const util_js_1 = require("../util.js");
|
|
9
|
-
function createRenameHandler(projectService) {
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import { getConfiguredProjectForFile } from '../util.js';
|
|
3
|
+
export function createRenameHandler(projectService) {
|
|
10
4
|
return (request) => {
|
|
11
5
|
const { fileName, position } = request.arguments;
|
|
12
|
-
const project =
|
|
6
|
+
const project = getConfiguredProjectForFile(projectService, fileName);
|
|
13
7
|
if (!project)
|
|
14
8
|
return {};
|
|
15
9
|
const languageService = project.getLanguageService();
|
|
16
|
-
const preference = project.projectService.getPreferences(
|
|
10
|
+
const preference = project.projectService.getPreferences(ts.server.toNormalizedPath(fileName));
|
|
17
11
|
const result = languageService.findRenameLocations(fileName, position, false, false, preference);
|
|
18
12
|
return { response: { result } };
|
|
19
13
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/protocol-handler/rename.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/protocol-handler/rename.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,UAAU,mBAAmB,CAAC,cAAwC;IAC1E,OAAO,CAAC,OAAmC,EAAsC,EAAE;QACjF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QACjD,MAAM,OAAO,GAAG,2BAA2B,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,eAAe,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACjG,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createRenameInfoHandler = createRenameInfoHandler;
|
|
7
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
8
|
-
const util_js_1 = require("../util.js");
|
|
9
|
-
function createRenameInfoHandler(projectService) {
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import { getConfiguredProjectForFile } from '../util.js';
|
|
3
|
+
export function createRenameInfoHandler(projectService) {
|
|
10
4
|
return (request) => {
|
|
11
5
|
const { fileName, position } = request.arguments;
|
|
12
|
-
const project =
|
|
6
|
+
const project = getConfiguredProjectForFile(projectService, fileName);
|
|
13
7
|
if (!project)
|
|
14
8
|
return {};
|
|
15
9
|
const languageService = project.getLanguageService();
|
|
16
|
-
const preference = project.projectService.getPreferences(
|
|
10
|
+
const preference = project.projectService.getPreferences(ts.server.toNormalizedPath(fileName));
|
|
17
11
|
const result = languageService.getRenameInfo(fileName, position, preference);
|
|
18
12
|
return { response: { result } };
|
|
19
13
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renameInfo.js","sourceRoot":"","sources":["../../src/protocol-handler/renameInfo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"renameInfo.js","sourceRoot":"","sources":["../../src/protocol-handler/renameInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,UAAU,uBAAuB,CAAC,cAAwC;IAC9E,OAAO,CAAC,OAAuC,EAA0C,EAAE;QACzF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QACjD,MAAM,OAAO,GAAG,2BAA2B,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,eAAe,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC7E,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/type.js
CHANGED
package/dist/util.js
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createPreferencesForCompletion = createPreferencesForCompletion;
|
|
7
|
-
exports.convertDefaultImportsToNamespaceImports = convertDefaultImportsToNamespaceImports;
|
|
8
|
-
exports.getConfiguredProjectForFile = getConfiguredProjectForFile;
|
|
9
|
-
const core_1 = require("@css-modules-kit/core");
|
|
10
|
-
const typescript_1 = __importDefault(require("typescript"));
|
|
11
|
-
function createPreferencesForCompletion(preferences, config) {
|
|
1
|
+
import { isCSSModuleFile, STYLES_EXPORT_NAME } from '@css-modules-kit/core';
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
export function createPreferencesForCompletion(preferences, config) {
|
|
12
4
|
// By default, files in `generated/` are included in the completion candidates.
|
|
13
5
|
// To exclude them, we add the `dtsOutDir` to the `autoImportFileExcludePatterns`.
|
|
14
6
|
return {
|
|
@@ -20,7 +12,7 @@ function createPreferencesForCompletion(preferences, config) {
|
|
|
20
12
|
* Convert default imports to namespace imports for CSS modules.
|
|
21
13
|
* For example, convert `import styles from './styles.module.css'` to `import * as styles from './styles.module.css'`.
|
|
22
14
|
*/
|
|
23
|
-
function convertDefaultImportsToNamespaceImports(codeFixes, fileName, resolver) {
|
|
15
|
+
export function convertDefaultImportsToNamespaceImports(codeFixes, fileName, resolver) {
|
|
24
16
|
for (const codeFix of codeFixes) {
|
|
25
17
|
if ('fixName' in codeFix && codeFix.fixName !== 'import')
|
|
26
18
|
continue;
|
|
@@ -30,19 +22,19 @@ function convertDefaultImportsToNamespaceImports(codeFixes, fileName, resolver)
|
|
|
30
22
|
continue;
|
|
31
23
|
const specifier = match[1];
|
|
32
24
|
const resolved = resolver(specifier, { request: fileName });
|
|
33
|
-
if (!resolved || !
|
|
25
|
+
if (!resolved || !isCSSModuleFile(resolved))
|
|
34
26
|
continue;
|
|
35
27
|
// If the specifier is a CSS module, convert the import to a namespace import.
|
|
36
28
|
for (const change of codeFix.changes) {
|
|
37
29
|
for (const textChange of change.textChanges) {
|
|
38
|
-
textChange.newText = textChange.newText.replace(`import ${
|
|
30
|
+
textChange.newText = textChange.newText.replace(`import ${STYLES_EXPORT_NAME} from`, `import * as ${STYLES_EXPORT_NAME} from`);
|
|
39
31
|
}
|
|
40
32
|
}
|
|
41
33
|
}
|
|
42
34
|
}
|
|
43
|
-
function getConfiguredProjectForFile(projectService, fileName) {
|
|
44
|
-
const project = projectService.getDefaultProjectForFile(
|
|
45
|
-
if (!project || project.projectKind !==
|
|
35
|
+
export function getConfiguredProjectForFile(projectService, fileName) {
|
|
36
|
+
const project = projectService.getDefaultProjectForFile(ts.server.toNormalizedPath(fileName), false);
|
|
37
|
+
if (!project || project.projectKind !== ts.server.ProjectKind.Configured)
|
|
46
38
|
return;
|
|
47
39
|
return project;
|
|
48
40
|
}
|
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":"AAAA,OAAO,EAAkB,eAAe,EAAiB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,UAAU,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,MAAM,UAAU,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,eAAe,CAAC,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,kBAAkB,OAAO,EACnC,eAAe,kBAAkB,OAAO,CACzC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,cAAwC,EACxC,QAAgB;IAEhB,MAAM,OAAO,GAAG,cAAc,CAAC,wBAAwB,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IACrG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU;QAAE,OAAO;IACjF,OAAO,OAAsC,CAAC;AAChD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@css-modules-kit/ts-plugin",
|
|
3
3
|
"description": "A TypeScript Language Service Plugin for CSS Modules",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"type": "
|
|
4
|
+
"version": "0.8.1",
|
|
5
|
+
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"author": "mizdra <pp.mizdra@gmail.com>",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"private": false,
|
|
15
|
-
"main": "./dist/index.
|
|
15
|
+
"main": "./dist/index.cjs",
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsc -b tsconfig.build.json"
|
|
18
18
|
},
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
},
|
|
26
26
|
"exports": {
|
|
27
27
|
".": {
|
|
28
|
-
"types": "./dist/index.d.
|
|
29
|
-
"default": "./dist/index.
|
|
28
|
+
"types": "./dist/index.d.cts",
|
|
29
|
+
"default": "./dist/index.cjs"
|
|
30
30
|
},
|
|
31
31
|
"./type": {
|
|
32
32
|
"types": "./dist/type.d.ts",
|
|
@@ -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.8.1"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"typescript": ">=5.6.3"
|
|
@@ -40,17 +40,24 @@ const plugin = createLanguageServicePlugin((ts, info) => {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
if (config.enabled === false) {
|
|
44
|
+
return { languagePlugins: [] };
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// tsserver should report a "Cannot find module" error for import statements in CSS Modules that
|
|
44
48
|
// do not exist. However, if `dtsOutDir` is included in `rootDirs` and old .d.ts files remain
|
|
45
49
|
// in `dtsOutDir`, the error will not be reported. Therefore, remove `dtsOutDir` from `rootDirs`.
|
|
46
50
|
const getCompilationSettings = info.languageServiceHost.getCompilationSettings.bind(info.languageServiceHost);
|
|
47
51
|
info.languageServiceHost.getCompilationSettings = () => {
|
|
48
|
-
const settings =
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
const settings = getCompilationSettings();
|
|
53
|
+
return new Proxy(settings, {
|
|
54
|
+
get(target, prop, receiver) {
|
|
55
|
+
if (prop === 'rootDirs' && target.rootDirs) {
|
|
56
|
+
return target.rootDirs.filter((dir) => dir !== config.dtsOutDir);
|
|
57
|
+
}
|
|
58
|
+
return Reflect.get(target, prop, receiver);
|
|
59
|
+
},
|
|
60
|
+
});
|
|
54
61
|
};
|
|
55
62
|
|
|
56
63
|
const moduleResolutionCache = info.languageServiceHost.getModuleResolutionCache?.();
|
|
@@ -58,7 +65,7 @@ const plugin = createLanguageServicePlugin((ts, info) => {
|
|
|
58
65
|
const matchesPattern = createMatchesPattern(config);
|
|
59
66
|
|
|
60
67
|
return {
|
|
61
|
-
languagePlugins: [createCSSLanguagePlugin(
|
|
68
|
+
languagePlugins: [createCSSLanguagePlugin(matchesPattern, config)],
|
|
62
69
|
setup: (language) => {
|
|
63
70
|
projectToLanguage.set(info.project, language);
|
|
64
71
|
info.languageService = proxyLanguageService(
|
package/src/language-plugin.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CMKConfig, CSSModule, MatchesPattern
|
|
1
|
+
import type { CMKConfig, CSSModule, MatchesPattern } from '@css-modules-kit/core';
|
|
2
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';
|
|
@@ -19,7 +19,6 @@ export interface CSSModuleScript extends SourceScript<string> {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export function createCSSLanguagePlugin(
|
|
22
|
-
resolver: Resolver,
|
|
23
22
|
matchesPattern: MatchesPattern,
|
|
24
23
|
config: CMKConfig,
|
|
25
24
|
): LanguagePlugin<string, VirtualCode> {
|
|
@@ -53,11 +52,7 @@ export function createCSSLanguagePlugin(
|
|
|
53
52
|
keyframes: config.keyframes,
|
|
54
53
|
});
|
|
55
54
|
// eslint-disable-next-line prefer-const
|
|
56
|
-
let { text, mapping, linkedCodeMapping } = generateDts(
|
|
57
|
-
cssModule,
|
|
58
|
-
{ resolver, matchesPattern },
|
|
59
|
-
{ ...config, forTsPlugin: true },
|
|
60
|
-
);
|
|
55
|
+
let { text, mapping, linkedCodeMapping } = generateDts(cssModule, { ...config, forTsPlugin: true });
|
|
61
56
|
return {
|
|
62
57
|
id: 'main',
|
|
63
58
|
languageId: 'typescript',
|
|
@@ -12,15 +12,34 @@ export function getDefinitionAndBoundSpan(
|
|
|
12
12
|
if (!result.definitions) return result;
|
|
13
13
|
for (const def of result.definitions) {
|
|
14
14
|
const script = language.scripts.get(def.fileName);
|
|
15
|
-
if (isCSSModuleScript(script))
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
if (!isCSSModuleScript(script)) continue;
|
|
16
|
+
|
|
17
|
+
const cssModule = script.generated.root[CMK_DATA_KEY];
|
|
18
|
+
|
|
19
|
+
// Search tokens and set `contextSpan`. `contextSpan` is used for Definition Preview in editors.
|
|
20
|
+
const localToken = cssModule.localTokens.find(
|
|
21
|
+
(t) => t.name === def.name && t.loc.start.offset === def.textSpan.start,
|
|
22
|
+
);
|
|
23
|
+
if (localToken?.declarationLoc) {
|
|
24
|
+
def.contextSpan = {
|
|
25
|
+
start: localToken.declarationLoc.start.offset,
|
|
26
|
+
length: localToken.declarationLoc.end.offset - localToken.declarationLoc.start.offset,
|
|
27
|
+
};
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const importedValue = cssModule.tokenImporters
|
|
31
|
+
.flatMap((i) => (i.type === 'value' ? i.values : []))
|
|
32
|
+
.find((v) => {
|
|
33
|
+
const localName = v.localName ?? v.name;
|
|
34
|
+
const localLoc = v.localLoc ?? v.loc;
|
|
35
|
+
return localName === def.name && localLoc.start.offset === def.textSpan.start;
|
|
36
|
+
});
|
|
37
|
+
if (importedValue) {
|
|
38
|
+
const loc = importedValue.localLoc ?? importedValue.loc;
|
|
39
|
+
def.contextSpan = {
|
|
40
|
+
start: loc.start.offset,
|
|
41
|
+
length: loc.end.offset - loc.start.offset,
|
|
42
|
+
};
|
|
24
43
|
}
|
|
25
44
|
}
|
|
26
45
|
return result;
|
|
@@ -4,7 +4,6 @@ import type { Language } from '@volar/language-core';
|
|
|
4
4
|
import type ts from 'typescript';
|
|
5
5
|
import { CMK_DATA_KEY, isCSSModuleScript } from '../../language-plugin.js';
|
|
6
6
|
|
|
7
|
-
// eslint-disable-next-line max-params
|
|
8
7
|
export function getSemanticDiagnostics(
|
|
9
8
|
language: Language<string>,
|
|
10
9
|
languageService: ts.LanguageService,
|
|
@@ -25,7 +24,13 @@ export function getSemanticDiagnostics(
|
|
|
25
24
|
// Clear cache to update export records for all files
|
|
26
25
|
exportBuilder.clearCache();
|
|
27
26
|
|
|
28
|
-
const diagnostics = checkCSSModule(cssModule,
|
|
27
|
+
const diagnostics = checkCSSModule(cssModule, {
|
|
28
|
+
config,
|
|
29
|
+
getExportRecord: (m) => exportBuilder.build(m),
|
|
30
|
+
matchesPattern,
|
|
31
|
+
resolver,
|
|
32
|
+
getCSSModule,
|
|
33
|
+
});
|
|
29
34
|
const sourceFile = languageService.getProgram()!.getSourceFile(fileName)!;
|
|
30
35
|
const tsDiagnostics = diagnostics.map((diagnostic) => convertDiagnostic(diagnostic, () => sourceFile));
|
|
31
36
|
prior.push(...tsDiagnostics);
|
|
@@ -10,7 +10,6 @@ import { getApplicableRefactors, getEditsForRefactor } from './feature/refactor.
|
|
|
10
10
|
import { getSemanticDiagnostics } from './feature/semantic-diagnostic.js';
|
|
11
11
|
import { getSyntacticDiagnostics } from './feature/syntactic-diagnostic.js';
|
|
12
12
|
|
|
13
|
-
// eslint-disable-next-line max-params
|
|
14
13
|
export function proxyLanguageService(
|
|
15
14
|
language: Language<string>,
|
|
16
15
|
languageService: ts.LanguageService,
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AASjC,QAAA,MAAM,MAAM,+BA+FV,CAAC;AAEH,SAAS,MAAM,CAAC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|