mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-23 00:22:56 +01:00
Adopt LibFiles in ReferenceAdapter
This commit is contained in:
parent
6a18fe6517
commit
ea9ddb0a8c
2 changed files with 16 additions and 2 deletions
|
|
@ -600,6 +600,13 @@ export class DefinitionAdapter extends Adapter {
|
||||||
|
|
||||||
export class ReferenceAdapter extends Adapter implements monaco.languages.ReferenceProvider {
|
export class ReferenceAdapter extends Adapter implements monaco.languages.ReferenceProvider {
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private readonly _libFiles: LibFiles,
|
||||||
|
worker: (...uris: Uri[]) => Promise<TypeScriptWorker>
|
||||||
|
) {
|
||||||
|
super(worker);
|
||||||
|
}
|
||||||
|
|
||||||
public async provideReferences(model: monaco.editor.ITextModel, position: Position, context: monaco.languages.ReferenceContext, token: CancellationToken): Promise<monaco.languages.Location[] | undefined> {
|
public async provideReferences(model: monaco.editor.ITextModel, position: Position, context: monaco.languages.ReferenceContext, token: CancellationToken): Promise<monaco.languages.Location[] | undefined> {
|
||||||
const resource = model.uri;
|
const resource = model.uri;
|
||||||
const offset = model.getOffsetAt(position);
|
const offset = model.getOffsetAt(position);
|
||||||
|
|
@ -610,10 +617,17 @@ export class ReferenceAdapter extends Adapter implements monaco.languages.Refere
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fetch lib files if necessary
|
||||||
|
await this._libFiles.fetchLibFilesIfNecessary(entries.map(entry => Uri.parse(entry.fileName)));
|
||||||
|
|
||||||
|
if (model.isDisposed()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const result: monaco.languages.Location[] = [];
|
const result: monaco.languages.Location[] = [];
|
||||||
for (let entry of entries) {
|
for (let entry of entries) {
|
||||||
const uri = Uri.parse(entry.fileName);
|
const uri = Uri.parse(entry.fileName);
|
||||||
const refModel = getOrCreateLibFile(uri);
|
const refModel = this._libFiles.getOrCreateModel(uri);
|
||||||
if (refModel) {
|
if (refModel) {
|
||||||
result.push({
|
result.push({
|
||||||
uri: uri,
|
uri: uri,
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ function setupMode(defaults: LanguageServiceDefaultsImpl, modeId: string): (...u
|
||||||
monaco.languages.registerHoverProvider(modeId, new languageFeatures.QuickInfoAdapter(worker));
|
monaco.languages.registerHoverProvider(modeId, new languageFeatures.QuickInfoAdapter(worker));
|
||||||
monaco.languages.registerDocumentHighlightProvider(modeId, new languageFeatures.OccurrencesAdapter(worker));
|
monaco.languages.registerDocumentHighlightProvider(modeId, new languageFeatures.OccurrencesAdapter(worker));
|
||||||
monaco.languages.registerDefinitionProvider(modeId, new languageFeatures.DefinitionAdapter(libFiles, worker));
|
monaco.languages.registerDefinitionProvider(modeId, new languageFeatures.DefinitionAdapter(libFiles, worker));
|
||||||
monaco.languages.registerReferenceProvider(modeId, new languageFeatures.ReferenceAdapter(worker));
|
monaco.languages.registerReferenceProvider(modeId, new languageFeatures.ReferenceAdapter(libFiles, worker));
|
||||||
monaco.languages.registerDocumentSymbolProvider(modeId, new languageFeatures.OutlineAdapter(worker));
|
monaco.languages.registerDocumentSymbolProvider(modeId, new languageFeatures.OutlineAdapter(worker));
|
||||||
monaco.languages.registerDocumentRangeFormattingEditProvider(modeId, new languageFeatures.FormatAdapter(worker));
|
monaco.languages.registerDocumentRangeFormattingEditProvider(modeId, new languageFeatures.FormatAdapter(worker));
|
||||||
monaco.languages.registerOnTypeFormattingEditProvider(modeId, new languageFeatures.FormatOnTypeAdapter(worker));
|
monaco.languages.registerOnTypeFormattingEditProvider(modeId, new languageFeatures.FormatOnTypeAdapter(worker));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue