diff --git a/frontend/src/components/QueryEditor.external-sql-save.test.tsx b/frontend/src/components/QueryEditor.external-sql-save.test.tsx index a1d1b3a1..46b47507 100644 --- a/frontend/src/components/QueryEditor.external-sql-save.test.tsx +++ b/frontend/src/components/QueryEditor.external-sql-save.test.tsx @@ -4526,7 +4526,7 @@ describe('QueryEditor external SQL save', () => { expect(initialOptions).toMatchObject({ fixedOverflowWidgets: true, find: { - addExtraSpaceOnTop: true, + addExtraSpaceOnTop: false, }, hover: { enabled: true, @@ -11164,14 +11164,13 @@ describe('QueryEditor external SQL save', () => { expect(css).toContain('body[data-ui-version="v2"] .gn-v2-query-results .query-result-tab-text {'); }); - it('keeps Monaco find widget spacing scoped to the v2 query editor shell', () => { + it('does not reserve vertical space for the Monaco find widget in the v2 query editor', () => { const source = readFileSync(new URL('./QueryEditor.tsx', import.meta.url), 'utf8'); const css = readV2ThemeCss(); - expect(source).toContain('addExtraSpaceOnTop: true'); - expect(css).toContain('body[data-ui-version="v2"] .gn-v2-query-monaco-stage:has(.monaco-editor .find-widget.visible:not(.hiddenEditor)) {'); - expect(css).toContain('padding-top: 24px;'); - expect(css).toContain('overflow: visible;'); + expect(source).not.toContain('addExtraSpaceOnTop: true'); + expect(css).not.toContain('body[data-ui-version="v2"] .gn-v2-query-monaco-stage:has(.monaco-editor .find-widget.visible:not(.hiddenEditor)) {'); + expect(css).not.toContain('padding-top: 24px;'); expect(css).not.toContain('body[data-ui-version="v2"] .gn-v2-query-monaco-stage .monaco-editor .find-widget {'); }); diff --git a/frontend/src/components/QueryEditor.i18n.test.ts b/frontend/src/components/QueryEditor.i18n.test.ts index 6637688e..87840be9 100644 --- a/frontend/src/components/QueryEditor.i18n.test.ts +++ b/frontend/src/components/QueryEditor.i18n.test.ts @@ -39,7 +39,7 @@ describe('QueryEditor i18n source guards', () => { expect(queryEditorSource).toContain('query_editor.action.find_in_editor'); expect(queryEditorSource).toContain('gonavi:find-active-query'); expect(queryEditorSource).toContain("editor.getAction?.('actions.find')"); - expect(queryEditorSource).toContain('addExtraSpaceOnTop: true'); + expect(queryEditorSource).toContain('addExtraSpaceOnTop: false'); }); it('uses a localized wrapper for save query failures', () => { diff --git a/frontend/src/components/QueryEditor.tsx b/frontend/src/components/QueryEditor.tsx index 1f681210..09550c5d 100644 --- a/frontend/src/components/QueryEditor.tsx +++ b/frontend/src/components/QueryEditor.tsx @@ -210,9 +210,6 @@ export { const buildQueryEditorMonacoActionLabel = (key: string): string => `GoNavi: ${translate(key)}`; -const QUERY_EDITOR_MONACO_FIND_OPTIONS = { - addExtraSpaceOnTop: true, -} as const; const QUERY_EDITOR_NATIVE_SELECT_CURRENT_LINE_EVENT = 'gonavi:native-select-current-line'; const QUERY_EDITOR_MAC_FIND_WITH_SELECTION_COMBO = 'Meta+E'; const QUERY_EDITOR_MAC_FIND_WITH_SELECTION_GUARD_ACTION_ID = 'gonavi.suppressMacFindWithSelection'; @@ -316,7 +313,10 @@ const buildQueryEditorMonacoOptions = (isObjectEditQueryTab: boolean) => ({ minimap: { enabled: false }, automaticLayout: true, fixedOverflowWidgets: true, - find: QUERY_EDITOR_MONACO_FIND_OPTIONS, + // Keep the find widget as an overlay; Monaco's default top spacer creates a blank band. + find: { + addExtraSpaceOnTop: false, + }, hover: { enabled: true, delay: QUERY_EDITOR_HOVER_DELAY_MS, diff --git a/frontend/src/styles/v2-theme-workbench.css b/frontend/src/styles/v2-theme-workbench.css index 2a5569cb..6f84a532 100644 --- a/frontend/src/styles/v2-theme-workbench.css +++ b/frontend/src/styles/v2-theme-workbench.css @@ -296,11 +296,6 @@ body[data-ui-version="v2"] .gn-v2-query-monaco-stage { background: var(--gn-bg-panel); } -body[data-ui-version="v2"] .gn-v2-query-monaco-stage:has(.monaco-editor .find-widget.visible:not(.hiddenEditor)) { - padding-top: 24px; - overflow: visible; -} - body[data-ui-version="v2"] .gn-v2-query-monaco-shell { min-height: 0; overflow: visible;