mirror of
https://github.com/heyman/heynote.git
synced 2024-11-22 07:54:11 +01:00
Fix bug causing note delimiter to be copied if "moveLineUp" command was executed with the first line selected
This commit is contained in:
parent
0f072b8699
commit
c8e4861ffe
@ -1,5 +1,8 @@
|
||||
import { EditorView } from "@codemirror/view"
|
||||
import { selectAll as defaultSelectAll } from "@codemirror/commands"
|
||||
import {
|
||||
selectAll as defaultSelectAll,
|
||||
moveLineUp as defaultMoveLineUp,
|
||||
} from "@codemirror/commands"
|
||||
import { blockState } from "./note-block"
|
||||
|
||||
|
||||
@ -18,7 +21,6 @@ export const insertNewNote = ({ state, dispatch }) => {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
export const selectAll = ({ state, dispatch }) => {
|
||||
// find which block the cursor is in
|
||||
const range = state.selection.asSingle().ranges[0]
|
||||
@ -37,3 +39,15 @@ export const selectAll = ({ state, dispatch }) => {
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent moveLineUp from executing if any cursor is on the first line of the first note
|
||||
*/
|
||||
export function moveLineUp({ state, dispatch }) {
|
||||
if (state.selection.ranges.some(range => {
|
||||
let startLine = state.doc.lineAt(range.from)
|
||||
return startLine.from <= state.facet(blockState)[0].content.from
|
||||
})) {
|
||||
return true;
|
||||
}
|
||||
return defaultMoveLineUp({state, dispatch})
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import { nord } from "./theme/nord.mjs"
|
||||
import { customSetup } from "./setup.js"
|
||||
import { heynoteLang } from "./lang-heynote/heynote.js"
|
||||
import { noteBlockExtension } from "./block/note-block.js"
|
||||
import { insertNewNote, selectAll } from "./block/commands.js";
|
||||
import { insertNewNote, moveLineUp, selectAll } from "./block/commands.js";
|
||||
|
||||
|
||||
export class HeynoteEditor {
|
||||
@ -48,6 +48,11 @@ export class HeynoteEditor {
|
||||
preventDefault: true,
|
||||
run: selectAll,
|
||||
},
|
||||
{
|
||||
key: "Alt-ArrowUp",
|
||||
preventDefault: true,
|
||||
run: moveLineUp,
|
||||
}
|
||||
]),
|
||||
|
||||
customSetup,
|
||||
|
Loading…
Reference in New Issue
Block a user