Skip to content

Commit 0d7f06c

Browse files
committed
Move LSIF to TS 4.3.0
1 parent 618b518 commit 0d7f06c

17 files changed

+368
-83
lines changed

lib/tsc.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36367,6 +36367,9 @@ var ts;
3636736367
var requireSymbol = createSymbol(4, "require");
3636836368
var apparentArgumentCount;
3636936369
var checker = {
36370+
setSymbolChainCache: function (cache) {
36371+
nodeBuilder.setSymbolChainCache(cache);
36372+
},
3637036373
getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); },
3637136374
getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); },
3637236375
getSymbolCount: function () { return ts.sum(host.getSourceFiles(), "symbolCount") + symbolCount; },
@@ -39625,7 +39628,9 @@ var ts;
3962539628
return !!type.symbol && !!(type.symbol.flags & 32) && (type === getDeclaredTypeOfClassOrInterface(type.symbol) || !!(ts.getObjectFlags(type) & 1073741824));
3962639629
}
3962739630
function createNodeBuilder() {
39631+
var symbolChainCache;
3962839632
return {
39633+
setSymbolChainCache: function (cache) { symbolChainCache = cache; },
3962939634
typeToTypeNode: function (type, enclosingDeclaration, flags, tracker) {
3963039635
return withContext(enclosingDeclaration, flags, tracker, function (context) { return typeToTypeNodeHelper(type, context); });
3963139636
},
@@ -39672,6 +39677,7 @@ var ts;
3967239677
fileExists: function (fileName) { return host.fileExists(fileName); },
3967339678
getFileIncludeReasons: function () { return host.getFileIncludeReasons(); },
3967439679
} : undefined },
39680+
cache: symbolChainCache,
3967539681
encounteredError: false,
3967639682
visitedTypes: undefined,
3967739683
symbolDepth: undefined,
@@ -40544,6 +40550,29 @@ var ts;
4054440550
}
4054540551
return chain;
4054640552
function getSymbolChain(symbol, meaning, endOfChain) {
40553+
var key;
40554+
var result;
40555+
if (context.cache) {
40556+
key = {
40557+
symbol: symbol,
40558+
enclosingDeclaration: context.enclosingDeclaration,
40559+
flags: context.flags,
40560+
meaning: meaning,
40561+
yieldModuleSymbol: yieldModuleSymbol,
40562+
endOfChain: endOfChain
40563+
};
40564+
result = context.cache.lookup(key);
40565+
if (result) {
40566+
return result;
40567+
}
40568+
}
40569+
result = doGetSymbolChain(symbol, meaning, endOfChain);
40570+
if (result && key && context.cache) {
40571+
context.cache.cache(key, result);
40572+
}
40573+
return result;
40574+
}
40575+
function doGetSymbolChain(symbol, meaning, endOfChain) {
4054740576
var accessibleSymbolChain = getAccessibleSymbolChain(symbol, context.enclosingDeclaration, meaning, !!(context.flags & 128));
4054840577
var parentSpecifiers;
4054940578
if (!accessibleSymbolChain ||

lib/tsserver.js

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44650,6 +44650,9 @@ var ts;
4465044650
// extra cost of calling `getParseTreeNode` when calling these functions from inside the
4465144651
// checker.
4465244652
var checker = {
44653+
setSymbolChainCache: function (cache) {
44654+
nodeBuilder.setSymbolChainCache(cache);
44655+
},
4465344656
getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); },
4465444657
getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); },
4465544658
getSymbolCount: function () { return ts.sum(host.getSourceFiles(), "symbolCount") + symbolCount; },
@@ -48372,7 +48375,9 @@ var ts;
4837248375
return !!type.symbol && !!(type.symbol.flags & 32 /* Class */) && (type === getDeclaredTypeOfClassOrInterface(type.symbol) || !!(ts.getObjectFlags(type) & 1073741824 /* IsClassInstanceClone */));
4837348376
}
4837448377
function createNodeBuilder() {
48378+
var symbolChainCache;
4837548379
return {
48380+
setSymbolChainCache: function (cache) { symbolChainCache = cache; },
4837648381
typeToTypeNode: function (type, enclosingDeclaration, flags, tracker) {
4837748382
return withContext(enclosingDeclaration, flags, tracker, function (context) { return typeToTypeNodeHelper(type, context); });
4837848383
},
@@ -48420,6 +48425,7 @@ var ts;
4842048425
fileExists: function (fileName) { return host.fileExists(fileName); },
4842148426
getFileIncludeReasons: function () { return host.getFileIncludeReasons(); },
4842248427
} : undefined },
48428+
cache: symbolChainCache,
4842348429
encounteredError: false,
4842448430
visitedTypes: undefined,
4842548431
symbolDepth: undefined,
@@ -49340,6 +49346,29 @@ var ts;
4934049346
return chain;
4934149347
/** @param endOfChain Set to false for recursive calls; non-recursive calls should always output something. */
4934249348
function getSymbolChain(symbol, meaning, endOfChain) {
49349+
var key;
49350+
var result;
49351+
if (context.cache) {
49352+
key = {
49353+
symbol: symbol,
49354+
enclosingDeclaration: context.enclosingDeclaration,
49355+
flags: context.flags,
49356+
meaning: meaning,
49357+
yieldModuleSymbol: yieldModuleSymbol,
49358+
endOfChain: endOfChain
49359+
};
49360+
result = context.cache.lookup(key);
49361+
if (result) {
49362+
return result;
49363+
}
49364+
}
49365+
result = doGetSymbolChain(symbol, meaning, endOfChain);
49366+
if (result && key && context.cache) {
49367+
context.cache.cache(key, result);
49368+
}
49369+
return result;
49370+
}
49371+
function doGetSymbolChain(symbol, meaning, endOfChain) {
4934349372
var accessibleSymbolChain = getAccessibleSymbolChain(symbol, context.enclosingDeclaration, meaning, !!(context.flags & 128 /* UseOnlyExternalAliasing */));
4934449373
var parentSpecifiers;
4934549374
if (!accessibleSymbolChain ||
@@ -152926,10 +152955,11 @@ var ts;
152926152955
synchronizeHostData();
152927152956
return ts.Completions.getCompletionEntrySymbol(program, log, getValidSourceFile(fileName), position, { name: name, source: source }, host, preferences);
152928152957
}
152929-
function getQuickInfoAtPosition(fileName, position) {
152958+
function getQuickInfoAtPosition(arg0, arg1) {
152930152959
synchronizeHostData();
152931-
var sourceFile = getValidSourceFile(fileName);
152932-
var node = ts.getTouchingPropertyName(sourceFile, position);
152960+
var sourceFile = typeof arg0 === 'string' ? getValidSourceFile(arg0) : (arg1 !== undefined) ? arg1 : arg0.getSourceFile();
152961+
var node = typeof arg0 === 'string' ? ts.getTouchingPropertyName(sourceFile, arg1) : arg0;
152962+
var position = typeof arg1 === 'number' ? arg1 : node.getStart(sourceFile, false);
152933152963
if (node === sourceFile) {
152934152964
// Avoid giving quickInfo for the sourceFile as a whole.
152935152965
return undefined;
@@ -153178,9 +153208,9 @@ var ts;
153178153208
// doesn't use compiler - no need to synchronize with host
153179153209
return ts.getEncodedSyntacticClassifications(cancellationToken, syntaxTreeCache.getCurrentSourceFile(fileName), span);
153180153210
}
153181-
function getOutliningSpans(fileName) {
153211+
function getOutliningSpans(arg0) {
153182153212
// doesn't use compiler - no need to synchronize with host
153183-
var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);
153213+
var sourceFile = typeof arg0 === 'string' ? syntaxTreeCache.getCurrentSourceFile(arg0) : arg0;
153184153214
return ts.OutliningElementsCollector.collectElements(sourceFile, cancellationToken);
153185153215
}
153186153216
var braceMatching = new ts.Map(ts.getEntries((_a = {},
@@ -154925,14 +154955,11 @@ var ts;
154925154955
return _this.realizeDiagnostics(diagnostics);
154926154956
});
154927154957
};
154928-
/// QUICKINFO
154929-
/**
154930-
* Computes a string representation of the type at the requested position
154931-
* in the active file.
154932-
*/
154933-
LanguageServiceShimObject.prototype.getQuickInfoAtPosition = function (fileName, position) {
154958+
LanguageServiceShimObject.prototype.getQuickInfoAtPosition = function (arg0, arg1) {
154934154959
var _this = this;
154935-
return this.forwardJSONCall("getQuickInfoAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getQuickInfoAtPosition(fileName, position); });
154960+
var fileName = typeof arg0 === "string" ? arg0 : arg1 !== undefined ? arg1.fileName : arg0.getSourceFile().fileName;
154961+
var position = typeof arg0 === "string" ? arg1 : arg0.getStart(arg1);
154962+
return this.forwardJSONCall("getQuickInfoAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getQuickInfoAtPosition(arg0, arg1); });
154936154963
};
154937154964
/// NAMEORDOTTEDNAMESPAN
154938154965
/**
@@ -155107,9 +155134,10 @@ var ts;
155107155134
var _this = this;
155108155135
return this.forwardJSONCall("getNavigationTree('" + fileName + "')", function () { return _this.languageService.getNavigationTree(fileName); });
155109155136
};
155110-
LanguageServiceShimObject.prototype.getOutliningSpans = function (fileName) {
155137+
LanguageServiceShimObject.prototype.getOutliningSpans = function (arg0) {
155111155138
var _this = this;
155112-
return this.forwardJSONCall("getOutliningSpans('" + fileName + "')", function () { return _this.languageService.getOutliningSpans(fileName); });
155139+
var fileName = typeof arg0 === "string" ? arg0 : arg0.fileName;
155140+
return this.forwardJSONCall("getOutliningSpans('" + fileName + "')", function () { return _this.languageService.getOutliningSpans(arg0); });
155113155141
};
155114155142
LanguageServiceShimObject.prototype.getTodoComments = function (fileName, descriptors) {
155115155143
var _this = this;

lib/tsserverlibrary.d.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2163,7 +2163,20 @@ declare namespace ts {
21632163
diagnostics: readonly Diagnostic[];
21642164
emittedFiles?: string[];
21652165
}
2166+
export interface SymbolChainCacheKey {
2167+
symbol: Symbol;
2168+
enclosingDeclaration?: Node;
2169+
flags: NodeBuilderFlags;
2170+
meaning: SymbolFlags;
2171+
yieldModuleSymbol?: boolean;
2172+
endOfChain: boolean;
2173+
}
2174+
export interface SymbolChainCache {
2175+
lookup(key: SymbolChainCacheKey): Symbol[] | undefined;
2176+
cache(key: SymbolChainCacheKey, value: Symbol[]): void;
2177+
}
21662178
export interface TypeChecker {
2179+
setSymbolChainCache(cache: SymbolChainCache | undefined): void;
21672180
getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type;
21682181
getDeclaredTypeOfSymbol(symbol: Symbol): Type;
21692182
getPropertiesOfType(type: Type): Symbol[];
@@ -5599,6 +5612,7 @@ declare namespace ts {
55995612
* @param position A zero-based index of the character where you want the quick info
56005613
*/
56015614
getQuickInfoAtPosition(fileName: string, position: number): QuickInfo | undefined;
5615+
getQuickInfoAtPosition(node: ts.Node, sourceFile?: ts.SourceFile): QuickInfo | undefined;
56025616
getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan | undefined;
56035617
getBreakpointStatementAtPosition(fileName: string, position: number): TextSpan | undefined;
56045618
getSignatureHelpItems(fileName: string, position: number, options: SignatureHelpItemsOptions | undefined): SignatureHelpItems | undefined;
@@ -5622,6 +5636,7 @@ declare namespace ts {
56225636
provideCallHierarchyIncomingCalls(fileName: string, position: number): CallHierarchyIncomingCall[];
56235637
provideCallHierarchyOutgoingCalls(fileName: string, position: number): CallHierarchyOutgoingCall[];
56245638
getOutliningSpans(fileName: string): OutliningSpan[];
5639+
getOutliningSpans(sourceFile: ts.SourceFile): OutliningSpan[];
56255640
getTodoComments(fileName: string, descriptors: TodoCommentDescriptor[]): TodoComment[];
56265641
getBraceMatchingAtPosition(fileName: string, position: number): TextSpan[];
56275642
getIndentationAtPosition(fileName: string, position: number, options: EditorOptions | EditorSettings): number;

lib/tsserverlibrary.js

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44844,6 +44844,9 @@ var ts;
4484444844
// extra cost of calling `getParseTreeNode` when calling these functions from inside the
4484544845
// checker.
4484644846
var checker = {
44847+
setSymbolChainCache: function (cache) {
44848+
nodeBuilder.setSymbolChainCache(cache);
44849+
},
4484744850
getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); },
4484844851
getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); },
4484944852
getSymbolCount: function () { return ts.sum(host.getSourceFiles(), "symbolCount") + symbolCount; },
@@ -48566,7 +48569,9 @@ var ts;
4856648569
return !!type.symbol && !!(type.symbol.flags & 32 /* Class */) && (type === getDeclaredTypeOfClassOrInterface(type.symbol) || !!(ts.getObjectFlags(type) & 1073741824 /* IsClassInstanceClone */));
4856748570
}
4856848571
function createNodeBuilder() {
48572+
var symbolChainCache;
4856948573
return {
48574+
setSymbolChainCache: function (cache) { symbolChainCache = cache; },
4857048575
typeToTypeNode: function (type, enclosingDeclaration, flags, tracker) {
4857148576
return withContext(enclosingDeclaration, flags, tracker, function (context) { return typeToTypeNodeHelper(type, context); });
4857248577
},
@@ -48614,6 +48619,7 @@ var ts;
4861448619
fileExists: function (fileName) { return host.fileExists(fileName); },
4861548620
getFileIncludeReasons: function () { return host.getFileIncludeReasons(); },
4861648621
} : undefined },
48622+
cache: symbolChainCache,
4861748623
encounteredError: false,
4861848624
visitedTypes: undefined,
4861948625
symbolDepth: undefined,
@@ -49534,6 +49540,29 @@ var ts;
4953449540
return chain;
4953549541
/** @param endOfChain Set to false for recursive calls; non-recursive calls should always output something. */
4953649542
function getSymbolChain(symbol, meaning, endOfChain) {
49543+
var key;
49544+
var result;
49545+
if (context.cache) {
49546+
key = {
49547+
symbol: symbol,
49548+
enclosingDeclaration: context.enclosingDeclaration,
49549+
flags: context.flags,
49550+
meaning: meaning,
49551+
yieldModuleSymbol: yieldModuleSymbol,
49552+
endOfChain: endOfChain
49553+
};
49554+
result = context.cache.lookup(key);
49555+
if (result) {
49556+
return result;
49557+
}
49558+
}
49559+
result = doGetSymbolChain(symbol, meaning, endOfChain);
49560+
if (result && key && context.cache) {
49561+
context.cache.cache(key, result);
49562+
}
49563+
return result;
49564+
}
49565+
function doGetSymbolChain(symbol, meaning, endOfChain) {
4953749566
var accessibleSymbolChain = getAccessibleSymbolChain(symbol, context.enclosingDeclaration, meaning, !!(context.flags & 128 /* UseOnlyExternalAliasing */));
4953849567
var parentSpecifiers;
4953949568
if (!accessibleSymbolChain ||
@@ -153495,10 +153524,11 @@ var ts;
153495153524
synchronizeHostData();
153496153525
return ts.Completions.getCompletionEntrySymbol(program, log, getValidSourceFile(fileName), position, { name: name, source: source }, host, preferences);
153497153526
}
153498-
function getQuickInfoAtPosition(fileName, position) {
153527+
function getQuickInfoAtPosition(arg0, arg1) {
153499153528
synchronizeHostData();
153500-
var sourceFile = getValidSourceFile(fileName);
153501-
var node = ts.getTouchingPropertyName(sourceFile, position);
153529+
var sourceFile = typeof arg0 === 'string' ? getValidSourceFile(arg0) : (arg1 !== undefined) ? arg1 : arg0.getSourceFile();
153530+
var node = typeof arg0 === 'string' ? ts.getTouchingPropertyName(sourceFile, arg1) : arg0;
153531+
var position = typeof arg1 === 'number' ? arg1 : node.getStart(sourceFile, false);
153502153532
if (node === sourceFile) {
153503153533
// Avoid giving quickInfo for the sourceFile as a whole.
153504153534
return undefined;
@@ -153747,9 +153777,9 @@ var ts;
153747153777
// doesn't use compiler - no need to synchronize with host
153748153778
return ts.getEncodedSyntacticClassifications(cancellationToken, syntaxTreeCache.getCurrentSourceFile(fileName), span);
153749153779
}
153750-
function getOutliningSpans(fileName) {
153780+
function getOutliningSpans(arg0) {
153751153781
// doesn't use compiler - no need to synchronize with host
153752-
var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);
153782+
var sourceFile = typeof arg0 === 'string' ? syntaxTreeCache.getCurrentSourceFile(arg0) : arg0;
153753153783
return ts.OutliningElementsCollector.collectElements(sourceFile, cancellationToken);
153754153784
}
153755153785
var braceMatching = new ts.Map(ts.getEntries((_a = {},
@@ -155494,14 +155524,11 @@ var ts;
155494155524
return _this.realizeDiagnostics(diagnostics);
155495155525
});
155496155526
};
155497-
/// QUICKINFO
155498-
/**
155499-
* Computes a string representation of the type at the requested position
155500-
* in the active file.
155501-
*/
155502-
LanguageServiceShimObject.prototype.getQuickInfoAtPosition = function (fileName, position) {
155527+
LanguageServiceShimObject.prototype.getQuickInfoAtPosition = function (arg0, arg1) {
155503155528
var _this = this;
155504-
return this.forwardJSONCall("getQuickInfoAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getQuickInfoAtPosition(fileName, position); });
155529+
var fileName = typeof arg0 === "string" ? arg0 : arg1 !== undefined ? arg1.fileName : arg0.getSourceFile().fileName;
155530+
var position = typeof arg0 === "string" ? arg1 : arg0.getStart(arg1);
155531+
return this.forwardJSONCall("getQuickInfoAtPosition('" + fileName + "', " + position + ")", function () { return _this.languageService.getQuickInfoAtPosition(arg0, arg1); });
155505155532
};
155506155533
/// NAMEORDOTTEDNAMESPAN
155507155534
/**
@@ -155676,9 +155703,10 @@ var ts;
155676155703
var _this = this;
155677155704
return this.forwardJSONCall("getNavigationTree('" + fileName + "')", function () { return _this.languageService.getNavigationTree(fileName); });
155678155705
};
155679-
LanguageServiceShimObject.prototype.getOutliningSpans = function (fileName) {
155706+
LanguageServiceShimObject.prototype.getOutliningSpans = function (arg0) {
155680155707
var _this = this;
155681-
return this.forwardJSONCall("getOutliningSpans('" + fileName + "')", function () { return _this.languageService.getOutliningSpans(fileName); });
155708+
var fileName = typeof arg0 === "string" ? arg0 : arg0.fileName;
155709+
return this.forwardJSONCall("getOutliningSpans('" + fileName + "')", function () { return _this.languageService.getOutliningSpans(arg0); });
155682155710
};
155683155711
LanguageServiceShimObject.prototype.getTodoComments = function (fileName, descriptors) {
155684155712
var _this = this;

0 commit comments

Comments
 (0)