diff --git a/src/server/client.ts b/src/server/client.ts index aa1ddb34bf7..3295ec76193 100644 --- a/src/server/client.ts +++ b/src/server/client.ts @@ -301,7 +301,7 @@ module ts.server { return { fileName: entry.file, textSpan: ts.createTextSpanFromBounds(start, end), - isWriteAccess: false, + isWriteAccess: entry.isWriteAccess, }; }); } diff --git a/src/server/protocol.ts b/src/server/protocol.ts index 1efc79c5c40..3e28806b696 100644 --- a/src/server/protocol.ts +++ b/src/server/protocol.ts @@ -409,6 +409,7 @@ module ts.server { start: start, lineText: lineText, end: compilerService.host.positionToLineCol(ref.fileName, ts.textSpanEnd(ref.textSpan)), + isWriteAccess: ref.isWriteAccess }; }).sort(compareFileStart); return { diff --git a/src/server/protodef.d.ts b/src/server/protodef.d.ts index 95e671f561e..b68616a13ec 100644 --- a/src/server/protodef.d.ts +++ b/src/server/protodef.d.ts @@ -127,6 +127,9 @@ declare module ServerProtocol { loaded the referencing files). */ lineText: string; + + /** True if reference is a write location, false otherwise. */ + isWriteAccess: boolean; } /** The body of a "references" response message. */ diff --git a/tests/cases/fourslash/server/references.ts b/tests/cases/fourslash/server/references.ts new file mode 100644 index 00000000000..55b21615551 --- /dev/null +++ b/tests/cases/fourslash/server/references.ts @@ -0,0 +1,18 @@ +/// + +// Global class reference. + +// @Filename: referencesForGlobals_1.ts +////class /*2*/globalClass { +//// public f() { } +////} + +// @Filename: referencesForGlobals_2.ts +/////// +////var c = /*1*/globalClass(); + +goTo.marker("1"); +verify.referencesCountIs(2); + +goTo.marker("2"); +verify.referencesCountIs(2); \ No newline at end of file