diff --git a/src/server/client.ts b/src/server/client.ts index 2cfd911b7b5..f1c5e424d47 100644 --- a/src/server/client.ts +++ b/src/server/client.ts @@ -175,7 +175,7 @@ module ts.server { getProjectInfo(fileName: string, needFileNameList: boolean): protocol.ProjectInfo { var args: protocol.ProjectInfoRequestArgs = { file: fileName, - needFileNameList: !!needFileNameList + needFileNameList: needFileNameList }; var request = this.processRequest(CommandNames.ProjectInfo, args); diff --git a/src/server/protocol.d.ts b/src/server/protocol.d.ts index 41e25661112..ef9ad7984f6 100644 --- a/src/server/protocol.d.ts +++ b/src/server/protocol.d.ts @@ -88,7 +88,7 @@ declare module ts.server.protocol { } /** - * Arguments for ProjectInfoResponse messages. + * Arguments for ProjectInfoRequest request. */ export interface ProjectInfoRequestArgs extends FileRequestArgs { /** @@ -97,18 +97,31 @@ declare module ts.server.protocol { needFileNameList: boolean; } + /** + * A request to get the project information of the current file + */ export interface ProjectInfoRequest extends Request { arguments: ProjectInfoRequestArgs } /** - * Response message for "projectInfo" request + * Response message body for "projectInfo" request */ export interface ProjectInfo { + /** + * For configured project, this is the normalized path of the 'tsconfig.json' file + * For inferred project, this is undefined + */ configFileName: string; + /** + * The list of normalized file name in the project, including 'lib.d.ts' + */ fileNameList?: string[]; } + /** + * Response message for "projectInfo" request + */ export interface ProjectInfoResponse extends Response { body?: ProjectInfo; } diff --git a/tests/cases/fourslash/server/projectInfo.ts b/tests/cases/fourslash/server/projectInfo.ts index d08c7dd85f1..656647715f0 100644 --- a/tests/cases/fourslash/server/projectInfo.ts +++ b/tests/cases/fourslash/server/projectInfo.ts @@ -1,10 +1,24 @@ /// // @Filename: a.ts -//// import test from "b" +////export var test = "test String" // @Filename: b.ts -//// export var test = "test String" +////import test from "a" + +// @Filename: c.ts +/////// +/////// + +// @Filename: d.ts +////console.log("nothing"); goTo.file("a.ts") -verify.ProjectInfo(["lib.d.ts", "b.ts", "a.ts"]) +verify.ProjectInfo(["lib.d.ts", "a.ts"]) +goTo.file("b.ts") +verify.ProjectInfo(["lib.d.ts", "a.ts", "b.ts"]) +goTo.file("c.ts") +verify.ProjectInfo(["lib.d.ts", "a.ts", "b.ts", "c.ts"]) +goTo.file("d.ts") +verify.ProjectInfo(["lib.d.ts", "d.ts"]) +