Skip to content

Commit

Permalink
feat(language-service): support auto imports and project references
Browse files Browse the repository at this point in the history
Update `typescrpt-auto-import-cache` which now handles creating language service
with the proxied host for auto completes and project reference support.
  • Loading branch information
blake-newman committed Mar 29, 2023
1 parent f570d89 commit dfc65bb
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
2 changes: 1 addition & 1 deletion packages/language-service/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"dependencies": {
"@volar/language-core": "1.4.0-alpha.5",
"@volar/source-map": "1.4.0-alpha.5",
"typescript-auto-import-cache": "^0.0.1",
"typescript-auto-import-cache": "^0.1.0",
"vscode-html-languageservice": "^5.0.4",
"vscode-json-languageservice": "^5.2.0",
"vscode-languageserver-protocol": "^3.17.3",
Expand Down
15 changes: 9 additions & 6 deletions packages/language-service/src/baseLanguageService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,16 @@ function createLanguageServiceContext(
languageContext: ReturnType<typeof createLanguageContext>,
documentRegistry?: ts.DocumentRegistry,
) {

const ts = ctx.host.getTypeScriptModule?.();
const tsLs = ts?.createLanguageService(languageContext.typescript.languageServiceHost, documentRegistry);

if (ts && tsLs) {
tsFaster.decorate(ts, languageContext.typescript.languageServiceHost, tsLs);
}
const tsLs = ts ? tsFaster.createLanguageService(
ts,
languageContext.typescript.languageServiceHost,
(proxiedHost) => {
languageContext.typescript.languageServiceHost = proxiedHost
return ts.createLanguageService(proxiedHost, documentRegistry)
},
ctx.rootUri.path
) : undefined

const textDocumentMapper = createDocumentsAndSourceMaps(ctx, languageContext.virtualFiles);
const documents = new WeakMap<ts.IScriptSnapshot, TextDocument>();
Expand Down

0 comments on commit dfc65bb

Please sign in to comment.