mirror of
https://github.com/microsoft/vscode.git
synced 2026-08-14 17:54:53 +01:00
use LanguageFeaturesService to support MappedEditsProviders instead of creating a new MappedEditsService
This commit is contained in:
@@ -931,6 +931,13 @@ export class MainThreadLanguageFeatures extends Disposable implements MainThread
|
||||
}
|
||||
return provider.resolveDocumentOnDropFileData(requestId, dataId);
|
||||
}
|
||||
|
||||
// --- mapped edits
|
||||
|
||||
$registerMappedEditsProvider(handle: number, selector: IDocumentFilterDto[]): void {
|
||||
const provider = new MainThreadMappedEditsProvider(handle, this._proxy, this._uriIdentService);
|
||||
this._registrations.set(handle, this._languageFeaturesService.mappedEditsProvider.register(selector, provider));
|
||||
}
|
||||
}
|
||||
|
||||
class MainThreadPasteEditProvider implements languages.DocumentPasteEditProvider {
|
||||
@@ -1124,3 +1131,17 @@ export class MainThreadDocumentRangeSemanticTokensProvider implements languages.
|
||||
throw new Error(`Unexpected`);
|
||||
}
|
||||
}
|
||||
|
||||
export class MainThreadMappedEditsProvider implements languages.MappedEditsProvider {
|
||||
|
||||
constructor(
|
||||
private readonly _handle: number,
|
||||
private readonly _proxy: ExtHostLanguageFeaturesShape,
|
||||
private readonly _uriService: IUriIdentityService,
|
||||
) { }
|
||||
|
||||
async provideMappedEdits(document: ITextModel, codeBlocks: string[], context: languages.MappedEditsContext, token: CancellationToken): Promise<languages.WorkspaceEdit | null> {
|
||||
const res = await this._proxy.$provideMappedEdits(this._handle, document.uri, codeBlocks, context, token);
|
||||
return res ? reviveWorkspaceEditDto(res, this._uriService) : null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user