提交 0a42516d 编写于 作者: J Joao Moreno

Merge branch 'hui/scm-inputbox-placeholder' of...

Merge branch 'hui/scm-inputbox-placeholder' of https://github.com/huizhougit/vscode into huizhougit-hui/scm-inputbox-placeholder
......@@ -470,6 +470,7 @@ export class Repository implements Disposable {
onRelevantGitChange(this._onDidChangeRepository.fire, this._onDidChangeRepository, this.disposables);
this._sourceControl = scm.createSourceControl('git', 'Git', Uri.file(repository.root));
this._sourceControl.inputBox.placeholder = localize('commitMessage', "Message (press {0} to commit)", process.platform === 'darwin' ? 'Cmd+Enter' : 'Ctrl+Enter');
this._sourceControl.acceptInputCommand = { command: 'git.commitWithInput', title: localize('commit', "Commit"), arguments: [this._sourceControl] };
this._sourceControl.quickDiffProvider = this;
this.disposables.push(this._sourceControl);
......
......@@ -5779,6 +5779,11 @@ declare module 'vscode' {
* Setter and getter for the contents of the input box.
*/
value: string;
/**
* A string to show as place holder in the input box to guide the user.
*/
placeholder: string;
}
interface QuickDiffProvider {
......
......@@ -368,4 +368,14 @@ export class MainThreadSCM implements MainThreadSCMShape {
repository.input.value = value;
}
$setInputBoxPlaceholder(sourceControlHandle: number, placeholder: string): void {
const repository = this._repositories[sourceControlHandle];
if (!repository) {
return;
}
repository.input.placeholder = placeholder;
}
}
......@@ -404,6 +404,7 @@ export interface MainThreadSCMShape extends IDisposable {
$spliceResourceStates(sourceControlHandle: number, splices: SCMRawResourceSplices[]): void;
$setInputBoxValue(sourceControlHandle: number, value: string): void;
$setInputBoxPlaceholder(sourceControlHandle: number, placeholder: string): void;
}
export type DebugSessionUUID = string;
......
......@@ -127,6 +127,17 @@ export class ExtHostSCMInputBox {
return this._onDidChange.event;
}
private _placeholder: string = '';
get placeholder(): string {
return this._placeholder;
}
set placeholder(placeholder: string) {
this._proxy.$setInputBoxPlaceholder(this._sourceControlHandle, placeholder);
this._placeholder = placeholder;
}
constructor(private _proxy: MainThreadSCMShape, private _sourceControlHandle: number) {
// noop
}
......
......@@ -47,7 +47,6 @@ import { IStorageService } from 'vs/platform/storage/common/storage';
import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet';
import { IExtensionsViewlet, VIEWLET_ID as EXTENSIONS_VIEWLET_ID } from 'vs/workbench/parts/extensions/common/extensions';
import { InputBox } from 'vs/base/browser/ui/inputbox/inputBox';
import * as platform from 'vs/base/common/platform';
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
import { KeyMod, KeyCode } from 'vs/base/common/keyCodes';
import { Command } from 'vs/editor/common/modes';
......@@ -567,15 +566,16 @@ export class RepositoryPanel extends ViewletPanel {
this.inputBoxContainer = append(container, $('.scm-editor'));
this.inputBox = new InputBox(this.inputBoxContainer, this.contextViewService, {
placeholder: localize('commitMessage', "Message (press {0} to commit)", platform.isMacintosh ? 'Cmd+Enter' : 'Ctrl+Enter'),
flexibleHeight: true
});
this.disposables.push(attachInputBoxStyler(this.inputBox, this.themeService));
this.disposables.push(this.inputBox);
this.inputBox.value = this.repository.input.value;
this.inputBox.setPlaceHolder(this.repository.input.placeholder);
this.inputBox.onDidChange(value => this.repository.input.value = value, null, this.disposables);
this.repository.input.onDidChange(value => this.inputBox.value = value, null, this.disposables);
this.repository.input.onDidChangePlaceholder(placeholder => this.inputBox.setPlaceHolder(placeholder), null, this.disposables);
this.disposables.push(this.inputBox.onDidHeightChange(() => this.layoutBody()));
chain(domEvent(this.inputBox.inputElement, 'keydown'))
......
......@@ -79,6 +79,8 @@ export interface ISCMProvider extends IDisposable {
export interface ISCMInput {
value: string;
readonly onDidChange: Event<string>;
placeholder: string;
readonly onDidChangePlaceholder: Event<string>;
}
export interface ISCMRepository extends IDisposable {
......
......@@ -24,6 +24,20 @@ class SCMInput implements ISCMInput {
private _onDidChange = new Emitter<string>();
get onDidChange(): Event<string> { return this._onDidChange.event; }
private _placeholder = '';
get placeholder(): string {
return this._placeholder;
}
set placeholder(placeholder: string) {
this._placeholder = placeholder;
this._onDidChangePlaceholder.fire(placeholder);
}
private _onDidChangePlaceholder = new Emitter<string>();
get onDidChangePlaceholder(): Event<string> { return this._onDidChangePlaceholder.event; }
}
class SCMRepository implements ISCMRepository {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册