mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-05-07 18:48:39 +00:00
Merge pull request #4746 from naturalcrit/fix-CM-bugs
fix newpage keybind
This commit is contained in:
@@ -16,6 +16,7 @@ import {
|
|||||||
} from '@codemirror/view';
|
} from '@codemirror/view';
|
||||||
import { EditorState, Compartment, StateEffect, StateField } from '@codemirror/state';
|
import { EditorState, Compartment, StateEffect, StateField } from '@codemirror/state';
|
||||||
import { foldAll as foldAllCmd, unfoldAll as unfoldAllCmd, foldGutter, foldKeymap, syntaxHighlighting } from '@codemirror/language';
|
import { foldAll as foldAllCmd, unfoldAll as unfoldAllCmd, foldGutter, foldKeymap, syntaxHighlighting } from '@codemirror/language';
|
||||||
|
import { foldEffect } from '@codemirror/language';
|
||||||
import { defaultKeymap, history, undo, redo, undoDepth, redoDepth } from '@codemirror/commands';
|
import { defaultKeymap, history, undo, redo, undoDepth, redoDepth } from '@codemirror/commands';
|
||||||
import { languages } from '@codemirror/language-data';
|
import { languages } from '@codemirror/language-data';
|
||||||
import { css } from '@codemirror/lang-css';
|
import { css } from '@codemirror/lang-css';
|
||||||
@@ -392,7 +393,19 @@ const CodeEditor = forwardRef(
|
|||||||
foldAll : ()=>{
|
foldAll : ()=>{
|
||||||
const view = viewRef.current;
|
const view = viewRef.current;
|
||||||
if(!view) return;
|
if(!view) return;
|
||||||
view.dispatch(foldAllCmd(view));
|
|
||||||
|
const doc = view.state.doc;
|
||||||
|
const pages = pageMap.current;
|
||||||
|
|
||||||
|
const effects = pages.map((start, i)=>{
|
||||||
|
const next = pages[i + 1] || doc.length;
|
||||||
|
const from = i ? doc.line(doc.lineAt(start).number + 1).from : 0;
|
||||||
|
const to = doc.line(doc.lineAt(next).number).from - 1;
|
||||||
|
|
||||||
|
return to > from ? foldEffect.of({ from, to }) : null;
|
||||||
|
}).filter(Boolean);
|
||||||
|
|
||||||
|
view.dispatch({ effects });
|
||||||
},
|
},
|
||||||
unfoldAll : ()=>{
|
unfoldAll : ()=>{
|
||||||
const view = viewRef.current;
|
const view = viewRef.current;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
/* eslint max-lines: ["error", { "max": 300 }] */
|
/* eslint max-lines: ["error", { "max": 300 }] */
|
||||||
import { keymap } from '@codemirror/view';
|
import { keymap } from '@codemirror/view';
|
||||||
import { undo, redo, indentMore } from '@codemirror/commands';
|
import { undo, redo, indentMore } from '@codemirror/commands';
|
||||||
|
import { Prec } from '@codemirror/state';
|
||||||
|
|
||||||
const indentLess = (view)=>{
|
const indentLess = (view)=>{
|
||||||
const { from, to } = view.state.selection.main;
|
const { from, to } = view.state.selection.main;
|
||||||
@@ -193,7 +194,7 @@ export const generalKeymap = keymap.of([
|
|||||||
{ key: 'Mod-Shift-z', run: redo },
|
{ key: 'Mod-Shift-z', run: redo },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
export const markdownKeymap = keymap.of([
|
export const markdownKeymap = Prec.highest(keymap.of([
|
||||||
//{ key: 'Shift-Tab', run: indentMore },
|
//{ key: 'Shift-Tab', run: indentMore },
|
||||||
{ key: 'Shift-Tab', run: indentLess },
|
{ key: 'Shift-Tab', run: indentLess },
|
||||||
{ key: 'Mod-b', run: makeBold },
|
{ key: 'Mod-b', run: makeBold },
|
||||||
@@ -219,4 +220,4 @@ export const markdownKeymap = keymap.of([
|
|||||||
{ key: 'Shift-Mod-Enter', run: newColumn },
|
{ key: 'Shift-Mod-Enter', run: newColumn },
|
||||||
{ key: 'Mod-Enter', run: newPage },
|
{ key: 'Mod-Enter', run: newPage },
|
||||||
|
|
||||||
]);
|
]));
|
||||||
|
|||||||
Reference in New Issue
Block a user