Upgrade CodeMirror and Lezer dependencies (#30615)

* Upgrade CodeMirror and Lezer dependencies
* Ensure that BraceWidget and IconBraceWidget always have string content
* Add updateDOM to BraceWidget
* Use pinned versions
* Fix description list decoration

GitOrigin-RevId: 5306f7f09290eb9a2c375e97d33509537f3c5e5f
This commit is contained in:
Alf Eaton
2026-01-15 09:06:05 +00:00
committed by Copybot
parent 291f882aa2
commit 5d16fa207a
6 changed files with 73 additions and 70 deletions
@@ -1017,7 +1017,7 @@ export const atomicDecorations = (options: Options) => {
...decorateArgumentBraces(
new BraceWidget(decorateBrackets ? '' : '['),
argumentNode,
from,
argumentNode.from,
false,
new BraceWidget(decorateBrackets ? '' : ']'),
{ open: OpenBracket, close: CloseBracket }
@@ -1,16 +1,14 @@
import { WidgetType } from '@codemirror/view'
export class BraceWidget extends WidgetType {
constructor(private content?: string) {
constructor(private content = '') {
super()
}
toDOM() {
const element = document.createElement('span')
element.classList.add('ol-cm-brace')
if (this.content !== undefined) {
element.textContent = this.content
}
element.textContent = this.content
return element
}
@@ -22,6 +20,11 @@ export class BraceWidget extends WidgetType {
return widget.content === this.content
}
updateDOM(element: HTMLSpanElement): boolean {
element.textContent = this.content
return true
}
coordsAt(element: HTMLElement) {
return element.getBoundingClientRect()
}
@@ -1,7 +1,7 @@
import { WidgetType } from '@codemirror/view'
export class IconBraceWidget extends WidgetType {
constructor(private content?: string) {
constructor(private content = '') {
super()
}
@@ -9,9 +9,7 @@ export class IconBraceWidget extends WidgetType {
const element = document.createElement('span')
element.classList.add('ol-cm-brace')
element.classList.add('ol-cm-icon-brace')
if (this.content !== undefined) {
element.textContent = this.content
}
element.textContent = this.content
return element
}
@@ -24,7 +22,7 @@ export class IconBraceWidget extends WidgetType {
}
updateDOM(element: HTMLElement): boolean {
element.textContent = this.content ?? ''
element.textContent = this.content
return true
}