Skip to content

Commit c023fd9

Browse files
enricorospAkalpa
authored andcommitted
Code: soft wrap. Closes enricoros#517
1 parent 911b457 commit c023fd9

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/modules/blocks/code/RenderCode.tsx

+12-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import FitScreenIcon from '@mui/icons-material/FitScreen';
88
import HtmlIcon from '@mui/icons-material/Html';
99
import SchemaIcon from '@mui/icons-material/Schema';
1010
import ShapeLineOutlinedIcon from '@mui/icons-material/ShapeLineOutlined';
11+
import WrapTextIcon from '@mui/icons-material/WrapText';
1112

1213
import { copyToClipboard } from '~/common/util/clipboardUtils';
1314
import { frontendSideFetch } from '~/common/util/clientFetchers';
@@ -106,6 +107,7 @@ function RenderCodeImpl(props: RenderCodeImplProps) {
106107
const [showMermaid, setShowMermaid] = React.useState(true);
107108
const [showPlantUML, setShowPlantUML] = React.useState(true);
108109
const [showSVG, setShowSVG] = React.useState(true);
110+
const [softWrap, setSoftWrap] = React.useState(false);
109111

110112
// derived props
111113
const {
@@ -171,7 +173,7 @@ function RenderCodeImpl(props: RenderCodeImplProps) {
171173
component='code'
172174
className={`language-${inferredCodeLanguage || 'unknown'}`}
173175
sx={{
174-
whiteSpace: 'pre', // was 'break-spaces' before we implemented per-block scrolling
176+
whiteSpace: softWrap ? 'break-spaces' : 'pre', // was 'break-spaces' before we implemented per-block scrolling
175177
mx: 0, p: 1.5, // this block gets a thicker border
176178
display: 'flex',
177179
flexDirection: 'column',
@@ -265,6 +267,15 @@ function RenderCodeImpl(props: RenderCodeImplProps) {
265267
</ButtonGroup>
266268
)}
267269

270+
{/* Soft Wrap toggle */}
271+
{(!renderHTML && !renderMermaid && !renderPlantUML && !renderSVG) && (
272+
<Tooltip title='Toggle Soft Wrap'>
273+
<OverlayButton variant={softWrap ? 'solid' : 'outlined'} onClick={() => setSoftWrap(on => !on)}>
274+
<WrapTextIcon />
275+
</OverlayButton>
276+
</Tooltip>
277+
)}
278+
268279
{/* Copy */}
269280
{props.noCopyButton !== true && (
270281
<Tooltip title={optimizeLightweight ? null : 'Copy Code'}>

0 commit comments

Comments
 (0)