parser.configure() throws an exception

I’m trying to make a code mirror mode for my haskell grammar, but I run into some problems (I can’t see my editor but I have some errors).

In the HTML page, I have these errors:

demo.bundle.js:19747 Uncaught TypeError: add[0].set is not a function
    at NodeSet.extend (demo.bundle.js:19747)
    at Parser.configure (demo.bundle.js:21873)
    at demo.bundle.js:21979
    at demo.bundle.js:23830

My language package configuration looks like this:

import {parser} from "./parser.js"
import {foldNodeProp, foldInside, indentNodeProp} from "@codemirror/language"
import {styleTags, tags as t} from "@codemirror/highlight"
import {LRLanguage} from "@codemirror/language"
import {LanguageSupport} from "@codemirror/language"

let parserWithMetadata = parser.configure({
  props: [
    styleTags({
      Comment: t.lineComment,
      Ncomment: t.blockComment
    })
  ]
})

My entire project is here: GitHub - odc19/haskell_code_mirror: Haskell grammar for Lezer

I’m not sure what is happening here, but you don’t want to mix lezer 0.13.x with codemirror 0.19.x packages. Try upgrading to the 0.15 @lezer/lr and @lezer/generator versions.

got same exception with cm 6.0 and lezer 1.0.
share my solution for similar situation: use @lezer/generator command to generat parser, instead of lezer-generator

1 Like

I am using lezer-generator1.0 too.

try to use the command @lezer/generator,but the command is not define.how to use it?

The command is called lezer-generator, and you should have it (in node_modules/.bin) if you install @lezer/generator

1 Like