Pre 6.0 to 6.0 migration issues

I have CM in prod for some time now all using the pre 6.0 build and kept postponing the migration since I expected there would be some turbulence.

From the get go the following extensions are missing when trying to setup the extensions:

  • @codemirror/closebrackets
  • @codemirror/comment
  • @codemirror/matchbrackets
  • @codemirror/rectangular-selection

I assume they were moved?

List of deps:

    "@codemirror/autocomplete": "6.0.2",
    "@codemirror/commands": "6.0.1",
    "@codemirror/fold": "0.19.4",
    "@codemirror/highlight": "0.19.8",
    "@codemirror/history": "0.19.2",
    "@codemirror/lang-markdown": "6.0.0",
    "@codemirror/language": "6.2.0",
    "@codemirror/lint": "6.0.0",
    "@codemirror/state": "6.0.1",
    "@codemirror/view": "6.0.2",

Import list is:

import { autocompletion, completionKeymap } from '@codemirror/autocomplete';
import { closeBrackets, closeBracketsKeymap } from '@codemirror/closebrackets';
import { defaultKeymap, indentWithTab } from '@codemirror/commands';
import { commentKeymap } from '@codemirror/comment';
import { foldKeymap } from '@codemirror/fold';
import { highlightActiveLineGutter, lineNumbers } from '@codemirror/gutter';
import { history, historyKeymap } from '@codemirror/history';
import { indentOnInput, indentUnit } from '@codemirror/language';
import { lintKeymap } from '@codemirror/lint';
import { bracketMatching } from '@codemirror/matchbrackets';
import { rectangularSelection } from '@codemirror/rectangular-selection';
import { highlightSelectionMatches, searchKeymap } from '@codemirror/search';
import { EditorState, Extension } from '@codemirror/state';
import {
  drawSelection,
  dropCursor,
  highlightActiveLine,
  highlightSpecialChars,
  keymap,
} from '@codemirror/view';

Also have a language extension using @lezer/lr and updating that one to 1.1.0 throws:

Server Error

RangeError: Parser version (13) doesn’t match runtime version (14)

List of deps in that repo:

  "dependencies": {
    "@codemirror/highlight": "0.19.8",
    "@codemirror/language": "6.2.0",
    "@codemirror/autocomplete": "6.0.2",
    "@lezer/lr": "1.1.0"
  },

Any help would be greatly appreciated. My apologies if I missed a memo.

PS. Thanks for your work. CM is awesome :+1:

1 Like

You can find information about breaking changes in the changelog. The exports from those packages were indeed moved somewhere else to simplify the package structure. Rebuilding your grammar with the current version of lezer-generator should solve the “Parser version (13) doesn’t match runtime version (14)” issue.

2 Likes

for anyone struggling with the error

RangeError: Parser version (14) doesn't match runtime version (13)

run something like
pnpm list -r | grep @lezer/lr
and check versions

@lezer/lr 1.2.3 → version 14 (currently)
@lezer/lr 0.15.4 → version 13

run something like
rm -rf node_modules && pnpm install
to force re-install

check again with
pnpm list -r | grep @lezer/lr

1 Like