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