@glint/ember-tsc 1.4.0 → 1.5.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/lib/config/index.d.ts +7 -0
- package/lib/config/index.d.ts.map +1 -1
- package/lib/config/index.js +11 -0
- package/lib/config/index.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/volar/language-server.js +21 -12
- package/lib/volar/language-server.js.map +1 -1
- package/package.json +1 -1
- package/src/config/index.ts +12 -0
- package/src/index.ts +9 -2
- package/src/volar/language-server.ts +23 -11
package/lib/config/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type TS from 'typescript';
|
|
1
2
|
import { GlintConfig } from './config.js';
|
|
2
3
|
export { GlintConfig } from './config.js';
|
|
3
4
|
export { GlintEnvironment } from './environment.js';
|
|
@@ -14,4 +15,10 @@ export declare function loadConfig(from: string): GlintConfig;
|
|
|
14
15
|
* found.
|
|
15
16
|
*/
|
|
16
17
|
export declare function findConfig(from: string): GlintConfig | null;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a default GlintConfig with ember-template-imports environment
|
|
20
|
+
* for use when no tsconfig.json or jsconfig.json exists. This enables
|
|
21
|
+
* Glint to provide IntelliSense in JavaScript-only Ember projects.
|
|
22
|
+
*/
|
|
23
|
+
export declare function createDefaultConfig(ts: typeof TS, rootDir: string): GlintConfig;
|
|
17
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAOpD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAG/E"}
|
package/lib/config/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
1
2
|
import SilentError from 'silent-error';
|
|
3
|
+
import { GlintConfig } from './config.js';
|
|
2
4
|
import { ConfigLoader } from './loader.js';
|
|
3
5
|
export { GlintConfig } from './config.js';
|
|
4
6
|
export { GlintEnvironment } from './environment.js';
|
|
@@ -23,4 +25,13 @@ export function loadConfig(from) {
|
|
|
23
25
|
export function findConfig(from) {
|
|
24
26
|
return new ConfigLoader().configForDirectory(from);
|
|
25
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Creates a default GlintConfig with ember-template-imports environment
|
|
30
|
+
* for use when no tsconfig.json or jsconfig.json exists. This enables
|
|
31
|
+
* Glint to provide IntelliSense in JavaScript-only Ember projects.
|
|
32
|
+
*/
|
|
33
|
+
export function createDefaultConfig(ts, rootDir) {
|
|
34
|
+
const syntheticConfigPath = path.join(rootDir, 'jsconfig.json');
|
|
35
|
+
return new GlintConfig(ts, syntheticConfigPath, { environment: 'ember-template-imports' });
|
|
36
|
+
}
|
|
26
37
|
//# sourceMappingURL=index.js.map
|
package/lib/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3D;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,WAAW,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,YAAY,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE3D;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,WAAW,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,YAAY,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAa,EAAE,OAAe;IAChE,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAChE,OAAO,IAAI,WAAW,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,CAAC;AAC7F,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { GlintConfig, loadConfig, findConfig } from './config/index.js';
|
|
1
|
+
import { GlintConfig, loadConfig, findConfig, createDefaultConfig } from './config/index.js';
|
|
2
2
|
import { createEmberLanguagePlugin } from './volar/ember-language-plugin.js';
|
|
3
3
|
import { VirtualGtsCode } from './volar/gts-virtual-code.js';
|
|
4
4
|
import { augmentDiagnostics } from './transform/diagnostics/augmentation.js';
|
|
5
|
-
export { loadConfig, findConfig, createEmberLanguagePlugin, VirtualGtsCode, augmentDiagnostics };
|
|
5
|
+
export { loadConfig, findConfig, createDefaultConfig, createEmberLanguagePlugin, VirtualGtsCode, augmentDiagnostics, };
|
|
6
6
|
export type { GlintConfig };
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EACL,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,yBAAyB,EACzB,cAAc,EACd,kBAAkB,GACnB,CAAC;AAEF,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { loadConfig, findConfig } from './config/index.js';
|
|
1
|
+
import { loadConfig, findConfig, createDefaultConfig } from './config/index.js';
|
|
2
2
|
import { createEmberLanguagePlugin } from './volar/ember-language-plugin.js';
|
|
3
3
|
import { VirtualGtsCode } from './volar/gts-virtual-code.js';
|
|
4
4
|
import { augmentDiagnostics } from './transform/diagnostics/augmentation.js';
|
|
5
|
-
export { loadConfig, findConfig, createEmberLanguagePlugin, VirtualGtsCode, augmentDiagnostics };
|
|
5
|
+
export { loadConfig, findConfig, createDefaultConfig, createEmberLanguagePlugin, VirtualGtsCode, augmentDiagnostics, };
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EACL,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,yBAAyB,EACzB,cAAc,EACd,kBAAkB,GACnB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
1
2
|
import { createLanguage } from '@volar/language-core';
|
|
2
3
|
import { createLanguageServiceEnvironment } from '@volar/language-server/lib/project/simpleProject.js';
|
|
3
4
|
import { createConnection, createServer } from '@volar/language-server/node.js';
|
|
@@ -7,6 +8,7 @@ import { create as createHtmlSyntacticPlugin } from 'volar-service-html';
|
|
|
7
8
|
import { create as createTypeScriptSyntacticPlugin } from 'volar-service-typescript/lib/plugins/syntactic.js';
|
|
8
9
|
import { URI } from 'vscode-uri';
|
|
9
10
|
import { ConfigLoader } from '../config/loader.js';
|
|
11
|
+
import { createDefaultConfig } from '../config/index.js';
|
|
10
12
|
import { create as createCompilerErrorsPlugin } from '../plugins/g-compiler-errors.js';
|
|
11
13
|
import { create as createComponentHoverPlugin } from '../plugins/g-component-hover.js';
|
|
12
14
|
import { create as createTemplateTagSymbolsPlugin } from '../plugins/g-template-tag-symbols.js';
|
|
@@ -119,20 +121,27 @@ connection.onInitialize((params) => {
|
|
|
119
121
|
getLanguageId: (uri) => server.documents.get(uri)?.languageId,
|
|
120
122
|
},
|
|
121
123
|
];
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
124
|
+
{
|
|
125
|
+
let glintConfig = null;
|
|
126
|
+
const isRealConfigFile = tsconfigFileName &&
|
|
127
|
+
!tsconfigFileName.startsWith('/dev/null') &&
|
|
128
|
+
tsconfigFileName.endsWith('.json');
|
|
129
|
+
if (isRealConfigFile) {
|
|
130
|
+
const configLoader = new ConfigLoader(logInfo);
|
|
131
|
+
glintConfig = configLoader.configForFile(tsconfigFileName);
|
|
129
132
|
}
|
|
130
|
-
|
|
131
|
-
|
|
133
|
+
if (!glintConfig) {
|
|
134
|
+
const rootDir = isRealConfigFile
|
|
135
|
+
? path.dirname(tsconfigFileName)
|
|
136
|
+
: params.workspaceFolders?.[0]
|
|
137
|
+
? URI.parse(params.workspaceFolders[0].uri).fsPath
|
|
138
|
+
: process.cwd();
|
|
139
|
+
logInfo(`Using default Glint config for ${rootDir}.`);
|
|
140
|
+
glintConfig = createDefaultConfig(ts, rootDir);
|
|
132
141
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
142
|
+
logInfo(`Glint config active for ${tsconfigFileName ?? 'default'}.`);
|
|
143
|
+
const emberLanguagePlugin = createEmberLanguagePlugin(glintConfig);
|
|
144
|
+
languagePlugins.push(emberLanguagePlugin);
|
|
136
145
|
}
|
|
137
146
|
const language = createLanguage(languagePlugins, createUriMap(), (uri) => {
|
|
138
147
|
const document = server.documents.get(uri);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-server.js","sourceRoot":"","sources":["../../src/volar/language-server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"language-server.js","sourceRoot":"","sources":["../../src/volar/language-server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/config/index.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
1
2
|
import SilentError from 'silent-error';
|
|
3
|
+
import type TS from 'typescript';
|
|
2
4
|
import { GlintConfig } from './config.js';
|
|
3
5
|
import { ConfigLoader } from './loader.js';
|
|
4
6
|
|
|
@@ -28,3 +30,13 @@ export function loadConfig(from: string): GlintConfig {
|
|
|
28
30
|
export function findConfig(from: string): GlintConfig | null {
|
|
29
31
|
return new ConfigLoader().configForDirectory(from);
|
|
30
32
|
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Creates a default GlintConfig with ember-template-imports environment
|
|
36
|
+
* for use when no tsconfig.json or jsconfig.json exists. This enables
|
|
37
|
+
* Glint to provide IntelliSense in JavaScript-only Ember projects.
|
|
38
|
+
*/
|
|
39
|
+
export function createDefaultConfig(ts: typeof TS, rootDir: string): GlintConfig {
|
|
40
|
+
const syntheticConfigPath = path.join(rootDir, 'jsconfig.json');
|
|
41
|
+
return new GlintConfig(ts, syntheticConfigPath, { environment: 'ember-template-imports' });
|
|
42
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import { GlintConfig, loadConfig, findConfig } from './config/index.js';
|
|
1
|
+
import { GlintConfig, loadConfig, findConfig, createDefaultConfig } from './config/index.js';
|
|
2
2
|
import { createEmberLanguagePlugin } from './volar/ember-language-plugin.js';
|
|
3
3
|
|
|
4
4
|
import { VirtualGtsCode } from './volar/gts-virtual-code.js';
|
|
5
5
|
import { augmentDiagnostics } from './transform/diagnostics/augmentation.js';
|
|
6
6
|
|
|
7
|
-
export {
|
|
7
|
+
export {
|
|
8
|
+
loadConfig,
|
|
9
|
+
findConfig,
|
|
10
|
+
createDefaultConfig,
|
|
11
|
+
createEmberLanguagePlugin,
|
|
12
|
+
VirtualGtsCode,
|
|
13
|
+
augmentDiagnostics,
|
|
14
|
+
};
|
|
8
15
|
|
|
9
16
|
export type { GlintConfig };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
1
2
|
import { createLanguage } from '@volar/language-core';
|
|
2
3
|
import type { LanguagePlugin, LanguageServer } from '@volar/language-server';
|
|
3
4
|
import { createLanguageServiceEnvironment } from '@volar/language-server/lib/project/simpleProject.js';
|
|
@@ -9,6 +10,7 @@ import { create as createHtmlSyntacticPlugin } from 'volar-service-html';
|
|
|
9
10
|
import { create as createTypeScriptSyntacticPlugin } from 'volar-service-typescript/lib/plugins/syntactic.js';
|
|
10
11
|
import { URI } from 'vscode-uri';
|
|
11
12
|
import { ConfigLoader } from '../config/loader.js';
|
|
13
|
+
import { createDefaultConfig } from '../config/index.js';
|
|
12
14
|
import { create as createCompilerErrorsPlugin } from '../plugins/g-compiler-errors.js';
|
|
13
15
|
import { create as createComponentHoverPlugin } from '../plugins/g-component-hover.js';
|
|
14
16
|
import type { ComponentMeta, TsPluginClient } from '../plugins/g-component-hover.js';
|
|
@@ -143,18 +145,28 @@ connection.onInitialize((params) => {
|
|
|
143
145
|
},
|
|
144
146
|
];
|
|
145
147
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
148
|
+
{
|
|
149
|
+
let glintConfig = null;
|
|
150
|
+
const isRealConfigFile =
|
|
151
|
+
tsconfigFileName &&
|
|
152
|
+
!tsconfigFileName.startsWith('/dev/null') &&
|
|
153
|
+
tsconfigFileName.endsWith('.json');
|
|
154
|
+
if (isRealConfigFile) {
|
|
155
|
+
const configLoader = new ConfigLoader(logInfo);
|
|
156
|
+
glintConfig = configLoader.configForFile(tsconfigFileName);
|
|
157
|
+
}
|
|
158
|
+
if (!glintConfig) {
|
|
159
|
+
const rootDir = isRealConfigFile
|
|
160
|
+
? path.dirname(tsconfigFileName!)
|
|
161
|
+
: params.workspaceFolders?.[0]
|
|
162
|
+
? URI.parse(params.workspaceFolders[0].uri).fsPath
|
|
163
|
+
: process.cwd();
|
|
164
|
+
logInfo(`Using default Glint config for ${rootDir}.`);
|
|
165
|
+
glintConfig = createDefaultConfig(ts, rootDir);
|
|
155
166
|
}
|
|
156
|
-
|
|
157
|
-
|
|
167
|
+
logInfo(`Glint config active for ${tsconfigFileName ?? 'default'}.`);
|
|
168
|
+
const emberLanguagePlugin = createEmberLanguagePlugin(glintConfig);
|
|
169
|
+
languagePlugins.push(emberLanguagePlugin);
|
|
158
170
|
}
|
|
159
171
|
|
|
160
172
|
const language = createLanguage<URI>(languagePlugins, createUriMap(), (uri) => {
|