@codemirror/language 6.12.0 → 6.12.1
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 +3 -3
- package/dist/index.cjs +9 -25
- package/dist/index.d.cts +2 -12
- package/dist/index.d.ts +2 -12
- package/dist/index.js +9 -25
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
## 6.12.
|
|
1
|
+
## 6.12.1 (2025-12-22)
|
|
2
2
|
|
|
3
|
-
###
|
|
3
|
+
### Bug fixes
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Improve finding inner language in syntax tree when the nested parse has been marked as bracketed.
|
|
6
6
|
|
|
7
7
|
## 6.11.3 (2025-08-15)
|
|
8
8
|
|
package/dist/index.cjs
CHANGED
|
@@ -146,7 +146,7 @@ Language.setState = state.StateEffect.define();
|
|
|
146
146
|
function topNodeAt(state, pos, side) {
|
|
147
147
|
let topLang = state.facet(language), tree = syntaxTree(state).topNode;
|
|
148
148
|
if (!topLang || topLang.allowsNesting) {
|
|
149
|
-
for (let node = tree; node; node = node.enter(pos, side, common.IterMode.ExcludeBuffers))
|
|
149
|
+
for (let node = tree; node; node = node.enter(pos, side, common.IterMode.ExcludeBuffers | common.IterMode.EnterBracketed))
|
|
150
150
|
if (node.type.isTop)
|
|
151
151
|
tree = node;
|
|
152
152
|
}
|
|
@@ -158,41 +158,25 @@ A subclass of [`Language`](https://codemirror.net/6/docs/ref/#language.Language)
|
|
|
158
158
|
parsers.
|
|
159
159
|
*/
|
|
160
160
|
class LRLanguage extends Language {
|
|
161
|
-
constructor(data, parser,
|
|
162
|
-
super(data, parser,
|
|
161
|
+
constructor(data, parser, name) {
|
|
162
|
+
super(data, parser, [], name);
|
|
163
163
|
this.parser = parser;
|
|
164
|
-
this.languageData = languageData;
|
|
165
164
|
}
|
|
166
165
|
/**
|
|
167
166
|
Define a language from a parser.
|
|
168
167
|
*/
|
|
169
168
|
static define(spec) {
|
|
170
|
-
let data = defineLanguageFacet();
|
|
169
|
+
let data = defineLanguageFacet(spec.languageData);
|
|
171
170
|
return new LRLanguage(data, spec.parser.configure({
|
|
172
171
|
props: [languageDataProp.add(type => type.isTop ? data : undefined)]
|
|
173
|
-
}), spec.
|
|
172
|
+
}), spec.name);
|
|
174
173
|
}
|
|
175
174
|
/**
|
|
176
175
|
Create a new instance of this language with a reconfigured
|
|
177
|
-
version of its parser
|
|
178
|
-
|
|
179
|
-
When `languageData` is given, any property set to `undefined`
|
|
180
|
-
in it will be removed from the language's
|
|
181
|
-
[data](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt), any other property
|
|
182
|
-
is added.
|
|
176
|
+
version of its parser and optionally a new name.
|
|
183
177
|
*/
|
|
184
178
|
configure(options, name) {
|
|
185
|
-
|
|
186
|
-
if (options.languageData) {
|
|
187
|
-
languageData = {};
|
|
188
|
-
for (let prop in options.languageData)
|
|
189
|
-
if (options.languageData[prop] !== undefined)
|
|
190
|
-
languageData[prop] = options.languageData[prop];
|
|
191
|
-
for (let prop in this.languageData)
|
|
192
|
-
if (!(prop in options.languageData))
|
|
193
|
-
languageData[prop] = this.languageData[prop];
|
|
194
|
-
}
|
|
195
|
-
return new LRLanguage(this.data, this.parser.configure(options), languageData, name || this.name);
|
|
179
|
+
return new LRLanguage(this.data, this.parser.configure(options), name || this.name);
|
|
196
180
|
}
|
|
197
181
|
get allowsNesting() { return this.parser.hasWrappers(); }
|
|
198
182
|
}
|
|
@@ -2225,14 +2209,14 @@ A [language](https://codemirror.net/6/docs/ref/#language.Language) class based o
|
|
|
2225
2209
|
*/
|
|
2226
2210
|
class StreamLanguage extends Language {
|
|
2227
2211
|
constructor(parser) {
|
|
2228
|
-
let data = defineLanguageFacet();
|
|
2212
|
+
let data = defineLanguageFacet(parser.languageData);
|
|
2229
2213
|
let p = fullParser(parser), self;
|
|
2230
2214
|
let impl = new class extends common.Parser {
|
|
2231
2215
|
createParse(input, fragments, ranges) {
|
|
2232
2216
|
return new Parse(self, input, fragments, ranges);
|
|
2233
2217
|
}
|
|
2234
2218
|
};
|
|
2235
|
-
super(data, impl,
|
|
2219
|
+
super(data, impl, [], parser.name);
|
|
2236
2220
|
this.topNode = docID(data, this);
|
|
2237
2221
|
self = this;
|
|
2238
2222
|
this.streamParser = p;
|
package/dist/index.d.cts
CHANGED
|
@@ -143,7 +143,6 @@ parsers.
|
|
|
143
143
|
*/
|
|
144
144
|
declare class LRLanguage extends Language {
|
|
145
145
|
readonly parser: LRParser;
|
|
146
|
-
private languageData;
|
|
147
146
|
private constructor();
|
|
148
147
|
/**
|
|
149
148
|
Define a language from a parser.
|
|
@@ -169,18 +168,9 @@ declare class LRLanguage extends Language {
|
|
|
169
168
|
}): LRLanguage;
|
|
170
169
|
/**
|
|
171
170
|
Create a new instance of this language with a reconfigured
|
|
172
|
-
version of its parser
|
|
173
|
-
|
|
174
|
-
When `languageData` is given, any property set to `undefined`
|
|
175
|
-
in it will be removed from the language's
|
|
176
|
-
[data](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt), any other property
|
|
177
|
-
is added.
|
|
171
|
+
version of its parser and optionally a new name.
|
|
178
172
|
*/
|
|
179
|
-
configure(options: ParserConfig
|
|
180
|
-
languageData?: {
|
|
181
|
-
[name: string]: any;
|
|
182
|
-
};
|
|
183
|
-
}, name?: string): LRLanguage;
|
|
173
|
+
configure(options: ParserConfig, name?: string): LRLanguage;
|
|
184
174
|
get allowsNesting(): boolean;
|
|
185
175
|
}
|
|
186
176
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -143,7 +143,6 @@ parsers.
|
|
|
143
143
|
*/
|
|
144
144
|
declare class LRLanguage extends Language {
|
|
145
145
|
readonly parser: LRParser;
|
|
146
|
-
private languageData;
|
|
147
146
|
private constructor();
|
|
148
147
|
/**
|
|
149
148
|
Define a language from a parser.
|
|
@@ -169,18 +168,9 @@ declare class LRLanguage extends Language {
|
|
|
169
168
|
}): LRLanguage;
|
|
170
169
|
/**
|
|
171
170
|
Create a new instance of this language with a reconfigured
|
|
172
|
-
version of its parser
|
|
173
|
-
|
|
174
|
-
When `languageData` is given, any property set to `undefined`
|
|
175
|
-
in it will be removed from the language's
|
|
176
|
-
[data](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt), any other property
|
|
177
|
-
is added.
|
|
171
|
+
version of its parser and optionally a new name.
|
|
178
172
|
*/
|
|
179
|
-
configure(options: ParserConfig
|
|
180
|
-
languageData?: {
|
|
181
|
-
[name: string]: any;
|
|
182
|
-
};
|
|
183
|
-
}, name?: string): LRLanguage;
|
|
173
|
+
configure(options: ParserConfig, name?: string): LRLanguage;
|
|
184
174
|
get allowsNesting(): boolean;
|
|
185
175
|
}
|
|
186
176
|
/**
|
package/dist/index.js
CHANGED
|
@@ -144,7 +144,7 @@ Language.setState = /*@__PURE__*/StateEffect.define();
|
|
|
144
144
|
function topNodeAt(state, pos, side) {
|
|
145
145
|
let topLang = state.facet(language), tree = syntaxTree(state).topNode;
|
|
146
146
|
if (!topLang || topLang.allowsNesting) {
|
|
147
|
-
for (let node = tree; node; node = node.enter(pos, side, IterMode.ExcludeBuffers))
|
|
147
|
+
for (let node = tree; node; node = node.enter(pos, side, IterMode.ExcludeBuffers | IterMode.EnterBracketed))
|
|
148
148
|
if (node.type.isTop)
|
|
149
149
|
tree = node;
|
|
150
150
|
}
|
|
@@ -156,41 +156,25 @@ A subclass of [`Language`](https://codemirror.net/6/docs/ref/#language.Language)
|
|
|
156
156
|
parsers.
|
|
157
157
|
*/
|
|
158
158
|
class LRLanguage extends Language {
|
|
159
|
-
constructor(data, parser,
|
|
160
|
-
super(data, parser,
|
|
159
|
+
constructor(data, parser, name) {
|
|
160
|
+
super(data, parser, [], name);
|
|
161
161
|
this.parser = parser;
|
|
162
|
-
this.languageData = languageData;
|
|
163
162
|
}
|
|
164
163
|
/**
|
|
165
164
|
Define a language from a parser.
|
|
166
165
|
*/
|
|
167
166
|
static define(spec) {
|
|
168
|
-
let data = defineLanguageFacet();
|
|
167
|
+
let data = defineLanguageFacet(spec.languageData);
|
|
169
168
|
return new LRLanguage(data, spec.parser.configure({
|
|
170
169
|
props: [languageDataProp.add(type => type.isTop ? data : undefined)]
|
|
171
|
-
}), spec.
|
|
170
|
+
}), spec.name);
|
|
172
171
|
}
|
|
173
172
|
/**
|
|
174
173
|
Create a new instance of this language with a reconfigured
|
|
175
|
-
version of its parser
|
|
176
|
-
|
|
177
|
-
When `languageData` is given, any property set to `undefined`
|
|
178
|
-
in it will be removed from the language's
|
|
179
|
-
[data](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt), any other property
|
|
180
|
-
is added.
|
|
174
|
+
version of its parser and optionally a new name.
|
|
181
175
|
*/
|
|
182
176
|
configure(options, name) {
|
|
183
|
-
|
|
184
|
-
if (options.languageData) {
|
|
185
|
-
languageData = {};
|
|
186
|
-
for (let prop in options.languageData)
|
|
187
|
-
if (options.languageData[prop] !== undefined)
|
|
188
|
-
languageData[prop] = options.languageData[prop];
|
|
189
|
-
for (let prop in this.languageData)
|
|
190
|
-
if (!(prop in options.languageData))
|
|
191
|
-
languageData[prop] = this.languageData[prop];
|
|
192
|
-
}
|
|
193
|
-
return new LRLanguage(this.data, this.parser.configure(options), languageData, name || this.name);
|
|
177
|
+
return new LRLanguage(this.data, this.parser.configure(options), name || this.name);
|
|
194
178
|
}
|
|
195
179
|
get allowsNesting() { return this.parser.hasWrappers(); }
|
|
196
180
|
}
|
|
@@ -2223,14 +2207,14 @@ A [language](https://codemirror.net/6/docs/ref/#language.Language) class based o
|
|
|
2223
2207
|
*/
|
|
2224
2208
|
class StreamLanguage extends Language {
|
|
2225
2209
|
constructor(parser) {
|
|
2226
|
-
let data = defineLanguageFacet();
|
|
2210
|
+
let data = defineLanguageFacet(parser.languageData);
|
|
2227
2211
|
let p = fullParser(parser), self;
|
|
2228
2212
|
let impl = new class extends Parser {
|
|
2229
2213
|
createParse(input, fragments, ranges) {
|
|
2230
2214
|
return new Parse(self, input, fragments, ranges);
|
|
2231
2215
|
}
|
|
2232
2216
|
};
|
|
2233
|
-
super(data, impl,
|
|
2217
|
+
super(data, impl, [], parser.name);
|
|
2234
2218
|
this.topNode = docID(data, this);
|
|
2235
2219
|
self = this;
|
|
2236
2220
|
this.streamParser = p;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codemirror/language",
|
|
3
|
-
"version": "6.12.
|
|
3
|
+
"version": "6.12.1",
|
|
4
4
|
"description": "Language support infrastructure for the CodeMirror code editor",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "cm-runtests",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@codemirror/state": "^6.0.0",
|
|
30
30
|
"@codemirror/view": "^6.23.0",
|
|
31
|
-
"@lezer/common": "^1.
|
|
31
|
+
"@lezer/common": "^1.5.0",
|
|
32
32
|
"@lezer/highlight": "^1.0.0",
|
|
33
33
|
"@lezer/lr": "^1.0.0",
|
|
34
34
|
"style-mod": "^4.0.0"
|