@codemirror/language 6.10.6 → 6.10.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## 6.10.8 (2024-12-23)
2
+
3
+ ### Bug fixes
4
+
5
+ Fix a regression introduced 6.10.7 that caused indention to sometimes crash on nested language boundaries.
6
+
7
+ ## 6.10.7 (2024-12-17)
8
+
9
+ ### Bug fixes
10
+
11
+ Fix an issue where indentation for a stream language would fail to work when the parse covered only part of the document, far from the start.
12
+
13
+ Make sure the inner mode gets a chance to indent when indenting right at the end of a nested language section.
14
+
1
15
  ## 6.10.6 (2024-11-29)
2
16
 
3
17
  ### Bug fixes
package/dist/index.cjs CHANGED
@@ -995,10 +995,10 @@ const indentNodeProp = new common.NodeProp();
995
995
  // Compute the indentation for a given position from the syntax tree.
996
996
  function syntaxIndentation(cx, ast, pos) {
997
997
  let stack = ast.resolveStack(pos);
998
- let inner = stack.node.enterUnfinishedNodesBefore(pos);
998
+ let inner = ast.resolveInner(pos, -1).resolve(pos, 0).enterUnfinishedNodesBefore(pos);
999
999
  if (inner != stack.node) {
1000
1000
  let add = [];
1001
- for (let cur = inner; cur != stack.node; cur = cur.parent)
1001
+ for (let cur = inner; cur && !(cur.from == stack.node.from && cur.type == stack.node.type); cur = cur.parent)
1002
1002
  add.push(cur);
1003
1003
  for (let i = add.length - 1; i >= 0; i--)
1004
1004
  stack = { node: add[i], next: stack };
@@ -2230,14 +2230,14 @@ class StreamLanguage extends Language {
2230
2230
  if (from != null && from < cx.pos - 1e4)
2231
2231
  from = undefined;
2232
2232
  }
2233
- let start = findState(this, cx.node.tree, 0, cx.node.from, from !== null && from !== void 0 ? from : cx.pos), statePos, state;
2233
+ let start = findState(this, cx.node.tree, cx.node.from, cx.node.from, from !== null && from !== void 0 ? from : cx.pos), statePos, state;
2234
2234
  if (start) {
2235
2235
  state = start.state;
2236
2236
  statePos = start.pos + 1;
2237
2237
  }
2238
2238
  else {
2239
2239
  state = this.streamParser.startState(cx.unit);
2240
- statePos = 0;
2240
+ statePos = cx.node.from;
2241
2241
  }
2242
2242
  if (cx.pos - statePos > 10000 /* C.MaxIndentScanDist */)
2243
2243
  return null;
package/dist/index.js CHANGED
@@ -993,10 +993,10 @@ const indentNodeProp = /*@__PURE__*/new NodeProp();
993
993
  // Compute the indentation for a given position from the syntax tree.
994
994
  function syntaxIndentation(cx, ast, pos) {
995
995
  let stack = ast.resolveStack(pos);
996
- let inner = stack.node.enterUnfinishedNodesBefore(pos);
996
+ let inner = ast.resolveInner(pos, -1).resolve(pos, 0).enterUnfinishedNodesBefore(pos);
997
997
  if (inner != stack.node) {
998
998
  let add = [];
999
- for (let cur = inner; cur != stack.node; cur = cur.parent)
999
+ for (let cur = inner; cur && !(cur.from == stack.node.from && cur.type == stack.node.type); cur = cur.parent)
1000
1000
  add.push(cur);
1001
1001
  for (let i = add.length - 1; i >= 0; i--)
1002
1002
  stack = { node: add[i], next: stack };
@@ -2228,14 +2228,14 @@ class StreamLanguage extends Language {
2228
2228
  if (from != null && from < cx.pos - 1e4)
2229
2229
  from = undefined;
2230
2230
  }
2231
- let start = findState(this, cx.node.tree, 0, cx.node.from, from !== null && from !== void 0 ? from : cx.pos), statePos, state;
2231
+ let start = findState(this, cx.node.tree, cx.node.from, cx.node.from, from !== null && from !== void 0 ? from : cx.pos), statePos, state;
2232
2232
  if (start) {
2233
2233
  state = start.state;
2234
2234
  statePos = start.pos + 1;
2235
2235
  }
2236
2236
  else {
2237
2237
  state = this.streamParser.startState(cx.unit);
2238
- statePos = 0;
2238
+ statePos = cx.node.from;
2239
2239
  }
2240
2240
  if (cx.pos - statePos > 10000 /* C.MaxIndentScanDist */)
2241
2241
  return null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemirror/language",
3
- "version": "6.10.6",
3
+ "version": "6.10.8",
4
4
  "description": "Language support infrastructure for the CodeMirror code editor",
5
5
  "scripts": {
6
6
  "test": "cm-runtests",