Skip to content

Commit

Permalink
fix(language-server): don't expose parsedCommandLine in typescript pr…
Browse files Browse the repository at this point in the history
…oject context
  • Loading branch information
johnsoncodehk committed Dec 20, 2023
1 parent dcd70c7 commit c6d6774
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 16 deletions.
26 changes: 12 additions & 14 deletions packages/language-server/lib/project/typescriptProject.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { LanguageService, ServiceEnvironment, TypeScriptProjectHost, createLanguageService, resolveCommonLanguageId } from '@volar/language-service';
import { LanguagePlugin, LanguageService, ServiceEnvironment, TypeScriptProjectHost, createLanguageService, resolveCommonLanguageId } from '@volar/language-service';
import { createLanguage, createSys } from '@volar/typescript';
import * as path from 'path-browserify';
import type * as ts from 'typescript/lib/tsserverlibrary';
import * as vscode from 'vscode-languageserver';
import type { ProjectContext, ServerProject } from '../types';
import type { ServerProject } from '../types';
import { UriMap, createUriMap } from '../utils/uriMap';
import type { WorkspacesContext } from './simpleProjectProvider';
import type { ServerOptions } from '../server';
Expand All @@ -25,6 +25,10 @@ export async function createTypeScriptServerProject(
throw '!context.workspaces.ts';
}

let parsedCommandLine: ts.ParsedCommandLine;
let projectVersion = 0;
let languageService: LanguageService | undefined;

const { uriToFileName, fileNameToUri } = context.server.runtimeEnv;
const ts = context.workspaces.ts;
const host: TypeScriptProjectHost = {
Expand All @@ -44,19 +48,11 @@ export async function createTypeScriptServerProject(
getLanguageId: uri => context.workspaces.documents.get(uri)?.languageId ?? resolveCommonLanguageId(uri),
};
const sys = createSys(ts, serviceEnv, host.getCurrentDirectory());

let parsedCommandLine: ts.ParsedCommandLine;
let rootFiles = await getRootFiles();
let projectVersion = 0;
let languageService: LanguageService | undefined;

const projectContext: ProjectContext = {
const { languagePlugins, servicePlugins } = await serverOptions.getProjectSetup(serviceEnv, {
typescript: {
parsedCommandLine: parsedCommandLine!,
configFileName: typeof tsconfig === 'string' ? tsconfig : undefined,
},
};
const { languagePlugins, servicePlugins } = await serverOptions.getProjectSetup(serviceEnv, projectContext);
});
const askedFiles = createUriMap<boolean>(fileNameToUri);
const docChangeWatcher = context.workspaces.documents.onDidChangeContent(() => {
projectVersion++;
Expand All @@ -65,6 +61,8 @@ export async function createTypeScriptServerProject(
onWorkspaceFilesChanged(params.changes);
});

let rootFiles = await getRootFiles(languagePlugins);

return {
askedFiles,
serviceEnv,
Expand All @@ -80,7 +78,7 @@ export async function createTypeScriptServerProject(
getParsedCommandLine: () => parsedCommandLine,
};

async function getRootFiles() {
async function getRootFiles(languagePlugins: LanguagePlugin[]) {
parsedCommandLine = await createParsedCommandLine(
ts,
sys,
Expand Down Expand Up @@ -112,7 +110,7 @@ export async function createTypeScriptServerProject(
const creates = changes.filter(change => change.type === vscode.FileChangeType.Created);

if (creates.length) {
rootFiles = await getRootFiles();
rootFiles = await getRootFiles(languagePlugins);
}

projectVersion++;
Expand Down
2 changes: 0 additions & 2 deletions packages/language-server/lib/types.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import type { Console, FileSystem, LanguageService, ServiceEnvironment } from '@volar/language-service';
import type * as ts from 'typescript/lib/tsserverlibrary';
import type * as vscode from 'vscode-languageserver';

export interface Timer {
Expand All @@ -22,7 +21,6 @@ export interface ServerRuntimeEnvironment {
export interface ProjectContext {
typescript?: {
configFileName: string | undefined;
parsedCommandLine: ts.ParsedCommandLine;
};
}

Expand Down

0 comments on commit c6d6774

Please sign in to comment.