@glint/tsserver-plugin 2.2.2 → 2.2.3

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 CHANGED
@@ -15,3 +15,4 @@ install the extension from here: https://open-vsx.org/extension/typed-ember/glin
15
15
  ### neovim
16
16
 
17
17
  This plugin is part of [ember.nvim](https://github.com/NullVoxPopuli/ember.nvim), but can be configured manually via similar setup to [here](https://github.com/NullVoxPopuli/ember.nvim/blob/0cec0eb3641e10df0a32e1e81206efaff22f1974/lua/ember/lsp/typescript.lua#L49)
18
+
@@ -0,0 +1,34 @@
1
+ declare const plugin: any;
2
+ export = plugin;
3
+ /**
4
+ * Return semantic tokens for semantic highlighting:
5
+ * https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide
6
+ function getEncodedSemanticClassifications<T>(
7
+ ts: typeof import('typescript'),
8
+ language: any, // Language<T>,
9
+ languageService: ts.LanguageService,
10
+ asScriptId: (fileName: string) => T,
11
+ getEncodedSemanticClassifications: ts.LanguageService['getEncodedSemanticClassifications'],
12
+ ): ts.LanguageService['getEncodedSemanticClassifications'] {
13
+ return (filePath, span, format) => {
14
+ const fileName = filePath.replace(windowsPathReg, '/');
15
+ const result = getEncodedSemanticClassifications(fileName, span, format);
16
+ const sourceScript = language.scripts.get(asScriptId(fileName));
17
+ const root = sourceScript?.generated?.root;
18
+ if (root instanceof VirtualGtsCode) {
19
+ // This would remove all semantic highlighting from .gts files, including the TS parts
20
+ // outside of the `<template>` tags, which is probably undesirable.
21
+ // result.spans = [];
22
+
23
+ // We can push span to the end of the array to override previous entries.
24
+ // result.spans.push(
25
+ // 0,
26
+ // 100,
27
+ // 256, // class
28
+ // );
29
+ }
30
+ return result;
31
+ };
32
+ }
33
+ */
34
+ //# sourceMappingURL=typescript-server-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-server-plugin.d.ts","sourceRoot":"","sources":["../src/typescript-server-plugin.ts"],"names":[],"mappings":"AAuHA,QAAA,MAAM,MAAM,KAkMX,CAAC;AAEF,SAAS,MAAM,CAAC;AAoIhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG"}
@@ -0,0 +1,351 @@
1
+ "use strict";
2
+ const node_module_1 = require("node:module");
3
+ const path = require("node:path");
4
+ const { createJiti } = require('jiti');
5
+ const jiti = createJiti(__filename);
6
+ const { createLanguageServicePlugin, } = require('@volar/typescript/lib/quickstart/createLanguageServicePlugin.js');
7
+ let emberTsc;
8
+ let VirtualGtsCode;
9
+ let augmentDiagnostics;
10
+ function normalizeEmberTscSource(value) {
11
+ if (value === 'workspace' || value === 'bundled' || value === 'auto') {
12
+ return value;
13
+ }
14
+ return 'auto';
15
+ }
16
+ function getBundledEmberTscPath() {
17
+ try {
18
+ // @ts-expect-error esbuild define
19
+ return EMBER_TSC_PATH;
20
+ }
21
+ catch {
22
+ return undefined;
23
+ }
24
+ }
25
+ function loadEmberTscFromWorkspace(resolutionDir, logInfo) {
26
+ try {
27
+ const requireFrom = (0, node_module_1.createRequire)(path.join(resolutionDir, 'package.json'));
28
+ const resolvedPath = requireFrom.resolve('@glint/ember-tsc');
29
+ const workspaceJiti = createJiti(path.join(resolutionDir, 'package.json'));
30
+ return { module: workspaceJiti(resolvedPath), resolvedPath };
31
+ }
32
+ catch (error) {
33
+ logInfo(`Unable to resolve @glint/ember-tsc from ${resolutionDir}: ${error instanceof Error ? error.message : String(error)}`);
34
+ return null;
35
+ }
36
+ }
37
+ function loadEmberTscFromBundled(bundledPath, logInfo) {
38
+ if (!bundledPath) {
39
+ logInfo('Bundled ember-tsc path was not provided by the build.');
40
+ return null;
41
+ }
42
+ try {
43
+ return { module: jiti(bundledPath), resolvedPath: bundledPath };
44
+ }
45
+ catch (error) {
46
+ logInfo(`Unable to load bundled ember-tsc at ${bundledPath}: ${error instanceof Error ? error.message : String(error)}`);
47
+ return null;
48
+ }
49
+ }
50
+ function loadEmberTscFromWorkspaceDirs(resolutionDirs, logInfo) {
51
+ for (const resolutionDir of resolutionDirs) {
52
+ const resolved = loadEmberTscFromWorkspace(resolutionDir, logInfo);
53
+ if (resolved) {
54
+ return resolved;
55
+ }
56
+ }
57
+ return null;
58
+ }
59
+ function getWorkspaceResolutionDirs(workspaceRoot, libraryPath, info) {
60
+ const candidates = [path.resolve(workspaceRoot, libraryPath)];
61
+ const project = info.project;
62
+ const projectName = project.getProjectName?.();
63
+ if (typeof projectName === 'string' && path.isAbsolute(projectName)) {
64
+ const projectDir = projectName.endsWith('.json') ? path.dirname(projectName) : projectName;
65
+ candidates.push(path.resolve(projectDir, libraryPath));
66
+ }
67
+ const projectDir = project.getCurrentDirectory?.();
68
+ if (typeof projectDir === 'string' && path.isAbsolute(projectDir)) {
69
+ candidates.push(path.resolve(projectDir, libraryPath));
70
+ }
71
+ return Array.from(new Set(candidates));
72
+ }
73
+ const plugin = createLanguageServicePlugin((ts, info) => {
74
+ const logger = info.project.projectService.logger;
75
+ const logInfo = (message) => logger.info(`[Glint] ${message}`);
76
+ // Early bail-out: if no tsconfig.json or jsconfig.json exists, don't even
77
+ // attempt to load ember-tsc. This prevents expensive module loading (jiti,
78
+ // WASM content-tag, etc.) for projects that have no TypeScript config.
79
+ const cwd = info.languageServiceHost.getCurrentDirectory();
80
+ const hasTsConfig = ts.findConfigFile(cwd, ts.sys.fileExists, 'tsconfig.json');
81
+ const hasJsConfig = ts.findConfigFile(cwd, ts.sys.fileExists, 'jsconfig.json');
82
+ if (!hasTsConfig && !hasJsConfig) {
83
+ logInfo(`No tsconfig.json or jsconfig.json found from ${cwd}. ` +
84
+ 'Glint TS Plugin will not activate.');
85
+ return { languagePlugins: [] };
86
+ }
87
+ const config = info.config ?? {};
88
+ const emberTscSource = normalizeEmberTscSource(config.emberTscSource);
89
+ const workspaceRoot = typeof config.workspaceRoot === 'string' ? config.workspaceRoot : cwd;
90
+ const libraryPath = typeof config.libraryPath === 'string' ? config.libraryPath : '.';
91
+ const resolutionDirs = getWorkspaceResolutionDirs(workspaceRoot, libraryPath, info);
92
+ let resolved = null;
93
+ if (emberTscSource === 'bundled') {
94
+ const bundled = loadEmberTscFromBundled(getBundledEmberTscPath(), logInfo);
95
+ if (bundled) {
96
+ resolved = { ...bundled, source: 'bundled' };
97
+ }
98
+ else {
99
+ const workspace = loadEmberTscFromWorkspaceDirs(resolutionDirs, logInfo);
100
+ if (workspace) {
101
+ logInfo('Bundled ember-tsc unavailable; falling back to workspace package.');
102
+ resolved = { ...workspace, source: 'workspace' };
103
+ }
104
+ }
105
+ }
106
+ else {
107
+ const workspace = loadEmberTscFromWorkspaceDirs(resolutionDirs, logInfo);
108
+ if (workspace) {
109
+ resolved = { ...workspace, source: 'workspace' };
110
+ }
111
+ else {
112
+ const bundled = loadEmberTscFromBundled(getBundledEmberTscPath(), logInfo);
113
+ if (bundled) {
114
+ logInfo('Workspace ember-tsc not found; falling back to bundled package.');
115
+ resolved = { ...bundled, source: 'bundled' };
116
+ }
117
+ }
118
+ }
119
+ if (!resolved) {
120
+ logInfo('Unable to load ember-tsc; Glint TS Plugin will not start.');
121
+ return { languagePlugins: [] };
122
+ }
123
+ emberTsc = resolved.module;
124
+ VirtualGtsCode = emberTsc.VirtualGtsCode;
125
+ augmentDiagnostics = emberTsc.augmentDiagnostics;
126
+ logInfo(`Using ${resolved.source} ember-tsc from ${resolved.resolvedPath}.`);
127
+ const { findConfig, createEmberLanguagePlugin } = emberTsc;
128
+ const glintConfig = findConfig(cwd);
129
+ if (glintConfig) {
130
+ const gtsLanguagePlugin = createEmberLanguagePlugin(glintConfig, {
131
+ clientId: 'tsserver-plugin',
132
+ });
133
+ return {
134
+ languagePlugins: [gtsLanguagePlugin],
135
+ setup: (language) => {
136
+ // project2Service.set(info.project, [
137
+ // language,
138
+ // info.languageServiceHost,
139
+ // info.languageService,
140
+ // ]);
141
+ info.languageService = proxyLanguageServiceForGlint(ts, language, info.languageService, (fileName) => fileName);
142
+ const resolveModuleNameLiterals = info.languageServiceHost.resolveModuleNameLiterals?.bind(info.languageServiceHost);
143
+ if (resolveModuleNameLiterals) {
144
+ // TS isn't aware of our custom .gts/.gjs extensions by default which causes
145
+ // issues with resolving imports that omit extensions. We hackishly "teach"
146
+ // TS about these extensions by overriding `resolveModuleNameLiterals` to
147
+ // inject non-existent imports that cause TS to consider the extensions when
148
+ // resolving.
149
+ //
150
+ // Origin of this hack:
151
+ // https://github.com/typed-ember/glint/issues/806#issuecomment-2758616327
152
+ info.languageServiceHost.resolveModuleNameLiterals = (moduleLiterals, containingFile, redirectedReference, options, ...rest) => {
153
+ let fakeImportNodes = [];
154
+ if (moduleLiterals.length > 0) {
155
+ fakeImportNodes.push({
156
+ ...moduleLiterals[0],
157
+ text: './__NONEXISTENT_GLINT_HACK__.gts',
158
+ });
159
+ fakeImportNodes.push({
160
+ ...moduleLiterals[0],
161
+ text: './__NONEXISTENT_GLINT_HACK__.gjs',
162
+ });
163
+ }
164
+ const result = resolveModuleNameLiterals([...fakeImportNodes, ...moduleLiterals], containingFile, redirectedReference, options, ...rest);
165
+ return result.slice(fakeImportNodes.length);
166
+ };
167
+ }
168
+ // Add Glint-specific protocol handlers for tsserver communication
169
+ addGlintCommands();
170
+ // #3963
171
+ // const timer = setInterval(() => {
172
+ // if (info.project['program']) {
173
+ // clearInterval(timer);
174
+ // info.project['program'].__glint__ = { language };
175
+ // }
176
+ // }, 50);
177
+ },
178
+ };
179
+ }
180
+ else {
181
+ logInfo('Glint TS Plugin is not running: no Glint config was found.');
182
+ return {
183
+ languagePlugins: [],
184
+ };
185
+ }
186
+ // https://github.com/JetBrains/intellij-plugins/blob/6435723ad88fa296b41144162ebe3b8513f4949b/Angular/src-js/angular-service/src/index.ts#L69
187
+ function addGlintCommands() {
188
+ const projectService = info.project.projectService;
189
+ projectService.logger.info('Glint: called handler processing ' + info.project.projectKind);
190
+ const session = info.session;
191
+ if (session == undefined) {
192
+ projectService.logger.info('Glint: there is no session in info.');
193
+ return;
194
+ }
195
+ if (session.addProtocolHandler == undefined) {
196
+ // addProtocolHandler was introduced in TS 4.4 or 4.5 in 2021, see https://github.com/microsoft/TypeScript/issues/43893
197
+ projectService.logger.info('Glint: there is no addProtocolHandler method.');
198
+ return;
199
+ }
200
+ if (session.handlers.has('_glint:projectInfo')) {
201
+ return;
202
+ }
203
+ // Map _glint: prefixed commands to their corresponding TypeScript server commands
204
+ session.addProtocolHandler('_glint:projectInfo', ({ arguments: args }) => {
205
+ return session.handlers.get('projectInfo')?.({ arguments: args });
206
+ });
207
+ session.addProtocolHandler('_glint:documentHighlights-full', ({ arguments: args }) => {
208
+ return session.handlers.get('documentHighlights-full')?.({ arguments: args });
209
+ });
210
+ session.addProtocolHandler('_glint:encodedSemanticClassifications-full', ({ arguments: args }) => {
211
+ return session.handlers.get('encodedSemanticClassifications-full')?.({
212
+ arguments: args,
213
+ });
214
+ });
215
+ session.addProtocolHandler('_glint:quickinfo', ({ arguments: args }) => {
216
+ return session.handlers.get('quickinfo')?.({ arguments: args });
217
+ });
218
+ projectService.logger.info('Glint specific commands are successfully added.');
219
+ }
220
+ });
221
+ function proxyLanguageServiceForGlint(ts, language, // Language<T>,
222
+ languageService, asScriptId) {
223
+ // eslint-lint-disable-next-line @typescript-eslint/no-unsafe-function-type
224
+ const proxyCache = new Map();
225
+ // eslint-lint-disable-next-line @typescript-eslint/no-unsafe-function-type
226
+ const getProxyMethod = (target, p) => {
227
+ switch (p) {
228
+ case 'getCompletionsAtPosition':
229
+ return getCompletionsAtPosition(ts, language, languageService, asScriptId, target[p]);
230
+ // case 'getCompletionEntryDetails': return getCompletionEntryDetails(language, asScriptId, target[p]);
231
+ // case 'getCodeFixesAtPosition': return getCodeFixesAtPosition(target[p]);
232
+ // case 'getDefinitionAndBoundSpan': return getDefinitionAndBoundSpan(ts, language, languageService, glintOptions, asScriptId, target[p]);
233
+ // case 'getQuickInfoAtPosition': return getQuickInfoAtPosition(ts, target, target[p]);
234
+ // TS plugin only
235
+ // Left as an example in case we want to augment semantic classification in .gts files.
236
+ // e.g. Vue does this to semantically classify Component names as `class` tokens.
237
+ // case 'getEncodedSemanticClassifications':
238
+ // return getEncodedSemanticClassifications(ts, language, target, asScriptId, target[p]);
239
+ case 'getSemanticDiagnostics':
240
+ return getSemanticDiagnostics(ts, language, languageService, asScriptId, target[p]);
241
+ }
242
+ };
243
+ return new Proxy(languageService, {
244
+ get(target, p, receiver) {
245
+ if (getProxyMethod) {
246
+ if (!proxyCache.has(p)) {
247
+ proxyCache.set(p, getProxyMethod(target, p));
248
+ }
249
+ const proxyMethod = proxyCache.get(p);
250
+ if (proxyMethod) {
251
+ return proxyMethod;
252
+ }
253
+ }
254
+ return Reflect.get(target, p, receiver);
255
+ },
256
+ set(target, p, value, receiver) {
257
+ return Reflect.set(target, p, value, receiver);
258
+ },
259
+ });
260
+ }
261
+ function getCompletionsAtPosition(ts, language, // Language<T>,
262
+ languageService, asScriptId, getCompletionsAtPosition) {
263
+ return (fileName, position, options, formattingSettings) => {
264
+ try {
265
+ const sourceScript = language.scripts.get(asScriptId(fileName));
266
+ const root = sourceScript?.generated?.root;
267
+ const transformedModule = root?.transformedModule;
268
+ const completions = getCompletionsAtPosition(fileName, position, options, formattingSettings);
269
+ const transformedRange = transformedModule?.getTransformedRange(transformedModule.originalFileName, position, position);
270
+ if (completions && transformedRange) {
271
+ // for attribute names on elements, we do not want the wrapping `"`.
272
+ if (transformedRange.mapping?.parent?.sourceNode.type === 'ElementNode') {
273
+ completions.entries = completions.entries.map((e) => ({
274
+ ...e,
275
+ name: e.name.replace(/^"/, '').replace(/"$/, ''),
276
+ sortText: e.sortText.replace(/\\"/g, ''),
277
+ }));
278
+ }
279
+ }
280
+ console.log(completions);
281
+ return completions;
282
+ }
283
+ catch (e) {
284
+ console.log('error', e?.message);
285
+ console.log(e);
286
+ throw e;
287
+ }
288
+ };
289
+ }
290
+ function getSemanticDiagnostics(ts, language, // Language<T>,
291
+ languageService, asScriptId, getSemanticDiagnostics) {
292
+ return (fileName) => {
293
+ const tsDiagnostics = getSemanticDiagnostics(fileName);
294
+ if (!VirtualGtsCode || !augmentDiagnostics) {
295
+ return tsDiagnostics;
296
+ }
297
+ const program = languageService.getProgram();
298
+ const sourceScript = language.scripts.get(asScriptId(fileName));
299
+ if (!sourceScript?.generated) {
300
+ return tsDiagnostics;
301
+ }
302
+ const root = sourceScript.generated.root;
303
+ if (!(root instanceof VirtualGtsCode)) {
304
+ return tsDiagnostics;
305
+ }
306
+ const transformedModule = root.transformedModule;
307
+ if (!transformedModule) {
308
+ return tsDiagnostics;
309
+ }
310
+ const sourceFile = program.getSourceFile(fileName);
311
+ if (!sourceFile) {
312
+ return tsDiagnostics;
313
+ }
314
+ const augmentedTsDiagnostics = augmentDiagnostics(transformedModule, tsDiagnostics);
315
+ return augmentedTsDiagnostics;
316
+ };
317
+ }
318
+ const windowsPathReg = /\\/g;
319
+ module.exports = plugin;
320
+ /**
321
+ * Return semantic tokens for semantic highlighting:
322
+ * https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide
323
+ function getEncodedSemanticClassifications<T>(
324
+ ts: typeof import('typescript'),
325
+ language: any, // Language<T>,
326
+ languageService: ts.LanguageService,
327
+ asScriptId: (fileName: string) => T,
328
+ getEncodedSemanticClassifications: ts.LanguageService['getEncodedSemanticClassifications'],
329
+ ): ts.LanguageService['getEncodedSemanticClassifications'] {
330
+ return (filePath, span, format) => {
331
+ const fileName = filePath.replace(windowsPathReg, '/');
332
+ const result = getEncodedSemanticClassifications(fileName, span, format);
333
+ const sourceScript = language.scripts.get(asScriptId(fileName));
334
+ const root = sourceScript?.generated?.root;
335
+ if (root instanceof VirtualGtsCode) {
336
+ // This would remove all semantic highlighting from .gts files, including the TS parts
337
+ // outside of the `<template>` tags, which is probably undesirable.
338
+ // result.spans = [];
339
+
340
+ // We can push span to the end of the array to override previous entries.
341
+ // result.spans.push(
342
+ // 0,
343
+ // 100,
344
+ // 256, // class
345
+ // );
346
+ }
347
+ return result;
348
+ };
349
+ }
350
+ */
351
+ //# sourceMappingURL=typescript-server-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-server-plugin.js","sourceRoot":"","sources":["../src/typescript-server-plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glint/tsserver-plugin",
3
- "version": "2.2.2",
3
+ "version": "2.2.3",
4
4
  "type": "commonjs",
5
5
  "repository": "typed-ember/glint",
6
6
  "description": "TypeScript Server Plugin for Glint",
@@ -18,7 +18,7 @@
18
18
  "@volar/typescript": "~2.4.28",
19
19
  "jiti": "~2.6.1",
20
20
  "typescript": "^5.9.3",
21
- "@glint/ember-tsc": "1.2.1"
21
+ "@glint/ember-tsc": "1.2.2"
22
22
  },
23
23
  "publishConfig": {
24
24
  "access": "public"