提交 beffdb67 编写于 作者: R Rob Lourens

Also use ctrl+enter for multiline search

Fix #80361
上级 b0351168
......@@ -581,6 +581,19 @@ export class InputBox extends Widget {
}
}
public insertAtCursor(text: string): void {
const inputElement = this.inputElement;
const start = inputElement.selectionStart;
const end = inputElement.selectionEnd;
const content = inputElement.value;
if (start !== null && end !== null) {
this.value = content.substr(0, start) + text + content.substr(end);
inputElement.setSelectionRange(start + 1, start + 1);
this.layout();
}
}
public dispose(): void {
this._hideMessage();
......
......@@ -778,19 +778,9 @@ export class FindWidget extends Widget implements IOverlayWidget, IHorizontalSas
private _onFindInputKeyDown(e: IKeyboardEvent): void {
if (e.equals(ctrlKeyMod | KeyCode.Enter)) {
const inputElement = this._findInput.inputBox.inputElement;
const start = inputElement.selectionStart;
const end = inputElement.selectionEnd;
const content = inputElement.value;
if (start !== null && end !== null) {
const value = content.substr(0, start) + '\n' + content.substr(end);
this._findInput.inputBox.value = value;
inputElement.setSelectionRange(start + 1, start + 1);
this._findInput.inputBox.layout();
e.preventDefault();
return;
}
this._findInput.inputBox.insertAtCursor('\n');
e.preventDefault();
return;
}
if (e.equals(KeyCode.Tab)) {
......@@ -832,19 +822,9 @@ export class FindWidget extends Widget implements IOverlayWidget, IHorizontalSas
}
const inputElement = this._replaceInput.inputBox.inputElement;
const start = inputElement.selectionStart;
const end = inputElement.selectionEnd;
const content = inputElement.value;
if (start !== null && end !== null) {
const value = content.substr(0, start) + '\n' + content.substr(end);
this._replaceInput.inputBox.value = value;
inputElement.setSelectionRange(start + 1, start + 1);
this._replaceInput.inputBox.layout();
e.preventDefault();
return;
}
this._replaceInput.inputBox.insertAtCursor('\n');
e.preventDefault();
return;
}
if (e.equals(KeyCode.Tab)) {
......
......@@ -34,6 +34,7 @@ import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet';
import { IEditorOptions } from 'vs/editor/common/config/editorOptions';
import { IAccessibilityService, AccessibilitySupport } from 'vs/platform/accessibility/common/accessibility';
import { Checkbox } from 'vs/base/browser/ui/checkbox/checkbox';
import { isMacintosh } from 'vs/base/common/platform';
export interface ISearchWidgetOptions {
value?: string;
......@@ -76,6 +77,8 @@ class ReplaceAllAction extends Action {
}
}
const ctrlKeyMod = (isMacintosh ? KeyMod.WinCtrl : KeyMod.CtrlCmd);
export class SearchWidget extends Widget {
private static readonly REPLACE_ALL_DISABLED_LABEL = nls.localize('search.action.replaceAll.disabled.label', "Replace All (Submit Search to Enable)");
......@@ -446,6 +449,11 @@ export class SearchWidget extends Widget {
}
private onSearchInputKeyDown(keyboardEvent: IKeyboardEvent) {
if (keyboardEvent.equals(ctrlKeyMod | KeyCode.Enter)) {
this.searchInput.inputBox.insertAtCursor('\n');
keyboardEvent.preventDefault();
}
if (keyboardEvent.equals(KeyCode.Enter)) {
this.submitSearch();
keyboardEvent.preventDefault();
......@@ -503,6 +511,11 @@ export class SearchWidget extends Widget {
}
private onReplaceInputKeyDown(keyboardEvent: IKeyboardEvent) {
if (keyboardEvent.equals(ctrlKeyMod | KeyCode.Enter)) {
this.searchInput.inputBox.insertAtCursor('\n');
keyboardEvent.preventDefault();
}
if (keyboardEvent.equals(KeyCode.Enter)) {
this.submitSearch();
keyboardEvent.preventDefault();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册