Skip to content

Commit 7d72f45

Browse files
committed
chore: don't deconstruct uriConverter
1 parent 8ada673 commit 7d72f45

File tree

6 files changed

+29
-30
lines changed

6 files changed

+29
-30
lines changed

packages/kit/lib/createChecker.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,10 @@ function createTypeScriptCheckerWorker(
112112
typescript: {
113113
configFileName,
114114
sys: ts.sys,
115-
asFileName,
116-
asUri,
115+
uriConverter: {
116+
asFileName,
117+
asUri,
118+
},
117119
...createLanguageServiceHost(
118120
ts,
119121
ts.sys,

packages/language-server/lib/project/typescriptProject.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ export function createTypeScriptProject(
238238
server,
239239
serviceEnv,
240240
workspaceFolder,
241-
{ asUri: uriConverter.asUri, asFileName: uriConverter.asFileName },
241+
uriConverter,
242242
create
243243
);
244244
configProjects.set(tsconfigUri, projectPromise);
@@ -259,7 +259,7 @@ export function createTypeScriptProject(
259259
server,
260260
serviceEnv,
261261
workspaceFolder,
262-
{ asUri: uriConverter.asUri, asFileName: uriConverter.asFileName },
262+
uriConverter,
263263
create
264264
);
265265
})());

packages/language-server/lib/project/typescriptProjectLs.ts

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ export interface ProjectExposeContext {
2020
configFileName: string | undefined;
2121
projectHost: TypeScriptProjectHost;
2222
sys: ReturnType<typeof createSys>;
23-
asUri(fileName: string): URI;
24-
asFileName(scriptId: URI): string;
23+
uriConverter: {
24+
asUri(fileName: string): URI;
25+
asFileName(uri: URI): string;
26+
};
2527
}
2628

