Skip to content

Commit 5e128f3

Browse files
committed
apply fix
1 parent 877eb66 commit 5e128f3

File tree

2 files changed

+30
-11
lines changed

2 files changed

+30
-11
lines changed

src/lib/acode.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,12 @@ import sidebarApps from "sidebarApps";
33
import * as cmAutocomplete from "@codemirror/autocomplete";
44
import * as cmCommands from "@codemirror/commands";
55
import * as cmLanguage from "@codemirror/language";
6-
import { HighlightStyle, syntaxHighlighting } from "@codemirror/language";
76
import * as cmLint from "@codemirror/lint";
87
import * as cmSearch from "@codemirror/search";
98
import * as cmState from "@codemirror/state";
10-
import { Compartment, EditorState, Prec, StateEffect } from "@codemirror/state";
119
import * as cmView from "@codemirror/view";
12-
import { EditorView } from "@codemirror/view";
1310
import ajax from "@deadlyjack/ajax";
14-
import { tags } from "@lezer/highlight";
11+
import * as lezerHighlight from "@lezer/highlight";
1512
import {
1613
getRegisteredCommands as listRegisteredCommands,
1714
refreshCommandKeymap,
@@ -157,7 +154,7 @@ export default class Acode {
157154

158155
const createHighlightStyle = (spec) => {
159156
if (!spec) return null;
160-
if (Array.isArray(spec)) return HighlightStyle.define(spec);
157+
if (Array.isArray(spec)) return cmLanguage.HighlightStyle.define(spec);
161158
return spec;
162159
};
163160

@@ -170,12 +167,12 @@ export default class Acode {
170167
const ext = [];
171168

172169
if (styles && typeof styles === "object") {
173-
ext.push(EditorView.theme(styles, { dark: !!dark }));
170+
ext.push(cmView.EditorView.theme(styles, { dark: !!dark }));
174171
}
175172

176173
const resolvedHighlight = createHighlightStyle(highlightStyle);
177174
if (resolvedHighlight) {
178-
ext.push(syntaxHighlighting(resolvedHighlight));
175+
ext.push(cmLanguage.syntaxHighlighting(resolvedHighlight));
179176
}
180177

181178
if (Array.isArray(extensions)) {
@@ -220,10 +217,10 @@ export default class Acode {
220217
createTheme,
221218
createHighlightStyle,
222219
cm: {
223-
EditorView,
224-
HighlightStyle,
225-
syntaxHighlighting,
226-
tags,
220+
EditorView: cmView.EditorView,
221+
HighlightStyle: cmLanguage.HighlightStyle,
222+
syntaxHighlighting: cmLanguage.syntaxHighlighting,
223+
tags: lezerHighlight.tags,
227224
},
228225
};
229226

@@ -325,6 +322,7 @@ export default class Acode {
325322
autocomplete: cmAutocomplete,
326323
commands: cmCommands,
327324
language: cmLanguage,
325+
lezer: lezerHighlight,
328326
lint: cmLint,
329327
search: cmSearch,
330328
state: cmState,
@@ -381,6 +379,7 @@ export default class Acode {
381379
this.define("@codemirror/search", cmSearch);
382380
this.define("@codemirror/state", cmState);
383381
this.define("@codemirror/view", cmView);
382+
this.define("@lezer/highlight", lezerHighlight);
384383
this.define("createKeyboardEvent", KeyboardEvent);
385384
this.define("toInternalUrl", helpers.toInternalUri);
386385
this.define("commands", this.#createCommandApi());

src/test/editor.tests.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,18 +68,38 @@ export async function runCodeMirrorTests(writeOutput) {
6868
runner.test("Acode exposes shared CodeMirror modules", async (test) => {
6969
const codemirror = acode.require("codemirror");
7070
const language = acode.require("@codemirror/language");
71+
const lezer = acode.require("@lezer/highlight");
7172
const state = acode.require("@codemirror/state");
7273
const view = acode.require("@codemirror/view");
7374

7475
test.assert(codemirror != null, "codemirror namespace should exist");
7576
test.assert(language != null, "@codemirror/language should exist");
77+
test.assert(lezer != null, "@lezer/highlight should exist");
7678
test.assert(state != null, "@codemirror/state should exist");
7779
test.assert(view != null, "@codemirror/view should exist");
80+
test.assert(
81+
language.StreamLanguage != null,
82+
"@codemirror/language should export StreamLanguage",
83+
);
84+
test.assert(lezer.tags != null, "@lezer/highlight should export tags");
85+
test.assert(
86+
state.EditorState != null,
87+
"@codemirror/state should export EditorState",
88+
);
89+
test.assert(
90+
view.EditorView != null,
91+
"@codemirror/view should export EditorView",
92+
);
7893
test.assertEqual(
7994
language.StreamLanguage,
8095
codemirror.language.StreamLanguage,
8196
"language exports should share the same singleton instance",
8297
);
98+
test.assertEqual(
99+
lezer.tags,
100+
codemirror.lezer.tags,
101+
"lezer exports should share the same singleton instance",
102+
);
83103
test.assertEqual(
84104
state.EditorState,
85105
codemirror.state.EditorState,

0 commit comments

Comments
 (0)