mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-03 15:01:57 +01:00
Remove boilerplate around VersionDependentRegistrationDelegate
This commit is contained in:
@@ -76,14 +76,9 @@ export function register(
|
||||
selector: vscode.DocumentSelector,
|
||||
client: ITypeScriptServiceClient,
|
||||
) {
|
||||
return new VersionDependentRegistration(client, {
|
||||
isSupportedVersion(api) {
|
||||
return api.gte(API.v230);
|
||||
},
|
||||
register() {
|
||||
return vscode.languages.registerCompletionItemProvider(selector,
|
||||
new DirectiveCommentCompletionProvider(client),
|
||||
'@');
|
||||
}
|
||||
return new VersionDependentRegistration(client, API.v230, () => {
|
||||
return vscode.languages.registerCompletionItemProvider(selector,
|
||||
new DirectiveCommentCompletionProvider(client),
|
||||
'@');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -75,12 +75,8 @@ export function register(
|
||||
selector: vscode.DocumentSelector,
|
||||
client: ITypeScriptServiceClient,
|
||||
): vscode.Disposable {
|
||||
return new VersionDependentRegistration(client, {
|
||||
isSupportedVersion(api) {
|
||||
return api.gte(API.v280);
|
||||
},
|
||||
register() {
|
||||
return vscode.languages.registerFoldingRangeProvider(selector, new TypeScriptFoldingProvider(client));
|
||||
}
|
||||
return new VersionDependentRegistration(client, API.v280, () => {
|
||||
return vscode.languages.registerFoldingRangeProvider(selector,
|
||||
new TypeScriptFoldingProvider(client));
|
||||
});
|
||||
}
|
||||
@@ -19,13 +19,8 @@ export function register(
|
||||
selector: vscode.DocumentSelector,
|
||||
client: ITypeScriptServiceClient,
|
||||
) {
|
||||
return new VersionDependentRegistration(client, {
|
||||
isSupportedVersion(api: API) {
|
||||
return api.gte(API.v220);
|
||||
},
|
||||
register() {
|
||||
return vscode.languages.registerImplementationProvider(selector,
|
||||
new TypeScriptImplementationProvider(client));
|
||||
}
|
||||
return new VersionDependentRegistration(client, API.v220, () => {
|
||||
return vscode.languages.registerImplementationProvider(selector,
|
||||
new TypeScriptImplementationProvider(client));
|
||||
});
|
||||
}
|
||||
@@ -110,16 +110,11 @@ export function register(
|
||||
client: ITypeScriptServiceClient,
|
||||
cachedResponse: CachedNavTreeResponse,
|
||||
) {
|
||||
return new VersionDependentRegistration(client, {
|
||||
isSupportedVersion(api) {
|
||||
return api.gte(API.v220);
|
||||
},
|
||||
register() {
|
||||
const provider = new TypeScriptImplementationsCodeLensProvider(client, modeId, cachedResponse);
|
||||
return vscode.Disposable.from(
|
||||
vscode.languages.registerCodeLensProvider(selector, provider),
|
||||
provider,
|
||||
);
|
||||
}
|
||||
return new VersionDependentRegistration(client, API.v220, () => {
|
||||
const provider = new TypeScriptImplementationsCodeLensProvider(client, modeId, cachedResponse);
|
||||
return vscode.Disposable.from(
|
||||
vscode.languages.registerCodeLensProvider(selector, provider),
|
||||
provider,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -84,15 +84,10 @@ export function register(
|
||||
commandManager: CommandManager,
|
||||
fileConfigurationManager: FileConfigurationManager
|
||||
) {
|
||||
return new VersionDependentRegistration(client, {
|
||||
isSupportedVersion(api) {
|
||||
return api.gte(API.v280);
|
||||
},
|
||||
register() {
|
||||
const organizeImportsProvider = new OrganizeImportsCodeActionProvider(client, commandManager, fileConfigurationManager);
|
||||
return vscode.languages.registerCodeActionsProvider(selector,
|
||||
organizeImportsProvider,
|
||||
organizeImportsProvider.metadata);
|
||||
}
|
||||
return new VersionDependentRegistration(client, API.v280, () => {
|
||||
const organizeImportsProvider = new OrganizeImportsCodeActionProvider(client, commandManager, fileConfigurationManager);
|
||||
return vscode.languages.registerCodeActionsProvider(selector,
|
||||
organizeImportsProvider,
|
||||
organizeImportsProvider.metadata);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -210,14 +210,9 @@ export function register(
|
||||
formattingOptionsManager: FormattingOptionsManager,
|
||||
commandManager: CommandManager,
|
||||
) {
|
||||
return new VersionDependentRegistration(client, {
|
||||
isSupportedVersion(api) {
|
||||
return api.gte(API.v240);
|
||||
},
|
||||
register() {
|
||||
return vscode.languages.registerCodeActionsProvider(selector,
|
||||
new TypeScriptRefactorProvider(client, formattingOptionsManager, commandManager),
|
||||
TypeScriptRefactorProvider.metadata);
|
||||
}
|
||||
return new VersionDependentRegistration(client, API.v240, () => {
|
||||
return vscode.languages.registerCodeActionsProvider(selector,
|
||||
new TypeScriptRefactorProvider(client, formattingOptionsManager, commandManager),
|
||||
TypeScriptRefactorProvider.metadata);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -119,16 +119,11 @@ export function register(
|
||||
client: ITypeScriptServiceClient,
|
||||
cachedResponse: CachedNavTreeResponse,
|
||||
) {
|
||||
return new VersionDependentRegistration(client, {
|
||||
isSupportedVersion(api) {
|
||||
return api.gte(API.v206);
|
||||
},
|
||||
register() {
|
||||
const referenceCodeLensProvider = new TypeScriptReferencesCodeLensProvider(client, modeId, cachedResponse);
|
||||
return vscode.Disposable.from(
|
||||
vscode.languages.registerCodeLensProvider(selector, referenceCodeLensProvider),
|
||||
referenceCodeLensProvider,
|
||||
);
|
||||
}
|
||||
return new VersionDependentRegistration(client, API.v206, () => {
|
||||
const referenceCodeLensProvider = new TypeScriptReferencesCodeLensProvider(client, modeId, cachedResponse);
|
||||
return vscode.Disposable.from(
|
||||
vscode.languages.registerCodeLensProvider(selector, referenceCodeLensProvider),
|
||||
referenceCodeLensProvider,
|
||||
);
|
||||
});
|
||||
}
|
||||
@@ -19,13 +19,8 @@ export function register(
|
||||
selector: vscode.DocumentSelector,
|
||||
client: ITypeScriptServiceClient,
|
||||
) {
|
||||
return new VersionDependentRegistration(client, {
|
||||
isSupportedVersion(api: API) {
|
||||
return api.gte(API.v213);
|
||||
},
|
||||
register() {
|
||||
return vscode.languages.registerTypeDefinitionProvider(selector,
|
||||
new TypeScriptTypeDefinitionProvider(client));
|
||||
}
|
||||
return new VersionDependentRegistration(client, API.v213, () => {
|
||||
return vscode.languages.registerTypeDefinitionProvider(selector,
|
||||
new TypeScriptTypeDefinitionProvider(client));
|
||||
});
|
||||
}
|
||||
@@ -48,9 +48,10 @@ export class VersionDependentRegistration {
|
||||
|
||||
constructor(
|
||||
private readonly client: ITypeScriptServiceClient,
|
||||
private readonly delegate: VersionDependentRegistrationDelegate,
|
||||
private readonly minVersion: API,
|
||||
register: () => vscode.Disposable,
|
||||
) {
|
||||
this._registration = new ConditionalRegistration(this.delegate.register);
|
||||
this._registration = new ConditionalRegistration(register);
|
||||
|
||||
this.update(client.apiVersion);
|
||||
|
||||
@@ -65,6 +66,6 @@ export class VersionDependentRegistration {
|
||||
}
|
||||
|
||||
private update(api: API) {
|
||||
this._registration.update(this.delegate.isSupportedVersion(api));
|
||||
this._registration.update(api.gte(this.minVersion));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user