refactor(cli): update CodeColorizer and related components to use MergedSettings

This commit is contained in:
Jarrod Whelan
2026-02-11 17:57:59 -08:00
parent f03cfb075d
commit 5750c58c38
6 changed files with 16 additions and 14 deletions

View File

@@ -365,7 +365,7 @@ def fibonacci(n):
availableHeight:
isAlternateBuffer === false ? codeBlockHeight : undefined,
maxWidth: colorizeCodeWidth,
settings,
settings: settings.merged,
})}
<Box marginTop={1} />
<DiffRenderer

View File

@@ -170,7 +170,7 @@ export const DiffRenderer: React.FC<DiffRendererProps> = ({
availableHeight: availableTerminalHeight,
maxWidth: terminalWidth,
theme,
settings,
settings: settings.merged,
disableColor,
});
} else {

View File

@@ -5,10 +5,14 @@
*/
import { useSettings } from '../contexts/SettingsContext.js';
import type { LoadedSettings } from '../../config/settings.js';
import type { LoadedSettings, MergedSettings } from '../../config/settings.js';
export const isAlternateBufferEnabled = (settings: LoadedSettings): boolean =>
settings.merged.ui.useAlternateBuffer === true;
export const isAlternateBufferEnabled = (
settings: LoadedSettings | MergedSettings,
): boolean => {
const merged = 'merged' in settings ? settings.merged : settings;
return merged.ui.useAlternateBuffer === true;
};
export const useAlternateBuffer = (): boolean => {
const settings = useSettings();

View File

@@ -31,7 +31,7 @@ describe('colorizeCode', () => {
code,
language: 'javascript',
maxWidth: 80,
settings,
settings: settings.merged,
hideLineNumbers: true,
});

View File

@@ -20,7 +20,7 @@ import {
MaxSizedBox,
MINIMUM_MAX_HEIGHT,
} from '../components/shared/MaxSizedBox.js';
import type { LoadedSettings } from '../../config/settings.js';
import type { MergedSettings } from '../../config/settings.js';
import { debugLogger } from '@google/gemini-cli-core';
import { isAlternateBufferEnabled } from '../hooks/useAlternateBuffer.js';
@@ -131,7 +131,7 @@ export interface ColorizeCodeOptions {
availableHeight?: number;
maxWidth: number;
theme?: Theme | null;
settings: LoadedSettings;
settings: MergedSettings;
hideLineNumbers?: boolean;
disableColor?: boolean;
}
@@ -154,9 +154,7 @@ export function colorizeCode({
}: ColorizeCodeOptions): React.ReactNode {
const codeToHighlight = code.replace(/\n$/, '');
const activeTheme = theme || themeManager.getActiveTheme();
const showLineNumbers = hideLineNumbers
? false
: settings.merged.ui.showLineNumbers;
const showLineNumbers = hideLineNumbers ? false : settings.ui.showLineNumbers;
const useMaxSizedBox = !isAlternateBufferEnabled(settings);
try {

View File

@@ -49,7 +49,7 @@ const MarkdownDisplayInternal: React.FC<MarkdownDisplayProps> = ({
language: 'markdown',
availableHeight: isAlternateBuffer ? undefined : availableTerminalHeight,
maxWidth: terminalWidth - CODE_BLOCK_PREFIX_PADDING,
settings,
settings: settings.merged,
hideLineNumbers: true,
});
return (
@@ -365,7 +365,7 @@ const RenderCodeBlockInternal: React.FC<RenderCodeBlockProps> = ({
language: lang,
availableHeight: availableTerminalHeight,
maxWidth: terminalWidth - CODE_BLOCK_PREFIX_PADDING,
settings,
settings: settings.merged,
});
return (
<Box paddingLeft={CODE_BLOCK_PREFIX_PADDING} flexDirection="column">
@@ -382,7 +382,7 @@ const RenderCodeBlockInternal: React.FC<RenderCodeBlockProps> = ({
language: lang,
availableHeight: isAlternateBuffer ? undefined : availableTerminalHeight,
maxWidth: terminalWidth - CODE_BLOCK_PREFIX_PADDING,
settings,
settings: settings.merged,
});
return (