SCM - Add proposal for inputBox action button (#196121)

* SCM - Add proposal for inputBox action button

* More reliable fix for overlapping
This commit is contained in:
Ladislau Szomoru
2023-10-21 09:51:24 +02:00
committed by GitHub
parent 0e925d6700
commit c05b49710b
17 changed files with 427 additions and 32 deletions

View File

@@ -5,7 +5,7 @@
import { Model } from '../model';
import { Repository as BaseRepository, Resource } from '../repository';
import { InputBox, Git, API, Repository, Remote, RepositoryState, Branch, ForcePushMode, Ref, Submodule, Commit, Change, RepositoryUIState, Status, LogOptions, APIState, CommitOptions, RefType, CredentialsProvider, BranchQuery, PushErrorHandler, PublishEvent, FetchOptions, RemoteSourceProvider, RemoteSourcePublisher, PostCommitCommandsProvider, RefQuery, BranchProtectionProvider, InitOptions } from './git';
import { InputBox, Git, API, Repository, Remote, RepositoryState, Branch, ForcePushMode, Ref, Submodule, Commit, Change, RepositoryUIState, Status, LogOptions, APIState, CommitOptions, RefType, CredentialsProvider, BranchQuery, PushErrorHandler, PublishEvent, FetchOptions, RemoteSourceProvider, RemoteSourcePublisher, PostCommitCommandsProvider, RefQuery, BranchProtectionProvider, InitOptions, CommitMessageProvider } from './git';
import { Event, SourceControlInputBox, Uri, SourceControl, Disposable, commands, CancellationToken } from 'vscode';
import { combinedDisposable, mapEvent } from '../util';
import { toGitUri } from '../uri';
@@ -341,6 +341,10 @@ export class ApiImpl implements API {
return this._model.registerBranchProtectionProvider(root, provider);
}
registerCommitMessageProvider(provider: CommitMessageProvider): Disposable {
return this._model.registerCommitMessageProvider(provider);
}
constructor(private _model: Model) { }
}

View File

@@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { Uri, Event, Disposable, ProviderResult, Command, CancellationToken } from 'vscode';
import { Uri, Event, Disposable, ProviderResult, Command, CancellationToken, ThemeIcon } from 'vscode';
export { ProviderResult } from 'vscode';
export interface Git {
@@ -300,6 +300,12 @@ export interface BranchProtectionProvider {
provideBranchProtection(): BranchProtection[];
}
export interface CommitMessageProvider {
readonly title: string;
readonly icon?: Uri | { light: Uri, dark: Uri } | ThemeIcon;
provideCommitMessage(changes: string[], cancellationToken?: CancellationToken): Promise<string | undefined>;
}
export type APIState = 'uninitialized' | 'initialized';
export interface PublishEvent {
@@ -327,6 +333,7 @@ export interface API {
registerPostCommitCommandsProvider(provider: PostCommitCommandsProvider): Disposable;
registerPushErrorHandler(handler: PushErrorHandler): Disposable;
registerBranchProtectionProvider(root: Uri, provider: BranchProtectionProvider): Disposable;
registerCommitMessageProvider(provider: CommitMessageProvider): Disposable;
}
export interface GitExtension {