Added support for getOccurrences to the server.
This commit is contained in:
parent
68b38b3e6a
commit
5b6c65ffe0
|
@ -446,6 +446,7 @@ module ts.server {
|
||||||
if (!response.body) {
|
if (!response.body) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
var helpItems: protocol.SignatureHelpItems = response.body;
|
var helpItems: protocol.SignatureHelpItems = response.body;
|
||||||
var span = helpItems.applicableSpan;
|
var span = helpItems.applicableSpan;
|
||||||
var start = this.lineOffsetToPosition(fileName, span.start);
|
var start = this.lineOffsetToPosition(fileName, span.start);
|
||||||
|
@ -465,7 +466,26 @@ module ts.server {
|
||||||
}
|
}
|
||||||
|
|
||||||
getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[] {
|
getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[] {
|
||||||
throw new Error("Not Implemented Yet.");
|
var lineOffset = this.positionToOneBasedLineOffset(fileName, position);
|
||||||
|
var args: protocol.FileLocationRequestArgs = {
|
||||||
|
file: fileName,
|
||||||
|
line: lineOffset.line,
|
||||||
|
offset: lineOffset.offset,
|
||||||
|
};
|
||||||
|
|
||||||
|
var request = this.processRequest<protocol.OccurrencesRequest>(CommandNames.Occurrences, args);
|
||||||
|
var response = this.processResponse<protocol.OccurrencesResponse>(request);
|
||||||
|
|
||||||
|
return response.body.map(entry => {
|
||||||
|
var fileName = entry.file;
|
||||||
|
var start = this.lineOffsetToPosition(fileName, entry.start);
|
||||||
|
var end = this.lineOffsetToPosition(fileName, entry.end);
|
||||||
|
return {
|
||||||
|
fileName,
|
||||||
|
textSpan: ts.createTextSpanFromBounds(start, end),
|
||||||
|
isWriteAccess: entry.isWriteAccess,
|
||||||
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getOutliningSpans(fileName: string): OutliningSpan[] {
|
getOutliningSpans(fileName: string): OutliningSpan[] {
|
||||||
|
|
19
src/server/protocol.d.ts
vendored
19
src/server/protocol.d.ts
vendored
|
@ -165,6 +165,25 @@ declare module ts.server.protocol {
|
||||||
body?: FileSpan[];
|
body?: FileSpan[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get occurrences request; value of command field is
|
||||||
|
* "occurrences". Return response giving spans that are relevant
|
||||||
|
* in the file at a given line and column.
|
||||||
|
*/
|
||||||
|
export interface OccurrencesRequest extends FileLocationRequest {
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface OccurrencesResponseItem extends FileSpan {
|
||||||
|
/**
|
||||||
|
* True if the occurrence is a write location, false otherwise.
|
||||||
|
*/
|
||||||
|
isWriteAccess: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface OccurrencesResponse extends Response {
|
||||||
|
body?: OccurrencesResponseItem[];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find references request; value of command field is
|
* Find references request; value of command field is
|
||||||
* "references". Return response giving the file locations that
|
* "references". Return response giving the file locations that
|
||||||
|
|
|
@ -89,6 +89,7 @@ module ts.server {
|
||||||
export var Geterr = "geterr";
|
export var Geterr = "geterr";
|
||||||
export var NavBar = "navbar";
|
export var NavBar = "navbar";
|
||||||
export var Navto = "navto";
|
export var Navto = "navto";
|
||||||
|
export var Occurrences = "occurrences";
|
||||||
export var Open = "open";
|
export var Open = "open";
|
||||||
export var Quickinfo = "quickinfo";
|
export var Quickinfo = "quickinfo";
|
||||||
export var References = "references";
|
export var References = "references";
|
||||||
|
|
Loading…
Reference in a new issue