|
|
@@ -3,12 +3,10 @@ import { useMemo } from 'react';
|
|
|
import { indentWithTab } from '@codemirror/commands';
|
|
|
import { markdown, markdownLanguage } from '@codemirror/lang-markdown';
|
|
|
import { languages } from '@codemirror/language-data';
|
|
|
-import { type Extension } from '@codemirror/state';
|
|
|
-import { keymap } from '@codemirror/view';
|
|
|
+import { EditorState, type Extension } from '@codemirror/state';
|
|
|
+import { keymap, EditorView } from '@codemirror/view';
|
|
|
import { useCodeMirror, type UseCodeMirror } from '@uiw/react-codemirror';
|
|
|
|
|
|
-import type { UseCodeMirrorEditorStates } from '../interfaces/react-codemirror';
|
|
|
-
|
|
|
import { AppendExtension, useAppendExtension } from './utils/append-extension';
|
|
|
import { useFocus, type Focus } from './utils/focus';
|
|
|
import { useGetDoc, type GetDoc } from './utils/get-doc';
|
|
|
@@ -22,7 +20,10 @@ type UseCodeMirrorEditorUtils = {
|
|
|
focus: Focus,
|
|
|
setCaretLine: SetCaretLine,
|
|
|
}
|
|
|
-export type UseCodeMirrorEditor = UseCodeMirrorEditorStates & UseCodeMirrorEditorUtils;
|
|
|
+export type UseCodeMirrorEditor = {
|
|
|
+ state: EditorState | undefined;
|
|
|
+ view: EditorView | undefined;
|
|
|
+} & UseCodeMirrorEditorUtils;
|
|
|
|
|
|
|
|
|
const defaultExtensions: Extension[] = [
|
|
|
@@ -36,15 +37,13 @@ export const useCodeMirrorEditor = (props?: UseCodeMirror): UseCodeMirrorEditor
|
|
|
return {
|
|
|
...props,
|
|
|
extensions: [
|
|
|
- ...defaultExtensions,
|
|
|
...(props?.extensions ?? []),
|
|
|
+ ...defaultExtensions,
|
|
|
],
|
|
|
};
|
|
|
}, [props]);
|
|
|
|
|
|
- const codemirror = useCodeMirror(mergedProps);
|
|
|
-
|
|
|
- const { view } = codemirror;
|
|
|
+ const { state, view } = useCodeMirror(mergedProps);
|
|
|
|
|
|
const initDoc = useInitDoc(view);
|
|
|
const appendExtension = useAppendExtension(view);
|
|
|
@@ -53,7 +52,8 @@ export const useCodeMirrorEditor = (props?: UseCodeMirror): UseCodeMirrorEditor
|
|
|
const setCaretLine = useSetCaretLine(view);
|
|
|
|
|
|
return {
|
|
|
- ...codemirror,
|
|
|
+ state,
|
|
|
+ view,
|
|
|
initDoc,
|
|
|
appendExtension,
|
|
|
getDoc,
|