@podlite/editor-react 0.0.40 → 0.0.41
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 +8 -0
- package/esm/Editor.d.ts +5 -0
- package/esm/Editor.js +110 -3
- package/esm/Editor.js.map +1 -1
- package/esm/foldPodlite.d.ts +2 -0
- package/esm/foldPodlite.js +69 -0
- package/esm/foldPodlite.js.map +1 -0
- package/esm/index.d.ts +2 -0
- package/esm/index.js.map +1 -1
- package/esm/listContinuation.d.ts +3 -0
- package/esm/listContinuation.js +124 -0
- package/esm/listContinuation.js.map +1 -0
- package/esm/types.d.ts +12 -0
- package/esm/types.js +2 -0
- package/esm/types.js.map +1 -0
- package/lib/Editor.d.ts +5 -0
- package/lib/Editor.js +110 -3
- package/lib/Editor.js.map +1 -1
- package/lib/foldPodlite.d.ts +2 -0
- package/lib/foldPodlite.js +72 -0
- package/lib/foldPodlite.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js.map +1 -1
- package/lib/listContinuation.d.ts +3 -0
- package/lib/listContinuation.js +127 -0
- package/lib/listContinuation.js.map +1 -0
- package/lib/types.d.ts +12 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/package.json +24 -2
package/CHANGELOG.podlite
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
=head1 Upcoming
|
|
4
4
|
|
|
5
|
+
=head1 0.0.41
|
|
6
|
+
|
|
7
|
+
=item add list continuation on Enter: auto-insert C<=itemN> with type prefix preserved (C<[ ]>, C<[x]>→C<[ ]>, C<#>)
|
|
8
|
+
=item pressing Enter on empty C<=itemN> (or prefix-only) exits the list
|
|
9
|
+
=item add Tab/Shift-Tab to increase/decrease C<=item> nesting level (2-space indent per level)
|
|
10
|
+
=item add code folding for C<=begin>/C<=end> blocks and C<=head> sections with fold gutter
|
|
11
|
+
=item add C<initialEditorState> and C<onEditorStateChange> props for session state persistence (cursor, scroll, folds)
|
|
12
|
+
|
|
5
13
|
=head1 0.0.40
|
|
6
14
|
|
|
7
15
|
=item add C<enableHighlighting> prop to toggle code highlighting in preview (podlite/podlite-desktop#42)
|
package/esm/Editor.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ViewUpdate, ReactCodeMirrorProps, ReactCodeMirrorRef } from '@uiw/react-codemirror';
|
|
3
|
+
import type { EditorSessionState } from './types';
|
|
3
4
|
export interface ConverterResult {
|
|
4
5
|
errors?: any;
|
|
5
6
|
result: JSX.Element | string;
|
|
@@ -27,6 +28,10 @@ export interface IPodliteEditor extends ReactCodeMirrorProps {
|
|
|
27
28
|
onOpenLink?: (url: string) => void;
|
|
28
29
|
/** Enable code highlighting */
|
|
29
30
|
enableHighlighting?: boolean;
|
|
31
|
+
/** Initial editor session state to restore (cursor, scroll, folds) */
|
|
32
|
+
initialEditorState?: EditorSessionState;
|
|
33
|
+
/** Called when editor state changes (cursor move, scroll, fold/unfold) */
|
|
34
|
+
onEditorStateChange?: (state: EditorSessionState) => void;
|
|
30
35
|
}
|
|
31
36
|
export interface PodliteEditorRef {
|
|
32
37
|
editor: React.RefObject<ReactCodeMirrorRef>;
|
package/esm/Editor.js
CHANGED
|
@@ -7,9 +7,12 @@ import { podliteLang } from './podlite';
|
|
|
7
7
|
import { defaultTheme } from './theme';
|
|
8
8
|
import { EditorView, keymap } from '@codemirror/view';
|
|
9
9
|
import { defaultKeymap } from '@codemirror/commands';
|
|
10
|
+
import { foldGutter, foldKeymap, foldedRanges, foldEffect, unfoldEffect } from '@codemirror/language';
|
|
10
11
|
import { isElement } from 'react-is';
|
|
11
12
|
import { autocompletion, snippet } from '@codemirror/autocomplete';
|
|
12
13
|
import dictionary from './dict';
|
|
14
|
+
import { listContinuationKeymap, itemLevelKeymap } from './listContinuation';
|
|
15
|
+
import { podliteFoldService } from './foldPodlite';
|
|
13
16
|
import HighlightedCode from './HighlightedCode';
|
|
14
17
|
function useDebouncedEffect(fn, deps, time) {
|
|
15
18
|
const dependencies = [...deps, time];
|
|
@@ -27,7 +30,7 @@ function PodliteEditorInternal(props, ref) {
|
|
|
27
30
|
if (!isBrowser)
|
|
28
31
|
return null;
|
|
29
32
|
const { onChange, enableScroll = true, enablePreview = true, extensions = [], previewWidth = '50%', onPreviewMode, isFullscreen, makePreviewComponent, startLinePreview = 1, // start line number
|
|
30
|
-
enableAutocompletion = false, onOpenLink, enableHighlighting = false, ...codemirrorProps } = props;
|
|
33
|
+
enableAutocompletion = false, onOpenLink, enableHighlighting = false, initialEditorState, onEditorStateChange, ...codemirrorProps } = props;
|
|
31
34
|
const full_preview = previewWidth === '100%';
|
|
32
35
|
const [value, setValue] = useState(props.value || '');
|
|
33
36
|
const [text1, setText] = useState(props.value || '');
|
|
@@ -38,10 +41,81 @@ function PodliteEditorInternal(props, ref) {
|
|
|
38
41
|
const active = useRef(full_preview ? 'preview' : 'editor');
|
|
39
42
|
const topLine = useRef(startLinePreview);
|
|
40
43
|
const $viewHeight = useRef(0);
|
|
44
|
+
const initialStateApplied = useRef(false);
|
|
41
45
|
useImperativeHandle(ref, () => ({
|
|
42
46
|
editor: codeMirror,
|
|
43
47
|
preview: preview,
|
|
44
48
|
}), [codeMirror]);
|
|
49
|
+
// Helper: serialize current fold ranges from EditorState
|
|
50
|
+
const serializeFoldedRanges = useCallback((view) => {
|
|
51
|
+
const ranges = [];
|
|
52
|
+
const folded = foldedRanges(view.state);
|
|
53
|
+
const iter = folded.iter();
|
|
54
|
+
while (iter.value) {
|
|
55
|
+
ranges.push({ from: iter.from, to: iter.to });
|
|
56
|
+
iter.next();
|
|
57
|
+
}
|
|
58
|
+
return ranges;
|
|
59
|
+
}, []);
|
|
60
|
+
// Restore editor session state once after mount
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (initialStateApplied.current || !initialEditorState)
|
|
63
|
+
return;
|
|
64
|
+
const view = codeMirror.current?.view;
|
|
65
|
+
if (!view)
|
|
66
|
+
return;
|
|
67
|
+
initialStateApplied.current = true;
|
|
68
|
+
// Restore cursor position
|
|
69
|
+
if (initialEditorState.cursorOffset != null) {
|
|
70
|
+
const offset = Math.min(initialEditorState.cursorOffset, view.state.doc.length);
|
|
71
|
+
view.dispatch({ selection: { anchor: offset } });
|
|
72
|
+
}
|
|
73
|
+
// Restore fold ranges
|
|
74
|
+
if (initialEditorState.foldedRanges && initialEditorState.foldedRanges.length > 0) {
|
|
75
|
+
const effects = initialEditorState.foldedRanges
|
|
76
|
+
.filter(r => r.from < view.state.doc.length && r.to <= view.state.doc.length)
|
|
77
|
+
.map(r => foldEffect.of({ from: r.from, to: r.to }));
|
|
78
|
+
if (effects.length > 0) {
|
|
79
|
+
view.dispatch({ effects });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Restore scroll position (after folds applied, so layout is correct)
|
|
83
|
+
// and focus the editor so the blinking cursor is visible
|
|
84
|
+
requestAnimationFrame(() => {
|
|
85
|
+
if (initialEditorState.scrollTop != null) {
|
|
86
|
+
view.scrollDOM.scrollTop = initialEditorState.scrollTop;
|
|
87
|
+
}
|
|
88
|
+
view.focus();
|
|
89
|
+
});
|
|
90
|
+
}, [initialEditorState, codeMirror.current?.view]);
|
|
91
|
+
// Expose editor state changes via callback
|
|
92
|
+
useEffect(() => {
|
|
93
|
+
if (!onEditorStateChange)
|
|
94
|
+
return;
|
|
95
|
+
const view = codeMirror.current?.view;
|
|
96
|
+
if (!view)
|
|
97
|
+
return;
|
|
98
|
+
const emitState = () => {
|
|
99
|
+
onEditorStateChange({
|
|
100
|
+
cursorOffset: view.state.selection.main.head,
|
|
101
|
+
scrollTop: view.scrollDOM.scrollTop,
|
|
102
|
+
foldedRanges: serializeFoldedRanges(view),
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
// Debounce scroll events
|
|
106
|
+
let scrollTimer = null;
|
|
107
|
+
const handleScroll = () => {
|
|
108
|
+
if (scrollTimer)
|
|
109
|
+
clearTimeout(scrollTimer);
|
|
110
|
+
scrollTimer = setTimeout(emitState, 200);
|
|
111
|
+
};
|
|
112
|
+
view.scrollDOM.addEventListener('scroll', handleScroll);
|
|
113
|
+
return () => {
|
|
114
|
+
view.scrollDOM.removeEventListener('scroll', handleScroll);
|
|
115
|
+
if (scrollTimer)
|
|
116
|
+
clearTimeout(scrollTimer);
|
|
117
|
+
};
|
|
118
|
+
}, [onEditorStateChange, codeMirror.current?.view, serializeFoldedRanges]);
|
|
45
119
|
const height = isFullscreen
|
|
46
120
|
? '100%'
|
|
47
121
|
: typeof codemirrorProps.height === 'number'
|
|
@@ -244,7 +318,32 @@ function PodliteEditorInternal(props, ref) {
|
|
|
244
318
|
event.stopPropagation();
|
|
245
319
|
},
|
|
246
320
|
});
|
|
247
|
-
|
|
321
|
+
// Track fold/unfold and cursor changes to emit editor state
|
|
322
|
+
const stateChangeListener = onEditorStateChange
|
|
323
|
+
? EditorView.updateListener.of(update => {
|
|
324
|
+
// Emit on fold/unfold (transactions with fold effects) or cursor move
|
|
325
|
+
const hasFoldChange = update.transactions.some(tr => tr.effects.some(e => e.is(foldEffect) || e.is(unfoldEffect)));
|
|
326
|
+
const hasCursorChange = update.selectionSet;
|
|
327
|
+
if (hasFoldChange || hasCursorChange) {
|
|
328
|
+
onEditorStateChange({
|
|
329
|
+
cursorOffset: update.state.selection.main.head,
|
|
330
|
+
scrollTop: update.view.scrollDOM.scrollTop,
|
|
331
|
+
foldedRanges: serializeFoldedRanges(update.view),
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
})
|
|
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
|
+
];
|
|
248
347
|
if (onOpenLink) {
|
|
249
348
|
extensionsData.push(modKeyClass, openStyledLinkOnClick, EditorView.theme({
|
|
250
349
|
'&.cm-editor.cm-mod-pressed .cm-clickable-link:hover': {
|
|
@@ -328,6 +427,14 @@ function PodliteEditorInternal(props, ref) {
|
|
|
328
427
|
const handleChange = (value, viewUpdate) => {
|
|
329
428
|
setText(value);
|
|
330
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
|
+
}
|
|
331
438
|
};
|
|
332
439
|
useEffect(() => {
|
|
333
440
|
if (preview.current) {
|
|
@@ -479,7 +586,7 @@ function PodliteEditorInternal(props, ref) {
|
|
|
479
586
|
};
|
|
480
587
|
const conentView = (React.createElement("div", { className: `podlite-editor-content`, style: { height: codemirrorProps?.height } },
|
|
481
588
|
React.createElement("div", { className: `podlite-editor-content-editor`, ref: containerEditor },
|
|
482
|
-
React.createElement(CodeMirror, { theme: defaultTheme, ...{ ...codemirrorProps, ...{ basicSetup: { defaultKeymap: false } } }, className: `podlite-editor-inner`, extensions: extensionsData, height: height, ref: codeMirror, onChange: handleChange })),
|
|
589
|
+
React.createElement(CodeMirror, { theme: defaultTheme, indentWithTab: false, ...{ ...codemirrorProps, ...{ basicSetup: { defaultKeymap: false } } }, className: `podlite-editor-inner`, extensions: extensionsData, height: height, ref: codeMirror, onChange: handleChange })),
|
|
483
590
|
enablePreview && (React.createElement("div", { className: clsPreview, style: { overflow: full_preview ? 'visible' : 'hidden' }, ref: preview }, previewContent()))));
|
|
484
591
|
return (React.createElement("div", null,
|
|
485
592
|
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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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { foldService } from '@codemirror/language';
|
|
2
|
+
// =begin Name ... =end Name
|
|
3
|
+
const beginRe = /^(\s*)=begin\s+(\S+)/;
|
|
4
|
+
const endRe = /^(\s*)=end\s+(\S+)/;
|
|
5
|
+
// =headN (level 1-6)
|
|
6
|
+
const headRe = /^(\s*)=head(\d+)\s/;
|
|
7
|
+
// Parse =begin line, return block name or null
|
|
8
|
+
function parseBeginLine(lineText) {
|
|
9
|
+
const m = lineText.match(beginRe);
|
|
10
|
+
return m ? m[2] ?? null : null;
|
|
11
|
+
}
|
|
12
|
+
// Fold =begin Name ... =end Name: fold from end of =begin line to start of =end line
|
|
13
|
+
function foldBeginEnd(state, lineStart) {
|
|
14
|
+
const line = state.doc.lineAt(lineStart);
|
|
15
|
+
const blockName = parseBeginLine(line.text);
|
|
16
|
+
if (!blockName)
|
|
17
|
+
return null;
|
|
18
|
+
// Search forward for matching =end
|
|
19
|
+
for (let i = line.number + 1; i <= state.doc.lines; i++) {
|
|
20
|
+
const candidate = state.doc.line(i);
|
|
21
|
+
const m = candidate.text.match(endRe);
|
|
22
|
+
if (m && m[2] === blockName) {
|
|
23
|
+
// Fold from end of =begin line to start of =end line
|
|
24
|
+
if (line.to >= candidate.from)
|
|
25
|
+
return null;
|
|
26
|
+
return { from: line.to, to: candidate.from };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
// Fold =headN: from end of heading line to start of next heading of same or higher level (or EOF)
|
|
32
|
+
function foldHeadSection(state, lineStart) {
|
|
33
|
+
const line = state.doc.lineAt(lineStart);
|
|
34
|
+
const m = line.text.match(headRe);
|
|
35
|
+
if (!m)
|
|
36
|
+
return null;
|
|
37
|
+
const level = parseInt(m[2] ?? '1', 10);
|
|
38
|
+
// Search forward for next heading of same or higher level
|
|
39
|
+
let foldEnd = state.doc.length;
|
|
40
|
+
for (let i = line.number + 1; i <= state.doc.lines; i++) {
|
|
41
|
+
const candidate = state.doc.line(i);
|
|
42
|
+
const hm = candidate.text.match(headRe);
|
|
43
|
+
if (hm) {
|
|
44
|
+
const candidateLevel = parseInt(hm[2] ?? '1', 10);
|
|
45
|
+
if (candidateLevel <= level) {
|
|
46
|
+
foldEnd = candidate.from;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Nothing to fold if heading is last line or only whitespace follows
|
|
52
|
+
if (line.to >= foldEnd)
|
|
53
|
+
return null;
|
|
54
|
+
// Trim trailing blank lines from fold range
|
|
55
|
+
let endPos = foldEnd;
|
|
56
|
+
while (endPos > line.to) {
|
|
57
|
+
const prevLine = state.doc.lineAt(endPos - 1);
|
|
58
|
+
if (prevLine.text.trim() !== '') {
|
|
59
|
+
endPos = prevLine.to;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
endPos = prevLine.from;
|
|
63
|
+
}
|
|
64
|
+
if (line.to >= endPos)
|
|
65
|
+
return null;
|
|
66
|
+
return { from: line.to, to: endPos };
|
|
67
|
+
}
|
|
68
|
+
export const podliteFoldService = foldService.of((state, lineStart) => foldBeginEnd(state, lineStart) ?? foldHeadSection(state, lineStart));
|
|
69
|
+
//# sourceMappingURL=foldPodlite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foldPodlite.js","sourceRoot":"","sources":["../src/foldPodlite.ts"],"names":[],"mappings":"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"}
|
package/esm/index.d.ts
CHANGED
|
@@ -4,4 +4,6 @@ import HighlightedCode from './HighlightedCode';
|
|
|
4
4
|
export { Editor2 as Editor2 };
|
|
5
5
|
export { WindowWrapper as WindowWrapper };
|
|
6
6
|
export { HighlightedCode as HighlightedCode };
|
|
7
|
+
export type { EditorSessionState } from './types';
|
|
8
|
+
export type { ConverterResult, IPodliteEditor, PodliteEditorRef } from './Editor';
|
|
7
9
|
export default Editor2;
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,aAAa,MAAM,WAAW,CAAA;AACrC,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,CAAA;AAC7B,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,CAAA;AACzC,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,aAAa,MAAM,WAAW,CAAA;AACrC,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,CAAA;AAC7B,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,CAAA;AACzC,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,CAAA;AAG7C,eAAe,OAAO,CAAA"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { keymap } from '@codemirror/view';
|
|
2
|
+
// Regex: =item with optional level digit(s) + separator
|
|
3
|
+
const itemRe = /^(\s*=item)(\d*)([ \t])/;
|
|
4
|
+
// Detect list type prefix at start of content
|
|
5
|
+
const prefixRe = /^(\[ \]|\[x\]|\[X\]|#)\s*/;
|
|
6
|
+
// Item is "empty" if content is nothing or only a type prefix
|
|
7
|
+
const emptyContentRe = /^(\[ \]|\[x\]|\[X\]|#)?\s*$/;
|
|
8
|
+
// Parse, Don't Validate — returns typed structure or null
|
|
9
|
+
function parseItemLine(lineText, lineFrom) {
|
|
10
|
+
const m = lineText.match(itemRe);
|
|
11
|
+
if (!m)
|
|
12
|
+
return null;
|
|
13
|
+
const prefix = m[1] ?? ''; // "\s*=item"
|
|
14
|
+
const digits = m[2] ?? ''; // level digits, may be empty
|
|
15
|
+
const sep = m[3] ?? ' '; // separator char
|
|
16
|
+
const indent = prefix.slice(0, prefix.length - 5); // whitespace before "=item"
|
|
17
|
+
const level = digits === '' ? 1 : parseInt(digits, 10);
|
|
18
|
+
const marker = `${indent}=item${digits}`;
|
|
19
|
+
return {
|
|
20
|
+
indent,
|
|
21
|
+
marker,
|
|
22
|
+
level,
|
|
23
|
+
separator: sep,
|
|
24
|
+
markerEnd: lineFrom + prefix.length + digits.length + sep.length,
|
|
25
|
+
content: lineText.slice(prefix.length + digits.length + sep.length),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
// Get the prefix to insert for the new item (checked → unchecked, # → #, none → '')
|
|
29
|
+
function resolveNewPrefix(content) {
|
|
30
|
+
const m = content.trim().match(prefixRe);
|
|
31
|
+
if (!m)
|
|
32
|
+
return '';
|
|
33
|
+
const prefix = m[1] ?? '';
|
|
34
|
+
if (prefix === '[x]' || prefix === '[X]' || prefix === '[ ]')
|
|
35
|
+
return '[ ] ';
|
|
36
|
+
if (prefix === '#')
|
|
37
|
+
return '# ';
|
|
38
|
+
return '';
|
|
39
|
+
}
|
|
40
|
+
// ─── List Continuation on Enter ────────────────────────────────────────────
|
|
41
|
+
export const listContinuationKeymap = keymap.of([
|
|
42
|
+
{
|
|
43
|
+
key: 'Enter',
|
|
44
|
+
run: (view) => {
|
|
45
|
+
const { state } = view;
|
|
46
|
+
const { head, from, to } = state.selection.main;
|
|
47
|
+
// Only single cursor (no selection)
|
|
48
|
+
if (from !== to)
|
|
49
|
+
return false;
|
|
50
|
+
const line = state.doc.lineAt(head);
|
|
51
|
+
const item = parseItemLine(line.text, line.from);
|
|
52
|
+
if (!item)
|
|
53
|
+
return false;
|
|
54
|
+
// Cursor inside marker → default
|
|
55
|
+
if (head < item.markerEnd)
|
|
56
|
+
return false;
|
|
57
|
+
const trimmedContent = item.content.trim();
|
|
58
|
+
// Empty item (including prefix-only like "[ ]" or "#") → remove marker, exit list
|
|
59
|
+
if (emptyContentRe.test(trimmedContent)) {
|
|
60
|
+
view.dispatch({
|
|
61
|
+
changes: { from: line.from, to: line.to, insert: '' },
|
|
62
|
+
selection: { anchor: line.from },
|
|
63
|
+
});
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
// Determine type prefix for new item
|
|
67
|
+
const newPrefix = resolveNewPrefix(trimmedContent);
|
|
68
|
+
// Split: text before cursor stays, text after → new =itemN [prefix]
|
|
69
|
+
const textAfterCursor = line.text.slice(head - line.from);
|
|
70
|
+
const newItem = `\n${item.marker} ${newPrefix}`;
|
|
71
|
+
view.dispatch({
|
|
72
|
+
changes: {
|
|
73
|
+
from: head,
|
|
74
|
+
to: line.to,
|
|
75
|
+
insert: newItem + textAfterCursor.trimStart(),
|
|
76
|
+
},
|
|
77
|
+
selection: {
|
|
78
|
+
anchor: head + newItem.length,
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
return true;
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
]);
|
|
85
|
+
// ─── Tab / Shift-Tab: change item level ────────────────────────────────────
|
|
86
|
+
const maxItemLevel = 6;
|
|
87
|
+
const minItemLevel = 1;
|
|
88
|
+
const indentPerLevel = ' '; // 2 spaces per level
|
|
89
|
+
function changeItemLevel(view, delta) {
|
|
90
|
+
const { state } = view;
|
|
91
|
+
const { from, to } = state.selection.main;
|
|
92
|
+
const startLine = state.doc.lineAt(from);
|
|
93
|
+
const endLine = state.doc.lineAt(to);
|
|
94
|
+
const changes = [];
|
|
95
|
+
for (let lineNum = startLine.number; lineNum <= endLine.number; lineNum++) {
|
|
96
|
+
const line = state.doc.line(lineNum);
|
|
97
|
+
const item = parseItemLine(line.text, line.from);
|
|
98
|
+
if (!item)
|
|
99
|
+
continue;
|
|
100
|
+
const newLevel = item.level + delta;
|
|
101
|
+
if (newLevel < minItemLevel || newLevel > maxItemLevel)
|
|
102
|
+
continue;
|
|
103
|
+
// Adjust indentation: each level = 4 spaces
|
|
104
|
+
const newIndent = delta === 1 ? item.indent + indentPerLevel : item.indent.slice(indentPerLevel.length);
|
|
105
|
+
const oldMarkerLen = item.markerEnd - line.from;
|
|
106
|
+
const newMarker = `${newIndent}=item${newLevel}${item.separator}`;
|
|
107
|
+
changes.push({ from: line.from, to: line.from + oldMarkerLen, insert: newMarker });
|
|
108
|
+
}
|
|
109
|
+
if (changes.length === 0)
|
|
110
|
+
return false;
|
|
111
|
+
view.dispatch({ changes });
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
export const itemLevelKeymap = keymap.of([
|
|
115
|
+
{
|
|
116
|
+
key: 'Tab',
|
|
117
|
+
run: (view) => changeItemLevel(view, 1),
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
key: 'Shift-Tab',
|
|
121
|
+
run: (view) => changeItemLevel(view, -1),
|
|
122
|
+
},
|
|
123
|
+
]);
|
|
124
|
+
//# sourceMappingURL=listContinuation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listContinuation.js","sourceRoot":"","sources":["../src/listContinuation.ts"],"names":[],"mappings":"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"}
|
package/esm/types.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare type FoldRange = {
|
|
2
|
+
readonly from: number;
|
|
3
|
+
readonly to: number;
|
|
4
|
+
};
|
|
5
|
+
export declare type EditorSessionState = {
|
|
6
|
+
readonly cursorOffset?: number;
|
|
7
|
+
readonly scrollTop?: number;
|
|
8
|
+
readonly foldedRanges?: ReadonlyArray<FoldRange>;
|
|
9
|
+
readonly isPreviewMode?: boolean;
|
|
10
|
+
readonly isHalfPreviewMode?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
package/esm/types.js
ADDED
package/esm/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/lib/Editor.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ViewUpdate, ReactCodeMirrorProps, ReactCodeMirrorRef } from '@uiw/react-codemirror';
|
|
3
|
+
import type { EditorSessionState } from './types';
|
|
3
4
|
export interface ConverterResult {
|
|
4
5
|
errors?: any;
|
|
5
6
|
result: JSX.Element | string;
|
|
@@ -27,6 +28,10 @@ export interface IPodliteEditor extends ReactCodeMirrorProps {
|
|
|
27
28
|
onOpenLink?: (url: string) => void;
|
|
28
29
|
/** Enable code highlighting */
|
|
29
30
|
enableHighlighting?: boolean;
|
|
31
|
+
/** Initial editor session state to restore (cursor, scroll, folds) */
|
|
32
|
+
initialEditorState?: EditorSessionState;
|
|
33
|
+
/** Called when editor state changes (cursor move, scroll, fold/unfold) */
|
|
34
|
+
onEditorStateChange?: (state: EditorSessionState) => void;
|
|
30
35
|
}
|
|
31
36
|
export interface PodliteEditorRef {
|
|
32
37
|
editor: React.RefObject<ReactCodeMirrorRef>;
|
package/lib/Editor.js
CHANGED
|
@@ -10,9 +10,12 @@ const podlite_2 = require("./podlite");
|
|
|
10
10
|
const theme_1 = require("./theme");
|
|
11
11
|
const view_1 = require("@codemirror/view");
|
|
12
12
|
const commands_1 = require("@codemirror/commands");
|
|
13
|
+
const language_1 = require("@codemirror/language");
|
|
13
14
|
const react_is_1 = require("react-is");
|
|
14
15
|
const autocomplete_1 = require("@codemirror/autocomplete");
|
|
15
16
|
const dict_1 = (0, tslib_1.__importDefault)(require("./dict"));
|
|
17
|
+
const listContinuation_1 = require("./listContinuation");
|
|
18
|
+
const foldPodlite_1 = require("./foldPodlite");
|
|
16
19
|
const HighlightedCode_1 = (0, tslib_1.__importDefault)(require("./HighlightedCode"));
|
|
17
20
|
function useDebouncedEffect(fn, deps, time) {
|
|
18
21
|
const dependencies = [...deps, time];
|
|
@@ -30,7 +33,7 @@ function PodliteEditorInternal(props, ref) {
|
|
|
30
33
|
if (!isBrowser)
|
|
31
34
|
return null;
|
|
32
35
|
const { onChange, enableScroll = true, enablePreview = true, extensions = [], previewWidth = '50%', onPreviewMode, isFullscreen, makePreviewComponent, startLinePreview = 1, // start line number
|
|
33
|
-
enableAutocompletion = false, onOpenLink, enableHighlighting = false, ...codemirrorProps } = props;
|
|
36
|
+
enableAutocompletion = false, onOpenLink, enableHighlighting = false, initialEditorState, onEditorStateChange, ...codemirrorProps } = props;
|
|
34
37
|
const full_preview = previewWidth === '100%';
|
|
35
38
|
const [value, setValue] = (0, react_1.useState)(props.value || '');
|
|
36
39
|
const [text1, setText] = (0, react_1.useState)(props.value || '');
|
|
@@ -41,10 +44,81 @@ function PodliteEditorInternal(props, ref) {
|
|
|
41
44
|
const active = (0, react_1.useRef)(full_preview ? 'preview' : 'editor');
|
|
42
45
|
const topLine = (0, react_1.useRef)(startLinePreview);
|
|
43
46
|
const $viewHeight = (0, react_1.useRef)(0);
|
|
47
|
+
const initialStateApplied = (0, react_1.useRef)(false);
|
|
44
48
|
(0, react_1.useImperativeHandle)(ref, () => ({
|
|
45
49
|
editor: codeMirror,
|
|
46
50
|
preview: preview,
|
|
47
51
|
}), [codeMirror]);
|
|
52
|
+
// Helper: serialize current fold ranges from EditorState
|
|
53
|
+
const serializeFoldedRanges = (0, react_1.useCallback)((view) => {
|
|
54
|
+
const ranges = [];
|
|
55
|
+
const folded = (0, language_1.foldedRanges)(view.state);
|
|
56
|
+
const iter = folded.iter();
|
|
57
|
+
while (iter.value) {
|
|
58
|
+
ranges.push({ from: iter.from, to: iter.to });
|
|
59
|
+
iter.next();
|
|
60
|
+
}
|
|
61
|
+
return ranges;
|
|
62
|
+
}, []);
|
|
63
|
+
// Restore editor session state once after mount
|
|
64
|
+
(0, react_1.useEffect)(() => {
|
|
65
|
+
if (initialStateApplied.current || !initialEditorState)
|
|
66
|
+
return;
|
|
67
|
+
const view = codeMirror.current?.view;
|
|
68
|
+
if (!view)
|
|
69
|
+
return;
|
|
70
|
+
initialStateApplied.current = true;
|
|
71
|
+
// Restore cursor position
|
|
72
|
+
if (initialEditorState.cursorOffset != null) {
|
|
73
|
+
const offset = Math.min(initialEditorState.cursorOffset, view.state.doc.length);
|
|
74
|
+
view.dispatch({ selection: { anchor: offset } });
|
|
75
|
+
}
|
|
76
|
+
// Restore fold ranges
|
|
77
|
+
if (initialEditorState.foldedRanges && initialEditorState.foldedRanges.length > 0) {
|
|
78
|
+
const effects = initialEditorState.foldedRanges
|
|
79
|
+
.filter(r => r.from < view.state.doc.length && r.to <= view.state.doc.length)
|
|
80
|
+
.map(r => language_1.foldEffect.of({ from: r.from, to: r.to }));
|
|
81
|
+
if (effects.length > 0) {
|
|
82
|
+
view.dispatch({ effects });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Restore scroll position (after folds applied, so layout is correct)
|
|
86
|
+
// and focus the editor so the blinking cursor is visible
|
|
87
|
+
requestAnimationFrame(() => {
|
|
88
|
+
if (initialEditorState.scrollTop != null) {
|
|
89
|
+
view.scrollDOM.scrollTop = initialEditorState.scrollTop;
|
|
90
|
+
}
|
|
91
|
+
view.focus();
|
|
92
|
+
});
|
|
93
|
+
}, [initialEditorState, codeMirror.current?.view]);
|
|
94
|
+
// Expose editor state changes via callback
|
|
95
|
+
(0, react_1.useEffect)(() => {
|
|
96
|
+
if (!onEditorStateChange)
|
|
97
|
+
return;
|
|
98
|
+
const view = codeMirror.current?.view;
|
|
99
|
+
if (!view)
|
|
100
|
+
return;
|
|
101
|
+
const emitState = () => {
|
|
102
|
+
onEditorStateChange({
|
|
103
|
+
cursorOffset: view.state.selection.main.head,
|
|
104
|
+
scrollTop: view.scrollDOM.scrollTop,
|
|
105
|
+
foldedRanges: serializeFoldedRanges(view),
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
// Debounce scroll events
|
|
109
|
+
let scrollTimer = null;
|
|
110
|
+
const handleScroll = () => {
|
|
111
|
+
if (scrollTimer)
|
|
112
|
+
clearTimeout(scrollTimer);
|
|
113
|
+
scrollTimer = setTimeout(emitState, 200);
|
|
114
|
+
};
|
|
115
|
+
view.scrollDOM.addEventListener('scroll', handleScroll);
|
|
116
|
+
return () => {
|
|
117
|
+
view.scrollDOM.removeEventListener('scroll', handleScroll);
|
|
118
|
+
if (scrollTimer)
|
|
119
|
+
clearTimeout(scrollTimer);
|
|
120
|
+
};
|
|
121
|
+
}, [onEditorStateChange, codeMirror.current?.view, serializeFoldedRanges]);
|
|
48
122
|
const height = isFullscreen
|
|
49
123
|
? '100%'
|
|
50
124
|
: typeof codemirrorProps.height === 'number'
|
|
@@ -247,7 +321,32 @@ function PodliteEditorInternal(props, ref) {
|
|
|
247
321
|
event.stopPropagation();
|
|
248
322
|
},
|
|
249
323
|
});
|
|
250
|
-
|
|
324
|
+
// Track fold/unfold and cursor changes to emit editor state
|
|
325
|
+
const stateChangeListener = onEditorStateChange
|
|
326
|
+
? view_1.EditorView.updateListener.of(update => {
|
|
327
|
+
// Emit on fold/unfold (transactions with fold effects) or cursor move
|
|
328
|
+
const hasFoldChange = update.transactions.some(tr => tr.effects.some(e => e.is(language_1.foldEffect) || e.is(language_1.unfoldEffect)));
|
|
329
|
+
const hasCursorChange = update.selectionSet;
|
|
330
|
+
if (hasFoldChange || hasCursorChange) {
|
|
331
|
+
onEditorStateChange({
|
|
332
|
+
cursorOffset: update.state.selection.main.head,
|
|
333
|
+
scrollTop: update.view.scrollDOM.scrollTop,
|
|
334
|
+
foldedRanges: serializeFoldedRanges(update.view),
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
})
|
|
338
|
+
: [];
|
|
339
|
+
let extensionsData = [
|
|
340
|
+
(0, podlite_2.podliteLang)(),
|
|
341
|
+
view_1.EditorView.lineWrapping,
|
|
342
|
+
foldPodlite_1.podliteFoldService,
|
|
343
|
+
(0, language_1.foldGutter)(),
|
|
344
|
+
view_1.keymap.of(language_1.foldKeymap),
|
|
345
|
+
stateChangeListener,
|
|
346
|
+
listContinuation_1.itemLevelKeymap,
|
|
347
|
+
listContinuation_1.listContinuationKeymap,
|
|
348
|
+
preventToggleComment,
|
|
349
|
+
];
|
|
251
350
|
if (onOpenLink) {
|
|
252
351
|
extensionsData.push(modKeyClass, openStyledLinkOnClick, view_1.EditorView.theme({
|
|
253
352
|
'&.cm-editor.cm-mod-pressed .cm-clickable-link:hover': {
|
|
@@ -331,6 +430,14 @@ function PodliteEditorInternal(props, ref) {
|
|
|
331
430
|
const handleChange = (value, viewUpdate) => {
|
|
332
431
|
setText(value);
|
|
333
432
|
onChange && onChange(value, viewUpdate);
|
|
433
|
+
if (onEditorStateChange) {
|
|
434
|
+
const view = viewUpdate.view;
|
|
435
|
+
onEditorStateChange({
|
|
436
|
+
cursorOffset: view.state.selection.main.head,
|
|
437
|
+
scrollTop: view.scrollDOM.scrollTop,
|
|
438
|
+
foldedRanges: serializeFoldedRanges(view),
|
|
439
|
+
});
|
|
440
|
+
}
|
|
334
441
|
};
|
|
335
442
|
(0, react_1.useEffect)(() => {
|
|
336
443
|
if (preview.current) {
|
|
@@ -482,7 +589,7 @@ function PodliteEditorInternal(props, ref) {
|
|
|
482
589
|
};
|
|
483
590
|
const conentView = (react_1.default.createElement("div", { className: `podlite-editor-content`, style: { height: codemirrorProps?.height } },
|
|
484
591
|
react_1.default.createElement("div", { className: `podlite-editor-content-editor`, ref: containerEditor },
|
|
485
|
-
react_1.default.createElement(react_codemirror_1.default, { theme: theme_1.defaultTheme, ...{ ...codemirrorProps, ...{ basicSetup: { defaultKeymap: false } } }, className: `podlite-editor-inner`, extensions: extensionsData, height: height, ref: codeMirror, onChange: handleChange })),
|
|
592
|
+
react_1.default.createElement(react_codemirror_1.default, { theme: theme_1.defaultTheme, indentWithTab: false, ...{ ...codemirrorProps, ...{ basicSetup: { defaultKeymap: false } } }, className: `podlite-editor-inner`, extensions: extensionsData, height: height, ref: codeMirror, onChange: handleChange })),
|
|
486
593
|
enablePreview && (react_1.default.createElement("div", { className: clsPreview, style: { overflow: full_preview ? 'visible' : 'hidden' }, ref: preview }, previewContent()))));
|
|
487
594
|
return (react_1.default.createElement("div", null,
|
|
488
595
|
react_1.default.createElement("div", { className: cls, ref: container }, conentView),
|
package/lib/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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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.podliteFoldService = void 0;
|
|
4
|
+
const language_1 = require("@codemirror/language");
|
|
5
|
+
// =begin Name ... =end Name
|
|
6
|
+
const beginRe = /^(\s*)=begin\s+(\S+)/;
|
|
7
|
+
const endRe = /^(\s*)=end\s+(\S+)/;
|
|
8
|
+
// =headN (level 1-6)
|
|
9
|
+
const headRe = /^(\s*)=head(\d+)\s/;
|
|
10
|
+
// Parse =begin line, return block name or null
|
|
11
|
+
function parseBeginLine(lineText) {
|
|
12
|
+
const m = lineText.match(beginRe);
|
|
13
|
+
return m ? m[2] ?? null : null;
|
|
14
|
+
}
|
|
15
|
+
// Fold =begin Name ... =end Name: fold from end of =begin line to start of =end line
|
|
16
|
+
function foldBeginEnd(state, lineStart) {
|
|
17
|
+
const line = state.doc.lineAt(lineStart);
|
|
18
|
+
const blockName = parseBeginLine(line.text);
|
|
19
|
+
if (!blockName)
|
|
20
|
+
return null;
|
|
21
|
+
// Search forward for matching =end
|
|
22
|
+
for (let i = line.number + 1; i <= state.doc.lines; i++) {
|
|
23
|
+
const candidate = state.doc.line(i);
|
|
24
|
+
const m = candidate.text.match(endRe);
|
|
25
|
+
if (m && m[2] === blockName) {
|
|
26
|
+
// Fold from end of =begin line to start of =end line
|
|
27
|
+
if (line.to >= candidate.from)
|
|
28
|
+
return null;
|
|
29
|
+
return { from: line.to, to: candidate.from };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
// Fold =headN: from end of heading line to start of next heading of same or higher level (or EOF)
|
|
35
|
+
function foldHeadSection(state, lineStart) {
|
|
36
|
+
const line = state.doc.lineAt(lineStart);
|
|
37
|
+
const m = line.text.match(headRe);
|
|
38
|
+
if (!m)
|
|
39
|
+
return null;
|
|
40
|
+
const level = parseInt(m[2] ?? '1', 10);
|
|
41
|
+
// Search forward for next heading of same or higher level
|
|
42
|
+
let foldEnd = state.doc.length;
|
|
43
|
+
for (let i = line.number + 1; i <= state.doc.lines; i++) {
|
|
44
|
+
const candidate = state.doc.line(i);
|
|
45
|
+
const hm = candidate.text.match(headRe);
|
|
46
|
+
if (hm) {
|
|
47
|
+
const candidateLevel = parseInt(hm[2] ?? '1', 10);
|
|
48
|
+
if (candidateLevel <= level) {
|
|
49
|
+
foldEnd = candidate.from;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Nothing to fold if heading is last line or only whitespace follows
|
|
55
|
+
if (line.to >= foldEnd)
|
|
56
|
+
return null;
|
|
57
|
+
// Trim trailing blank lines from fold range
|
|
58
|
+
let endPos = foldEnd;
|
|
59
|
+
while (endPos > line.to) {
|
|
60
|
+
const prevLine = state.doc.lineAt(endPos - 1);
|
|
61
|
+
if (prevLine.text.trim() !== '') {
|
|
62
|
+
endPos = prevLine.to;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
endPos = prevLine.from;
|
|
66
|
+
}
|
|
67
|
+
if (line.to >= endPos)
|
|
68
|
+
return null;
|
|
69
|
+
return { from: line.to, to: endPos };
|
|
70
|
+
}
|
|
71
|
+
exports.podliteFoldService = language_1.foldService.of((state, lineStart) => foldBeginEnd(state, lineStart) ?? foldHeadSection(state, lineStart));
|
|
72
|
+
//# sourceMappingURL=foldPodlite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foldPodlite.js","sourceRoot":"","sources":["../src/foldPodlite.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -4,4 +4,6 @@ import HighlightedCode from './HighlightedCode';
|
|
|
4
4
|
export { Editor2 as Editor2 };
|
|
5
5
|
export { WindowWrapper as WindowWrapper };
|
|
6
6
|
export { HighlightedCode as HighlightedCode };
|
|
7
|
+
export type { EditorSessionState } from './types';
|
|
8
|
+
export type { ConverterResult, IPodliteEditor, PodliteEditorRef } from './Editor';
|
|
7
9
|
export default Editor2;
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;AAAA,mEAA8B;AAGV,kBAHb,gBAAO,CAGa;AAF3B,qEAAqC;AAGX,wBAHnB,iBAAa,CAGmB;AAFvC,qFAA+C;AAGnB,0BAHrB,yBAAe,CAGqB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;AAAA,mEAA8B;AAGV,kBAHb,gBAAO,CAGa;AAF3B,qEAAqC;AAGX,wBAHnB,iBAAa,CAGmB;AAFvC,qFAA+C;AAGnB,0BAHrB,yBAAe,CAGqB;AAG3C,kBAAe,gBAAO,CAAA"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.itemLevelKeymap = exports.listContinuationKeymap = void 0;
|
|
4
|
+
const view_1 = require("@codemirror/view");
|
|
5
|
+
// Regex: =item with optional level digit(s) + separator
|
|
6
|
+
const itemRe = /^(\s*=item)(\d*)([ \t])/;
|
|
7
|
+
// Detect list type prefix at start of content
|
|
8
|
+
const prefixRe = /^(\[ \]|\[x\]|\[X\]|#)\s*/;
|
|
9
|
+
// Item is "empty" if content is nothing or only a type prefix
|
|
10
|
+
const emptyContentRe = /^(\[ \]|\[x\]|\[X\]|#)?\s*$/;
|
|
11
|
+
// Parse, Don't Validate — returns typed structure or null
|
|
12
|
+
function parseItemLine(lineText, lineFrom) {
|
|
13
|
+
const m = lineText.match(itemRe);
|
|
14
|
+
if (!m)
|
|
15
|
+
return null;
|
|
16
|
+
const prefix = m[1] ?? ''; // "\s*=item"
|
|
17
|
+
const digits = m[2] ?? ''; // level digits, may be empty
|
|
18
|
+
const sep = m[3] ?? ' '; // separator char
|
|
19
|
+
const indent = prefix.slice(0, prefix.length - 5); // whitespace before "=item"
|
|
20
|
+
const level = digits === '' ? 1 : parseInt(digits, 10);
|
|
21
|
+
const marker = `${indent}=item${digits}`;
|
|
22
|
+
return {
|
|
23
|
+
indent,
|
|
24
|
+
marker,
|
|
25
|
+
level,
|
|
26
|
+
separator: sep,
|
|
27
|
+
markerEnd: lineFrom + prefix.length + digits.length + sep.length,
|
|
28
|
+
content: lineText.slice(prefix.length + digits.length + sep.length),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
// Get the prefix to insert for the new item (checked → unchecked, # → #, none → '')
|
|
32
|
+
function resolveNewPrefix(content) {
|
|
33
|
+
const m = content.trim().match(prefixRe);
|
|
34
|
+
if (!m)
|
|
35
|
+
return '';
|
|
36
|
+
const prefix = m[1] ?? '';
|
|
37
|
+
if (prefix === '[x]' || prefix === '[X]' || prefix === '[ ]')
|
|
38
|
+
return '[ ] ';
|
|
39
|
+
if (prefix === '#')
|
|
40
|
+
return '# ';
|
|
41
|
+
return '';
|
|
42
|
+
}
|
|
43
|
+
// ─── List Continuation on Enter ────────────────────────────────────────────
|
|
44
|
+
exports.listContinuationKeymap = view_1.keymap.of([
|
|
45
|
+
{
|
|
46
|
+
key: 'Enter',
|
|
47
|
+
run: (view) => {
|
|
48
|
+
const { state } = view;
|
|
49
|
+
const { head, from, to } = state.selection.main;
|
|
50
|
+
// Only single cursor (no selection)
|
|
51
|
+
if (from !== to)
|
|
52
|
+
return false;
|
|
53
|
+
const line = state.doc.lineAt(head);
|
|
54
|
+
const item = parseItemLine(line.text, line.from);
|
|
55
|
+
if (!item)
|
|
56
|
+
return false;
|
|
57
|
+
// Cursor inside marker → default
|
|
58
|
+
if (head < item.markerEnd)
|
|
59
|
+
return false;
|
|
60
|
+
const trimmedContent = item.content.trim();
|
|
61
|
+
// Empty item (including prefix-only like "[ ]" or "#") → remove marker, exit list
|
|
62
|
+
if (emptyContentRe.test(trimmedContent)) {
|
|
63
|
+
view.dispatch({
|
|
64
|
+
changes: { from: line.from, to: line.to, insert: '' },
|
|
65
|
+
selection: { anchor: line.from },
|
|
66
|
+
});
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
// Determine type prefix for new item
|
|
70
|
+
const newPrefix = resolveNewPrefix(trimmedContent);
|
|
71
|
+
// Split: text before cursor stays, text after → new =itemN [prefix]
|
|
72
|
+
const textAfterCursor = line.text.slice(head - line.from);
|
|
73
|
+
const newItem = `\n${item.marker} ${newPrefix}`;
|
|
74
|
+
view.dispatch({
|
|
75
|
+
changes: {
|
|
76
|
+
from: head,
|
|
77
|
+
to: line.to,
|
|
78
|
+
insert: newItem + textAfterCursor.trimStart(),
|
|
79
|
+
},
|
|
80
|
+
selection: {
|
|
81
|
+
anchor: head + newItem.length,
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
return true;
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
]);
|
|
88
|
+
// ─── Tab / Shift-Tab: change item level ────────────────────────────────────
|
|
89
|
+
const maxItemLevel = 6;
|
|
90
|
+
const minItemLevel = 1;
|
|
91
|
+
const indentPerLevel = ' '; // 2 spaces per level
|
|
92
|
+
function changeItemLevel(view, delta) {
|
|
93
|
+
const { state } = view;
|
|
94
|
+
const { from, to } = state.selection.main;
|
|
95
|
+
const startLine = state.doc.lineAt(from);
|
|
96
|
+
const endLine = state.doc.lineAt(to);
|
|
97
|
+
const changes = [];
|
|
98
|
+
for (let lineNum = startLine.number; lineNum <= endLine.number; lineNum++) {
|
|
99
|
+
const line = state.doc.line(lineNum);
|
|
100
|
+
const item = parseItemLine(line.text, line.from);
|
|
101
|
+
if (!item)
|
|
102
|
+
continue;
|
|
103
|
+
const newLevel = item.level + delta;
|
|
104
|
+
if (newLevel < minItemLevel || newLevel > maxItemLevel)
|
|
105
|
+
continue;
|
|
106
|
+
// Adjust indentation: each level = 4 spaces
|
|
107
|
+
const newIndent = delta === 1 ? item.indent + indentPerLevel : item.indent.slice(indentPerLevel.length);
|
|
108
|
+
const oldMarkerLen = item.markerEnd - line.from;
|
|
109
|
+
const newMarker = `${newIndent}=item${newLevel}${item.separator}`;
|
|
110
|
+
changes.push({ from: line.from, to: line.from + oldMarkerLen, insert: newMarker });
|
|
111
|
+
}
|
|
112
|
+
if (changes.length === 0)
|
|
113
|
+
return false;
|
|
114
|
+
view.dispatch({ changes });
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
exports.itemLevelKeymap = view_1.keymap.of([
|
|
118
|
+
{
|
|
119
|
+
key: 'Tab',
|
|
120
|
+
run: (view) => changeItemLevel(view, 1),
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
key: 'Shift-Tab',
|
|
124
|
+
run: (view) => changeItemLevel(view, -1),
|
|
125
|
+
},
|
|
126
|
+
]);
|
|
127
|
+
//# sourceMappingURL=listContinuation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listContinuation.js","sourceRoot":"","sources":["../src/listContinuation.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare type FoldRange = {
|
|
2
|
+
readonly from: number;
|
|
3
|
+
readonly to: number;
|
|
4
|
+
};
|
|
5
|
+
export declare type EditorSessionState = {
|
|
6
|
+
readonly cursorOffset?: number;
|
|
7
|
+
readonly scrollTop?: number;
|
|
8
|
+
readonly foldedRanges?: ReadonlyArray<FoldRange>;
|
|
9
|
+
readonly isPreviewMode?: boolean;
|
|
10
|
+
readonly isHalfPreviewMode?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
package/lib/types.js
ADDED
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,10 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@podlite/editor-react",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.0.41",
|
|
4
|
+
"description": "Rich text editor React component for Podlite — syntax highlighting, live preview, CodeMirror 6",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"typings": "./lib/index.d.ts",
|
|
8
|
+
"homepage": "https://podlite.org",
|
|
9
|
+
"bugs": {
|
|
10
|
+
"url": "https://github.com/podlite/podlite/issues"
|
|
11
|
+
},
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "https://github.com/podlite/podlite.git",
|
|
15
|
+
"directory": "packages/podlite-editor-react"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"podlite",
|
|
19
|
+
"editor",
|
|
20
|
+
"react",
|
|
21
|
+
"react-component",
|
|
22
|
+
"rich-text-editor",
|
|
23
|
+
"markdown-editor",
|
|
24
|
+
"codemirror",
|
|
25
|
+
"codemirror-6",
|
|
26
|
+
"live-preview",
|
|
27
|
+
"syntax-highlighting",
|
|
28
|
+
"wysiwyg"
|
|
29
|
+
],
|
|
8
30
|
"license": "MIT",
|
|
9
31
|
"funding": {
|
|
10
32
|
"type": "opencollective",
|