From f2c9bf433e25912bced3bca0ba525f986dc4ae60 Mon Sep 17 00:00:00 2001 From: one Date: Tue, 24 Jun 2025 04:01:05 +0800 Subject: [PATCH] refactor(CodePreview): auto resize gutters (#7481) * refactor(CodePreview): auto resize gutters * refactor: remove unnecessary usememo --- .../components/CodeBlockView/CodePreview.tsx | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/components/CodeBlockView/CodePreview.tsx b/src/renderer/src/components/CodeBlockView/CodePreview.tsx index d3c56f295b..566a980f67 100644 --- a/src/renderer/src/components/CodeBlockView/CodePreview.tsx +++ b/src/renderer/src/components/CodeBlockView/CodePreview.tsx @@ -168,9 +168,15 @@ const CodePreview = ({ children, language, setTools }: CodePreviewProps) => { } }, [highlightCode]) - const hasHighlightedCode = useMemo(() => { - return tokenLines.length > 0 - }, [tokenLines.length]) + useEffect(() => { + const container = codeContentRef.current + if (!container || !codeShowLineNumbers) return + + const digits = Math.max(tokenLines.length.toString().length, 1) + container.style.setProperty('--line-digits', digits.toString()) + }, [codeShowLineNumbers, tokenLines.length]) + + const hasHighlightedCode = tokenLines.length > 0 return ( (props.$lineNumbers ? '2rem' : '0')}; + padding-left: ${(props) => (props.$lineNumbers ? 'var(--gutter-width)' : '0')}; * { overflow-wrap: ${(props) => (props.$wrap ? 'break-word' : 'normal')};