未验证 提交 140c7116 编写于 作者: J Joao Moreno

repo pane: input placeholder

上级 20ccfb07
...@@ -177,6 +177,18 @@ ...@@ -177,6 +177,18 @@
padding: 1px; padding: 1px;
} }
.scm-viewlet .scm-editor-placeholder {
position: absolute;
pointer-events: none;
z-index: 1;
margin: 1px;
padding: 3px 4px;
}
.scm-viewlet .scm-editor-placeholder.hidden {
display: none;
}
.scm-viewlet .scm-editor.scroll > .monaco-inputbox > .wrapper > textarea.input { .scm-viewlet .scm-editor.scroll > .monaco-inputbox > .wrapper > textarea.input {
overflow-y: scroll; overflow-y: scroll;
} }
......
...@@ -24,7 +24,7 @@ import { IAction, IActionViewItem, ActionRunner, Action } from 'vs/base/common/a ...@@ -24,7 +24,7 @@ import { IAction, IActionViewItem, ActionRunner, Action } from 'vs/base/common/a
import { ContextAwareMenuEntryActionViewItem } from 'vs/platform/actions/browser/menuEntryActionViewItem'; import { ContextAwareMenuEntryActionViewItem } from 'vs/platform/actions/browser/menuEntryActionViewItem';
import { SCMMenus } from './menus'; import { SCMMenus } from './menus';
import { ActionBar, IActionViewItemProvider } from 'vs/base/browser/ui/actionbar/actionbar'; import { ActionBar, IActionViewItemProvider } from 'vs/base/browser/ui/actionbar/actionbar';
import { IThemeService, LIGHT } from 'vs/platform/theme/common/themeService'; import { IThemeService, LIGHT, registerThemingParticipant } from 'vs/platform/theme/common/themeService';
import { isSCMResource, isSCMResourceGroup, connectPrimaryMenuToInlineActionBar } from './util'; import { isSCMResource, isSCMResourceGroup, connectPrimaryMenuToInlineActionBar } from './util';
import { attachBadgeStyler } from 'vs/platform/theme/common/styler'; import { attachBadgeStyler } from 'vs/platform/theme/common/styler';
import { WorkbenchCompressibleObjectTree } from 'vs/platform/list/browser/listService'; import { WorkbenchCompressibleObjectTree } from 'vs/platform/list/browser/listService';
...@@ -60,6 +60,9 @@ import { MenuPreventer } from 'vs/workbench/contrib/codeEditor/browser/menuPreve ...@@ -60,6 +60,9 @@ import { MenuPreventer } from 'vs/workbench/contrib/codeEditor/browser/menuPreve
import { SelectionClipboardContributionID } from 'vs/workbench/contrib/codeEditor/browser/selectionClipboard'; import { SelectionClipboardContributionID } from 'vs/workbench/contrib/codeEditor/browser/selectionClipboard';
import { ContextMenuController } from 'vs/editor/contrib/contextmenu/contextmenu'; import { ContextMenuController } from 'vs/editor/contrib/contextmenu/contextmenu';
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
import * as platform from 'vs/base/common/platform';
import { format } from 'vs/base/common/strings';
import { inputPlaceholderForeground } from 'vs/platform/theme/common/colorRegistry';
type TreeElement = ISCMResourceGroup | IResourceNode<ISCMResource, ISCMResourceGroup> | ISCMResource; type TreeElement = ISCMResourceGroup | IResourceNode<ISCMResource, ISCMResourceGroup> | ISCMResource;
...@@ -666,13 +669,13 @@ export class RepositoryPane extends ViewPane { ...@@ -666,13 +669,13 @@ export class RepositoryPane extends ViewPane {
this.inputContainer = append(container, $('.scm-editor')); this.inputContainer = append(container, $('.scm-editor'));
const editorContainer = append(this.inputContainer, $('.scm-editor-container')); const editorContainer = append(this.inputContainer, $('.scm-editor-container'));
// TODO@joao const placeholderTextContainer = append(editorContainer, $('.scm-editor-placeholder'));
const updatePlaceholder = () => { const updatePlaceholder = () => {
// const binding = this.keybindingService.lookupKeybinding('scm.acceptInput'); const binding = this.keybindingService.lookupKeybinding('scm.acceptInput');
// const label = binding ? binding.getLabel() : (platform.isMacintosh ? 'Cmd+Enter' : 'Ctrl+Enter'); const label = binding ? binding.getLabel() : (platform.isMacintosh ? 'Cmd+Enter' : 'Ctrl+Enter');
// const placeholder = format(this.repository.input.placeholder, label); const placeholderText = format(this.repository.input.placeholder, label);
// this.inputBox.setPlaceHolder(placeholder); placeholderTextContainer.textContent = placeholderText;
}; };
// const validationDelayer = new ThrottledDelayer<any>(200); // const validationDelayer = new ThrottledDelayer<any>(200);
...@@ -746,6 +749,10 @@ export class RepositoryPane extends ViewPane { ...@@ -746,6 +749,10 @@ export class RepositoryPane extends ViewPane {
// this._register(this.inputBox.onDidChange(value => this.repository.input.value = value, null)); // this._register(this.inputBox.onDidChange(value => this.repository.input.value = value, null));
// this._register(this.repository.input.onDidChange(value => this.inputBox.value = value, null)); // this._register(this.repository.input.onDidChange(value => this.inputBox.value = value, null));
this.inputModel.onDidChangeContent(() => {
toggleClass(placeholderTextContainer, 'hidden', this.inputModel.getValueLength() > 0);
});
updatePlaceholder(); updatePlaceholder();
this._register(this.repository.input.onDidChangePlaceholder(updatePlaceholder, null)); this._register(this.repository.input.onDidChangePlaceholder(updatePlaceholder, null));
this._register(this.keybindingService.onDidUpdateKeybindings(updatePlaceholder, null)); this._register(this.keybindingService.onDidUpdateKeybindings(updatePlaceholder, null));
...@@ -1030,3 +1037,10 @@ export class RepositoryViewDescriptor implements IViewDescriptor { ...@@ -1030,3 +1037,10 @@ export class RepositoryViewDescriptor implements IViewDescriptor {
this.ctorDescriptor = new SyncDescriptor(RepositoryPane, [repository]); this.ctorDescriptor = new SyncDescriptor(RepositoryPane, [repository]);
} }
} }
registerThemingParticipant((theme, collector) => {
let inputPlaceholderForegroundColor = theme.getColor(inputPlaceholderForeground);
if (inputPlaceholderForegroundColor) {
collector.addRule(`.scm-viewlet .scm-editor-placeholder { color: ${inputPlaceholderForegroundColor}; }`);
}
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册