Don't register js/ts paste provider if setting is off (#216168)

This commit is contained in:
Matt Bierner
2024-06-17 15:14:59 -07:00
committed by GitHub
parent 3a682a623b
commit 61eba45dc4
2 changed files with 7 additions and 4 deletions

View File

@@ -7,7 +7,7 @@ import * as vscode from 'vscode';
import { DocumentSelector } from '../configuration/documentSelector';
import * as typeConverters from '../typeConverters';
import { ClientCapability, ITypeScriptServiceClient } from '../typescriptService';
import { conditionalRegistration, requireMinVersion, requireSomeCapability } from './util/dependentRegistration';
import { conditionalRegistration, requireGlobalConfiguration, requireMinVersion, requireSomeCapability } from './util/dependentRegistration';
import protocol from '../tsServer/protocol/protocol';
import { API } from '../tsServer/api';
import { LanguageDescription } from '../configuration/languageDescription';
@@ -38,6 +38,8 @@ class CopyMetadata {
}
}
const settingId = 'experimental.updateImportsOnPaste';
class DocumentPasteProvider implements vscode.DocumentPasteEditProvider {
static readonly kind = vscode.DocumentDropOrPasteEditKind.Empty.append('text', 'jsts', 'pasteWithImports');
@@ -61,7 +63,7 @@ class DocumentPasteProvider implements vscode.DocumentPasteEditProvider {
token: vscode.CancellationToken,
): Promise<vscode.DocumentPasteEdit[] | undefined> {
const config = vscode.workspace.getConfiguration(this._modeId, document.uri);
if (!config.get('experimental.updateImportsOnPaste', false)) {
if (!config.get(settingId, false)) {
return;
}
@@ -131,6 +133,7 @@ export function register(selector: DocumentSelector, language: LanguageDescripti
return conditionalRegistration([
requireSomeCapability(client, ClientCapability.Semantic),
requireMinVersion(client, API.v560),
requireGlobalConfiguration(language.id, settingId),
], () => {
return vscode.languages.registerDocumentPasteEditProvider(selector.semantic, new DocumentPasteProvider(language.id, client), {
providedPasteEditKinds: [DocumentPasteProvider.kind],