Skip to content

Commit e558dc6

Browse files
committed
Support multiline find widget in monaco.
1 parent 962158e commit e558dc6

3 files changed

Lines changed: 17 additions & 3 deletions

File tree

src/vs/base/browser/ui/inputbox/inputBox.css

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@
6060
display: block;
6161
-ms-overflow-style: none; /* IE 10+ */
6262
overflow: -moz-scrollbars-none; /* Firefox */
63+
scrollbar-width: none; /* Firefox ^64 */
64+
outline: none;
6365
}
6466

6567
.monaco-inputbox > .wrapper > textarea.input::-webkit-scrollbar {

src/vs/editor/contrib/find/findWidget.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@
7171
bottom: unset;
7272
}
7373

74+
.monaco-editor .find-widget .monaco-inputbox.synthetic-focus {
75+
outline: 1px solid -webkit-focus-ring-color;
76+
outline-offset: -1px;
77+
}
78+
7479
.monaco-editor .find-widget .monaco-inputbox .input {
7580
background-color: transparent;
7681
/* Style to compensate for //winjs */

src/vs/editor/contrib/find/findWidget.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import { CONTEXT_FIND_INPUT_FOCUSED, CONTEXT_REPLACE_INPUT_FOCUSED, FIND_IDS, MA
2929
import { FindReplaceState, FindReplaceStateChangedEvent } from 'vs/editor/contrib/find/findState';
3030
import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
3131
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
32-
import { contrastBorder, editorFindMatch, editorFindMatchBorder, editorFindMatchHighlight, editorFindMatchHighlightBorder, editorFindRangeHighlight, editorFindRangeHighlightBorder, editorWidgetBackground, editorWidgetBorder, editorWidgetResizeBorder, errorForeground, inputActiveOptionBorder, inputActiveOptionBackground, inputBackground, inputBorder, inputForeground, inputValidationErrorBackground, inputValidationErrorBorder, inputValidationErrorForeground, inputValidationInfoBackground, inputValidationInfoBorder, inputValidationInfoForeground, inputValidationWarningBackground, inputValidationWarningBorder, inputValidationWarningForeground, widgetShadow, editorWidgetForeground } from 'vs/platform/theme/common/colorRegistry';
32+
import { contrastBorder, editorFindMatch, editorFindMatchBorder, editorFindMatchHighlight, editorFindMatchHighlightBorder, editorFindRangeHighlight, editorFindRangeHighlightBorder, editorWidgetBackground, editorWidgetBorder, editorWidgetResizeBorder, errorForeground, inputActiveOptionBorder, inputActiveOptionBackground, inputBackground, inputBorder, inputForeground, inputValidationErrorBackground, inputValidationErrorBorder, inputValidationErrorForeground, inputValidationInfoBackground, inputValidationInfoBorder, inputValidationInfoForeground, inputValidationWarningBackground, inputValidationWarningBorder, inputValidationWarningForeground, widgetShadow, editorWidgetForeground, focusBorder } from 'vs/platform/theme/common/colorRegistry';
3333
import { ITheme, IThemeService, registerThemingParticipant } from 'vs/platform/theme/common/themeService';
3434
import { ContextScopedFindInput, ContextScopedReplaceInput } from 'vs/platform/browser/contextScopedHistoryWidget';
3535
import { AccessibilitySupport } from 'vs/platform/accessibility/common/accessibility';
@@ -894,8 +894,8 @@ export class FindWidget extends Widget implements IOverlayWidget, IHorizontalSas
894894
}
895895

896896
private _buildDomNode(): void {
897-
const flexibleHeight = platform.isNative;
898-
const flexibleWidth = platform.isNative;
897+
const flexibleHeight = true;
898+
const flexibleWidth = true;
899899
// Find input
900900
this._findInput = this._register(new ContextScopedFindInput(null, this._contextViewProvider, {
901901
width: FIND_INPUT_AREA_WIDTH,
@@ -1402,4 +1402,11 @@ registerThemingParticipant((theme, collector) => {
14021402
if (inputActiveBackground) {
14031403
collector.addRule(`.monaco-editor .find-widget .monaco-checkbox .checkbox:checked + .label { background-color: ${inputActiveBackground.toString()}; }`);
14041404
}
1405+
1406+
// This rule is used to override the outline color for synthetic-focus find input.
1407+
const focusOutline = theme.getColor(focusBorder);
1408+
if (focusOutline) {
1409+
collector.addRule(`.monaco-workbench .monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ${focusOutline}; }`);
1410+
1411+
}
14051412
});

0 commit comments

Comments
 (0)