2729
const fsFileSnapshots = createUriMap<[number | undefined, ts.IScriptSnapshot | undefined]>();
@@ -33,7 +35,7 @@ export async function createTypeScriptLS(
3335
server: LanguageServer,
3436
serviceEnv: LanguageServiceEnvironment,
3537
workspaceFolder: URI,
36-
{ asUri, asFileName }: {
38+
uriConverter: {
3739
asUri(fileName: string): URI;
3840
asFileName(uri: URI): string;
3941
},
@@ -45,15 +47,11 @@ export async function createTypeScriptLS(
4547
}): void;
4648
}>
4749
): Promise<TypeScriptProjectLS> {
48-
4950
let parsedCommandLine: ts.ParsedCommandLine;
5051
let projectVersion = 0;
5152

52-
const getCurrentDirectory = () => asFileName(workspaceFolder);
53-
const sys = createSys(ts.sys, serviceEnv, getCurrentDirectory, {
54-
asFileName,
55-
asUri,
56-
});
53+
const getCurrentDirectory = () => uriConverter.asFileName(workspaceFolder);
54+
const sys = createSys(ts.sys, serviceEnv, getCurrentDirectory, uriConverter);
5755
const projectHost: TypeScriptProjectHost = {
5856
getCurrentDirectory,
5957
getProjectVersion() {
@@ -63,7 +61,7 @@ export async function createTypeScriptLS(
6361
return rootFiles;
6462
},
6563
getScriptSnapshot(fileName) {
66-
const uri = asUri(fileName);
64+
const uri = uriConverter.asUri(fileName);
6765
const documentKey = server.getSyncedDocumentKey(uri) ?? uri.toString();
6866
const document = server.documents.get(documentKey);
6967
askedFiles.set(uri, true);
@@ -84,8 +82,7 @@ export async function createTypeScriptLS(
8482
configFileName: typeof tsconfig === 'string' ? tsconfig : undefined,
8583
projectHost,
8684
sys,
87-
asFileName,
88-
asUri,
85+
uriConverter,
8986
});
9087
const askedFiles = createUriMap<boolean>();
9188
const docOpenWatcher = server.documents.onDidOpen(({ document }) => updateFsCacheFromSyncedDocument(document));
@@ -116,7 +113,7 @@ export async function createTypeScriptLS(
116113
else {
117114
// fs files
118115
const cache = fsFileSnapshots.get(uri);
119-
const fileName = asFileName(uri);
116+
const fileName = uriConverter.asFileName(uri);
120117
const modifiedTime = sys.getModifiedTime?.(fileName)?.valueOf();
121118
if (!cache || cache[0] !== modifiedTime) {
122119
if (sys.fileExists(fileName)) {
@@ -143,13 +140,12 @@ export async function createTypeScriptLS(
143140
typescript: {
144141
configFileName: typeof tsconfig === 'string' ? tsconfig : undefined,
145142
sys,
146-
asUri,
147-
asFileName,
143+
uriConverter,
148144
...createLanguageServiceHost(
149145
ts,
150146
sys,
151147
language,
152-
asUri,
148+
s => uriConverter.asUri(s),
153149
projectHost
154150
),
155151
},
@@ -184,7 +180,7 @@ export async function createTypeScriptLS(
184180

185181
function updateFsCacheFromSyncedDocument(document: SnapshotDocument) {
186182
const uri = URI.parse(document.uri);
187-
const fileName = asFileName(uri);
183+
const fileName = uriConverter.asFileName(uri);
188184
if (fsFileSnapshots.has(uri) || sys.fileExists(fileName)) {
189185
const modifiedTime = sys.getModifiedTime?.(fileName);
190186
fsFileSnapshots.set(uri, [modifiedTime?.valueOf(), document.getSnapshot()]);
@@ -195,7 +191,7 @@ export async function createTypeScriptLS(
195191
parsedCommandLine = await createParsedCommandLine(
196192
ts,
197193
sys,
198-
asFileName(workspaceFolder),
194+
uriConverter.asFileName(workspaceFolder),
199195
tsconfig,
200196
languagePlugins.map(plugin => plugin.typescript?.extraFileExtensions ?? []).flat()
201197
);

packages/language-server/lib/register/registerEditorFeatures.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ export function registerEditorFeatures(server: LanguageServer) {
5555
const languageService = (await server.project.getLanguageService(uri));
5656
const tsProject = languageService.context.project.typescript;
5757
if (tsProject?.configFileName) {
58-
const { configFileName, asUri } = tsProject;
59-
return { uri: asUri(configFileName).toString() };
58+
const { configFileName, uriConverter } = tsProject;
59+
return { uri: uriConverter.asUri(configFileName).toString() };
6060
}
6161
});
6262
server.connection.onRequest(GetVirtualFileRequest.type, async document => {
@@ -123,7 +123,7 @@ export function registerEditorFeatures(server: LanguageServer) {
123123
}
124124
}
125125
else {
126-
const uri = tsProject.asUri(fileName);
126+
const uri = tsProject.uriConverter.asUri(fileName);
127127
const sourceScript = languageService.context.language.scripts.get(uri);
128128
if (sourceScript?.generated) {
129129
const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);

packages/monaco/worker.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,13 +149,12 @@ export function createTypeScriptWorkerService<T = {}>({
149149
typescript: {
150150
configFileName: undefined,
151151
sys,
152-
asFileName: uriConverter.asFileName,
153-
asUri: uriConverter.asUri,
152+
uriConverter,
154153
...createLanguageServiceHost(
155154
ts,
156155
sys,
157156
language,
158-
uriConverter.asUri,
157+
s => uriConverter.asUri(s),
159158
{
160159
getCurrentDirectory() {
161160
return sys.getCurrentDirectory();

packages/typescript/index.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ declare module '@volar/language-service' {
2020
};
2121
languageServiceHost: ts.LanguageServiceHost;
2222
getExtraServiceScript(fileName: string): TypeScriptExtraServiceScript | undefined;
23-
asUri(fileName: string): URI;
24-
asFileName(uri: URI): string;
23+
uriConverter: {
24+
asUri(fileName: string): URI;
25+
asFileName(uri: URI): string;
26+
};
2527
};
2628
}
2729
}

0 commit comments

Comments
 (0)