Skip to content

Commit

Permalink
Return the already parsed blocks in the blockState facet from Editor.…
Browse files Browse the repository at this point in the history
…getBlocks() instead of parsing the syntax tree again.

Make the block extension's getBlocks() method private.
  • Loading branch information
heyman committed Dec 27, 2023
1 parent 9e750e7 commit 21ad8e0
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 5 deletions.
4 changes: 1 addition & 3 deletions src/editor/block/block.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { emptyBlockSelected } from "./select-all.js";
// tracks the size of the first delimiter
let firstBlockDelimiterSize

export function getBlocks(state, timeout=50) {
function getBlocks(state, timeout=50) {
const blocks = [];
const tree = ensureSyntaxTree(state, state.doc.length, timeout)
if (tree) {
Expand Down Expand Up @@ -63,10 +63,8 @@ export const blockState = StateField.define({
// if blocks are empty it likely means we didn't get a parsed syntax tree, and then we want to update
// the blocks on all updates (and not just document changes)
if (transaction.docChanged || blocks.length === 0) {
//console.log("updating block state", transaction)
return getBlocks(transaction.state);
}
//return widgets.map(transaction.changes);
return blocks
},
})
Expand Down
4 changes: 2 additions & 2 deletions src/editor/editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { heynoteDark } from "./theme/dark.js"
import { heynoteBase } from "./theme/base.js"
import { customSetup } from "./setup.js"
import { heynoteLang } from "./lang-heynote/heynote.js"
import { noteBlockExtension, blockLineNumbers, getBlocks } from "./block/block.js"
import { noteBlockExtension, blockLineNumbers, blockState } from "./block/block.js"
import { heynoteEvent, SET_CONTENT } from "./annotation.js";
import { changeCurrentBlockLanguage, triggerCurrenciesLoaded } from "./block/commands.js"
import { formatBlockContent } from "./block/format-code.js"
Expand Down Expand Up @@ -128,7 +128,7 @@ export class HeynoteEditor {
}

getBlocks() {
return getBlocks(this.view.state)
return this.view.state.facet(blockState)
}

focus() {
Expand Down

0 comments on commit 21ad8e0

Please sign in to comment.