@podlite/editor-react 0.0.41 → 0.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.podlite CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  =head1 Upcoming
4
4
 
5
+ =head1 0.0.42
6
+
7
+ =item fix performance: eliminate synchronous re-renders on keystroke (text state → ref, deferred onChange via rAF, 300ms debounced preview)
8
+ =item fix performance: cache verbatim ranges in fold service (O(N) per call → O(1) via document identity cache)
9
+ =item fix search panel closing after Enter on first result — memoize extensions and basicSetup to prevent CodeMirror reconfiguration on re-render
10
+ =item add C<enableCopyPng> prop to C<WindowWrapper> — copies content as PNG to clipboard via C<dom-to-image-more>
11
+ =item refactor C<WindowWrapper>: remove dead SVG foreignObject screenshot code, add TypeScript types
12
+ =item fix fold markers appearing inside verbatim blocks (C<=code>, C<=comment>, C<=data>, C<=input>, C<=output>)
13
+ =item fix cursor not visible on file open — add C<autoFocus> + reset C<initialStateApplied> on file change
14
+
5
15
  =head1 0.0.41
6
16
 
7
17
  =item add list continuation on Enter: auto-insert C<=itemN> with type prefix preserved (C<[ ]>, C<[x]>→C<[ ]>, C<#>)
package/esm/Editor.js CHANGED
@@ -33,7 +33,7 @@ function PodliteEditorInternal(props, ref) {
33
33
  enableAutocompletion = false, onOpenLink, enableHighlighting = false, initialEditorState, onEditorStateChange, ...codemirrorProps } = props;
34
34
  const full_preview = previewWidth === '100%';
35
35
  const [value, setValue] = useState(props.value || '');
36
- const [text1, setText] = useState(props.value || '');
36
+ const pendingTextRef = useRef(props.value || '');
37
37
  const codeMirror = useRef(null);
38
38
  const container = useRef(null);
39
39
  const containerEditor = useRef(null);
@@ -42,6 +42,14 @@ function PodliteEditorInternal(props, ref) {
42
42
  const topLine = useRef(startLinePreview);
43
43
  const $viewHeight = useRef(0);
44
44
  const initialStateApplied = useRef(false);
45
+ // Stable refs for callbacks used in memoized extensions
46
+ // Stable refs for callbacks used in memoized extensions
47
+ const onEditorStateChangeRef = useRef(onEditorStateChange);
48
+ onEditorStateChangeRef.current = onEditorStateChange;
49
+ const onOpenLinkRef = useRef(onOpenLink);
50
+ onOpenLinkRef.current = onOpenLink;
51
+ // Stable basicSetup config to prevent CodeMirror reconfiguration on re-render
52
+ const basicSetupConfig = React.useMemo(() => ({ defaultKeymap: false }), []);
45
53
  useImperativeHandle(ref, () => ({
46
54
  editor: codeMirror,
47
55
  preview: preview,
@@ -57,7 +65,11 @@ function PodliteEditorInternal(props, ref) {
57
65
  }
58
66
  return ranges;
59
67
  }, []);
60
- // Restore editor session state once after mount
68
+ // Reset applied flag when initialEditorState changes (new file opened)
69
+ useEffect(() => {
70
+ initialStateApplied.current = false;
71
+ }, [initialEditorState]);
72
+ // Restore editor session state once after mount or file change
61
73
  useEffect(() => {
62
74
  if (initialStateApplied.current || !initialEditorState)
63
75
  return;
@@ -123,7 +135,9 @@ function PodliteEditorInternal(props, ref) {
123
135
  : codemirrorProps.height;
124
136
  const preValue = props.value;
125
137
  useEffect(() => setValue(preValue ?? ''), [preValue]);
126
- useEffect(() => setText(preValue ?? ''), [preValue]);
138
+ useEffect(() => {
139
+ pendingTextRef.current = preValue ?? '';
140
+ }, [preValue]);
127
141
  const fullRef = useRef(isFullscreen);
128
142
  useEffect(() => {
129
143
  fullRef.current = isFullscreen;
@@ -278,8 +292,9 @@ function PodliteEditorInternal(props, ref) {
278
292
  },
279
293
  ...defaultKeymap,
280
294
  ]);
281
- // Add/remove a class on the editor root while Mod (Cmd/Ctrl) is pressed
282
- const modKeyClass = EditorView.domEventHandlers({
295
+ // Memoized extensions to prevent CodeMirror reconfiguration on re-render
296
+ // (reconfiguration closes panels like search)
297
+ const modKeyClass = React.useMemo(() => EditorView.domEventHandlers({
283
298
  keydown(e, view) {
284
299
  if (e.metaKey || e.ctrlKey)
285
300
  view.dom.classList.add('cm-mod-pressed');
@@ -291,12 +306,11 @@ function PodliteEditorInternal(props, ref) {
291
306
  blur(_, view) {
292
307
  view.dom.classList.remove('cm-mod-pressed');
293
308
  },
294
- // defensive: if mouse leaves, clear the class (helps when key is released elsewhere)
295
309
  mouseleave(_, view) {
296
310
  view.dom.classList.remove('cm-mod-pressed');
297
311
  },
298
- });
299
- const openStyledLinkOnClick = EditorView.domEventHandlers({
312
+ }), []);
313
+ const openStyledLinkOnClick = React.useMemo(() => EditorView.domEventHandlers({
300
314
  click(event, view) {
301
315
  const target = event.target;
302
316
  if (!target)
@@ -304,60 +318,42 @@ function PodliteEditorInternal(props, ref) {
304
318
  const el = target.closest('.cm-clickable-link');
305
319
  if (!el)
306
320
  return;
307
- // require Cmd/Ctrl for activation
308
321
  const modPressed = event.metaKey || event.ctrlKey;
309
322
  if (!modPressed)
310
323
  return;
311
324
  const from = view.posAtDOM(el, 0);
312
325
  const to = view.posAtDOM(el, el.childNodes.length);
313
326
  const text = view.state.doc.sliceString(from, to).trim();
314
- if (onOpenLink) {
315
- onOpenLink(text); // i.e window.open(text, '_blank', 'noopener')
316
- }
327
+ onOpenLinkRef.current?.(text);
317
328
  event.preventDefault();
318
329
  event.stopPropagation();
319
330
  },
320
- });
331
+ }), []);
321
332
  // Track fold/unfold and cursor changes to emit editor state
322
- const stateChangeListener = onEditorStateChange
333
+ const stateChangeListener = React.useMemo(() => onEditorStateChange
323
334
  ? EditorView.updateListener.of(update => {
324
- // Emit on fold/unfold (transactions with fold effects) or cursor move
325
335
  const hasFoldChange = update.transactions.some(tr => tr.effects.some(e => e.is(foldEffect) || e.is(unfoldEffect)));
326
336
  const hasCursorChange = update.selectionSet;
327
337
  if (hasFoldChange || hasCursorChange) {
328
- onEditorStateChange({
338
+ onEditorStateChangeRef.current?.({
329
339
  cursorOffset: update.state.selection.main.head,
330
340
  scrollTop: update.view.scrollDOM.scrollTop,
331
341
  foldedRanges: serializeFoldedRanges(update.view),
332
342
  });
333
343
  }
334
344
  })
335
- : [];
336
- let extensionsData = [
337
- podliteLang(),
338
- EditorView.lineWrapping,
339
- podliteFoldService,
340
- foldGutter(),
341
- keymap.of(foldKeymap),
342
- stateChangeListener,
343
- itemLevelKeymap,
344
- listContinuationKeymap,
345
- preventToggleComment,
346
- ];
347
- if (onOpenLink) {
348
- extensionsData.push(modKeyClass, openStyledLinkOnClick, EditorView.theme({
349
- '&.cm-editor.cm-mod-pressed .cm-clickable-link:hover': {
350
- cursor: 'pointer',
351
- },
352
- }));
353
- }
354
- if (enableScroll) {
355
- extensionsData.push(scrollExtensions);
356
- }
357
- const makeApply = (text) => (editor, completion, from, to) => {
345
+ : [], [!!onEditorStateChange, serializeFoldedRanges]);
346
+ const linkTheme = React.useMemo(() => EditorView.theme({
347
+ '&.cm-editor.cm-mod-pressed .cm-clickable-link:hover': {
348
+ cursor: 'pointer',
349
+ },
350
+ }), []);
351
+ const makeApply = useCallback((text) => (editor, completion, from, to) => {
358
352
  return snippet(text)(editor, completion, from - 1, to);
359
- };
360
- if (enableAutocompletion) {
353
+ }, []);
354
+ const autocompletionExt = React.useMemo(() => {
355
+ if (!enableAutocompletion)
356
+ return null;
361
357
  const langDict = dictionary.filter(({ lang = 'pod6' }) => lang === 'pod6');
362
358
  const completions = langDict.map(({ displayText, text }) => {
363
359
  function cleanBraces(text) {
@@ -372,8 +368,6 @@ function PodliteEditorInternal(props, ref) {
372
368
  });
373
369
  function myCompletions(context) {
374
370
  let before = context.matchBefore(/^\s*=\w*/);
375
- // If completion wasn't explicitly started and there
376
- // is no word before the cursor, don't open completions.
377
371
  if (!context.explicit && !before)
378
372
  return null;
379
373
  return {
@@ -382,11 +376,50 @@ function PodliteEditorInternal(props, ref) {
382
376
  validFor: /^=\w*$/,
383
377
  };
384
378
  }
385
- extensionsData.push(autocompletion({ override: [myCompletions] }));
386
- }
387
- useDebouncedEffect(() => {
388
- setValue(text1);
389
- }, [text1], 50);
379
+ return autocompletion({ override: [myCompletions] });
380
+ }, [enableAutocompletion, makeApply]);
381
+ const extensionsData = React.useMemo(() => {
382
+ const exts = [
383
+ podliteLang(),
384
+ EditorView.lineWrapping,
385
+ podliteFoldService,
386
+ foldGutter(),
387
+ keymap.of(foldKeymap),
388
+ stateChangeListener,
389
+ itemLevelKeymap,
390
+ listContinuationKeymap,
391
+ preventToggleComment,
392
+ ];
393
+ if (onOpenLink) {
394
+ exts.push(modKeyClass, openStyledLinkOnClick, linkTheme);
395
+ }
396
+ if (enableScroll) {
397
+ exts.push(scrollExtensions);
398
+ }
399
+ if (autocompletionExt) {
400
+ exts.push(autocompletionExt);
401
+ }
402
+ return exts;
403
+ }, [
404
+ stateChangeListener,
405
+ modKeyClass,
406
+ openStyledLinkOnClick,
407
+ linkTheme,
408
+ !!onOpenLink,
409
+ enableScroll,
410
+ scrollExtensions,
411
+ preventToggleComment,
412
+ autocompletionExt,
413
+ ]);
414
+ // Debounced preview update: check ref every 300ms, update value state only when text changed
415
+ useEffect(() => {
416
+ const interval = setInterval(() => {
417
+ if (pendingTextRef.current !== value) {
418
+ setValue(pendingTextRef.current);
419
+ }
420
+ }, 300);
421
+ return () => clearInterval(interval);
422
+ }, [value]);
390
423
  useEffect(() => {
391
424
  if (!isBrowser || !container.current)
392
425
  return;
@@ -424,18 +457,14 @@ function PodliteEditorInternal(props, ref) {
424
457
  }, 100);
425
458
  return () => clearTimeout(timer);
426
459
  }, [startLinePreview, enablePreview]); // Only run when startLinePreview or enablePreview changes
427
- const handleChange = (value, viewUpdate) => {
428
- setText(value);
429
- onChange && onChange(value, viewUpdate);
430
- if (onEditorStateChange) {
431
- const view = viewUpdate.view;
432
- onEditorStateChange({
433
- cursorOffset: view.state.selection.main.head,
434
- scrollTop: view.scrollDOM.scrollTop,
435
- foldedRanges: serializeFoldedRanges(view),
436
- });
437
- }
438
- };
460
+ const handleChange = useCallback((value, viewUpdate) => {
461
+ pendingTextRef.current = value;
462
+ // Defer parent callback to next frame so CodeMirror textupdate handler
463
+ // completes immediately and the typed character appears without delay
464
+ requestAnimationFrame(() => {
465
+ onChange?.(value, viewUpdate);
466
+ });
467
+ }, [onChange]);
439
468
  useEffect(() => {
440
469
  if (preview.current) {
441
470
  const $preview = preview.current;
@@ -586,7 +615,7 @@ function PodliteEditorInternal(props, ref) {
586
615
  };
587
616
  const conentView = (React.createElement("div", { className: `podlite-editor-content`, style: { height: codemirrorProps?.height } },
588
617
  React.createElement("div", { className: `podlite-editor-content-editor`, ref: containerEditor },
589
- React.createElement(CodeMirror, { theme: defaultTheme, indentWithTab: false, ...{ ...codemirrorProps, ...{ basicSetup: { defaultKeymap: false } } }, className: `podlite-editor-inner`, extensions: extensionsData, height: height, ref: codeMirror, onChange: handleChange })),
618
+ React.createElement(CodeMirror, { theme: defaultTheme, indentWithTab: false, autoFocus: true, ...codemirrorProps, basicSetup: basicSetupConfig, className: `podlite-editor-inner`, extensions: extensionsData, height: height, ref: codeMirror, onChange: handleChange })),
590
619
  enablePreview && (React.createElement("div", { className: clsPreview, style: { overflow: full_preview ? 'visible' : 'hidden' }, ref: preview }, previewContent()))));
591
620
  return (React.createElement("div", null,
592
621
  React.createElement("div", { className: cls, ref: container }, conentView),
package/esm/Editor.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.js","sourceRoot":"","sources":["../src/Editor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Editor.js","sourceRoot":"","sources":["../src/Editor.tsx"],"names":[],"mappings":"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"}
package/esm/Wrapper.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import React from 'react';
2
- declare const WindowWrapper: ({ children, title }: {
3
- children: any;
2
+ declare type WindowWrapperProps = {
3
+ children: React.ReactNode;
4
4
  title?: string;
5
- }) => React.JSX.Element;
5
+ enableCopyPng?: boolean;
6
+ };
7
+ declare const WindowWrapper: ({ children, title, enableCopyPng }: WindowWrapperProps) => React.JSX.Element;
6
8
  export default WindowWrapper;
package/esm/Wrapper.js CHANGED
@@ -1,90 +1,48 @@
1
- import React, { useRef } from 'react';
2
- const WindowWrapper = ({ children, title = '' }) => {
3
- const wrapperRef = useRef(null);
4
- const handleCopy = async () => {
5
- if (!wrapperRef.current)
1
+ import React, { useRef, useState } from 'react';
2
+ const WindowWrapper = ({ children, title = '', enableCopyPng = false }) => {
3
+ const windowRef = useRef(null);
4
+ const copyBtnRef = useRef(null);
5
+ const [isCopied, setIsCopied] = useState(false);
6
+ const handleCopyPng = async () => {
7
+ if (!windowRef.current)
6
8
  return;
7
- const html = wrapperRef.current.outerHTML;
8
9
  try {
9
- const svg = `
10
- <svg xmlns="http://www.w3.org/2000/svg" width="800" height="600">
11
- <foreignObject width="100%" height="100%">
12
- <div xmlns="http://www.w3.org/1999/xhtml">
13
- ${html}
14
- </div>
15
- </foreignObject>
16
- </svg>
17
- `.trim();
18
- const dataURL = `data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(svg)))}`;
19
- await navigator.clipboard.writeText(dataURL);
20
- }
21
- catch (err) {
22
- console.error('Copy failed:', err);
23
- }
24
- };
25
- const copyElementToClipboard = async () => {
26
- if (!wrapperRef.current)
27
- return;
28
- try {
29
- // setIsLoading(true);
30
- const canvas = document.createElement('canvas');
31
- const context = canvas.getContext('2d');
32
- const element = wrapperRef.current;
33
- const rect = element.getBoundingClientRect();
34
- canvas.width = rect.width * 2;
35
- canvas.height = rect.height * 2;
36
- const svgData = `
37
- <svg xmlns="http://www.w3.org/2000/svg" width="${rect.width}" height="${rect.height}">
38
- <foreignObject width="100%" height="100%">
39
- <div xmlns="http://www.w3.org/1999/xhtml">
40
- ${element.outerHTML}
41
- </div>
42
- </foreignObject>
43
- </svg>
44
- `;
45
- console.log('1');
46
- const base64Data = btoa(unescape(encodeURIComponent(svgData)));
47
- // const base64Data = btoa(encodeURIComponent(svgData));
48
- const dataUrl = `data:image/svg+xml;base64,${base64Data}`;
49
- console.log(dataUrl);
50
- const image = new Image();
51
- image.crossOrigin = 'anonymous';
52
- console.log('2');
53
- await new Promise((resolve, reject) => {
54
- image.onload = resolve;
55
- image.onerror = e => {
56
- console.error('Image load error:', e);
57
- reject(e);
58
- };
59
- image.src = dataUrl;
60
- });
61
- console.log('3');
62
- if (context) {
63
- context.scale(2, 2);
64
- context.drawImage(image, 0, 0);
10
+ if (copyBtnRef.current) {
11
+ copyBtnRef.current.style.display = 'none';
65
12
  }
66
- console.log('4');
67
- const imageBlob = await new Promise(resolve => canvas.toBlob(resolve, 'image/png'));
68
- if (imageBlob) {
69
- await navigator.clipboard.write([new ClipboardItem({ 'image/png': imageBlob })]);
13
+ const domtoimage = (await import('dom-to-image-more')).default;
14
+ const blob = await domtoimage.toBlob(windowRef.current, { quality: 1.0 });
15
+ if (copyBtnRef.current) {
16
+ copyBtnRef.current.style.display = '';
70
17
  }
18
+ await navigator.clipboard.write([new ClipboardItem({ 'image/png': blob })]);
19
+ setIsCopied(true);
20
+ setTimeout(() => setIsCopied(false), 2000);
71
21
  }
72
22
  catch (err) {
73
- console.error('Screenshot failed:', err);
74
- }
75
- finally {
76
- // setIsLoading(false);
23
+ if (copyBtnRef.current) {
24
+ copyBtnRef.current.style.display = '';
25
+ }
26
+ console.error('Copy PNG failed:', err);
77
27
  }
78
28
  };
79
- return (React.createElement("div", { className: "window", ref: wrapperRef },
80
- React.createElement("div", { className: "titlebar" },
81
- React.createElement("div", { className: "buttons" }),
82
- title && React.createElement("span", { className: "title" }, title)),
83
- React.createElement("div", { className: "content" }, children),
29
+ return (React.createElement("div", { className: "window-capture", ref: windowRef },
30
+ React.createElement("div", { className: "window" },
31
+ React.createElement("div", { className: "titlebar" },
32
+ React.createElement("div", { className: "buttons" }),
33
+ title && React.createElement("span", { className: "title" }, title),
34
+ React.createElement("div", { className: "titlebar-spacer" }),
35
+ enableCopyPng && (React.createElement("button", { ref: copyBtnRef, className: "copy-png-btn", onClick: handleCopyPng, title: "Copy as PNG" }, isCopied ? '\u2713' : '\u2398'))),
36
+ React.createElement("div", { className: "content" }, children)),
84
37
  React.createElement("style", null, `
38
+ .window-capture {
39
+ padding: 1.5rem;
40
+ display: inline-block;
41
+ margin: 0.5rem;
42
+ }
43
+
85
44
  .window {
86
45
  position: relative;
87
- margin: 2rem;
88
46
  border-radius: 6px;
89
47
  background: white;
90
48
  box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.2);
@@ -101,6 +59,10 @@ const WindowWrapper = ({ children, title = '' }) => {
101
59
  align-items: center;
102
60
  }
103
61
 
62
+ .titlebar-spacer {
63
+ flex: 1;
64
+ }
65
+
104
66
  .buttons {
105
67
  display: flex;
106
68
  gap: 6px;
@@ -140,6 +102,23 @@ const WindowWrapper = ({ children, title = '' }) => {
140
102
  .content {
141
103
  padding: 16px;
142
104
  }
105
+
106
+ .copy-png-btn {
107
+ background: none;
108
+ border: 1px solid #ccc;
109
+ border-radius: 4px;
110
+ padding: 2px 8px;
111
+ cursor: pointer;
112
+ font-size: 14px;
113
+ color: #666;
114
+ line-height: 1;
115
+ transition: background 0.15s, color 0.15s;
116
+ }
117
+
118
+ .copy-png-btn:hover {
119
+ background: #e0e0e0;
120
+ color: #333;
121
+ }
143
122
  `)));
144
123
  };
145
124
  export default WindowWrapper;
@@ -1 +1 @@
1
- {"version":3,"file":"Wrapper.js","sourceRoot":"","sources":["../src/Wrapper.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Wrapper.js","sourceRoot":"","sources":["../src/Wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAQ/C,MAAM,aAAa,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,aAAa,GAAG,KAAK,EAAsB,EAAE,EAAE;IAC5F,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAClD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE/C,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAM;QAC9B,IAAI;YACF,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;aAC1C;YACD,MAAM,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAA;YAC9D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;YACzE,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;aACtC;YACD,MAAM,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC3E,WAAW,CAAC,IAAI,CAAC,CAAA;YACjB,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;SAC3C;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAA;aACtC;YACD,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;SACvC;IACH,CAAC,CAAA;IAED,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,EAAC,GAAG,EAAE,SAAS;QAC5C,6BAAK,SAAS,EAAC,QAAQ;YACrB,6BAAK,SAAS,EAAC,UAAU;gBACvB,6BAAK,SAAS,EAAC,SAAS,GAAO;gBAC9B,KAAK,IAAI,8BAAM,SAAS,EAAC,OAAO,IAAE,KAAK,CAAQ;gBAChD,6BAAK,SAAS,EAAC,iBAAiB,GAAO;gBACtC,aAAa,IAAI,CAChB,gCAAQ,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,cAAc,EAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAC,aAAa,IAC1F,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CACxB,CACV,CACG;YACN,6BAAK,SAAS,EAAC,SAAS,IAAE,QAAQ,CAAO,CACrC;QACN,mCAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqFP,CAAS,CACN,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -4,11 +4,44 @@ const beginRe = /^(\s*)=begin\s+(\S+)/;
4
4
  const endRe = /^(\s*)=end\s+(\S+)/;
5
5
  // =headN (level 1-6)
6
6
  const headRe = /^(\s*)=head(\d+)\s/;
7
+ // Verbatim block types where content should not be folded
8
+ const verbatimTypes = new Set(['code', 'comment', 'data', 'input', 'output']);
7
9
  // Parse =begin line, return block name or null
8
10
  function parseBeginLine(lineText) {
9
11
  const m = lineText.match(beginRe);
10
12
  return m ? m[2] ?? null : null;
11
13
  }
14
+ // Cache verbatim ranges per document version to avoid rescanning on every fold query
15
+ let _cachedVerbatimDoc = null;
16
+ let _cachedVerbatimRanges = [];
17
+ function getVerbatimRanges(state) {
18
+ // EditorState.doc is immutable — same reference means same content
19
+ if (_cachedVerbatimDoc === state.doc)
20
+ return _cachedVerbatimRanges;
21
+ const ranges = [];
22
+ for (let i = 1; i <= state.doc.lines; i++) {
23
+ const line = state.doc.line(i);
24
+ const m = line.text.match(beginRe);
25
+ if (m && verbatimTypes.has(m[2])) {
26
+ for (let j = i + 1; j <= state.doc.lines; j++) {
27
+ const endLine = state.doc.line(j);
28
+ const em = endLine.text.match(endRe);
29
+ if (em && em[2] === m[2]) {
30
+ if (i + 1 <= j - 1) {
31
+ ranges.push({ from: i + 1, to: j - 1 });
32
+ }
33
+ break;
34
+ }
35
+ }
36
+ }
37
+ }
38
+ _cachedVerbatimDoc = state.doc;
39
+ _cachedVerbatimRanges = ranges;
40
+ return ranges;
41
+ }
42
+ function isInsideVerbatim(lineNumber, ranges) {
43
+ return ranges.some(r => lineNumber >= r.from && lineNumber <= r.to);
44
+ }
12
45
  // Fold =begin Name ... =end Name: fold from end of =begin line to start of =end line
13
46
  function foldBeginEnd(state, lineStart) {
14
47
  const line = state.doc.lineAt(lineStart);
@@ -65,5 +98,11 @@ function foldHeadSection(state, lineStart) {
65
98
  return null;
66
99
  return { from: line.to, to: endPos };
67
100
  }
68
- export const podliteFoldService = foldService.of((state, lineStart) => foldBeginEnd(state, lineStart) ?? foldHeadSection(state, lineStart));
101
+ export const podliteFoldService = foldService.of((state, lineStart) => {
102
+ const line = state.doc.lineAt(lineStart);
103
+ const verbatimRanges = getVerbatimRanges(state);
104
+ if (isInsideVerbatim(line.number, verbatimRanges))
105
+ return null;
106
+ return foldBeginEnd(state, lineStart) ?? foldHeadSection(state, lineStart);
107
+ });
69
108
  //# sourceMappingURL=foldPodlite.js.map