@inkandswitch/patchwork-pkg-base 0.0.116 → 0.0.117
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/module-settings-url
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
automerge:
|
|
1
|
+
automerge:i6qrvnWScsVVnDS5Dq6GEkus1cY
|
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
markdown
|
|
2
|
+
markdown,
|
|
3
|
+
markdownLanguage
|
|
3
4
|
} from "../chunk-4ZTKTN2T.js";
|
|
4
5
|
import "../chunk-DQNB5ERJ.js";
|
|
5
6
|
import "../chunk-4RNBFSBX.js";
|
|
@@ -2064,7 +2065,7 @@ var searchExtensions = [
|
|
|
2064
2065
|
];
|
|
2065
2066
|
|
|
2066
2067
|
// src/extensions/markdown.ts
|
|
2067
|
-
import { EditorView as
|
|
2068
|
+
import { EditorView as EditorView4, keymap } from "@codemirror/view";
|
|
2068
2069
|
|
|
2069
2070
|
// src/extensions/formatting.ts
|
|
2070
2071
|
import { EditorSelection as EditorSelection2 } from "@codemirror/state";
|
|
@@ -2140,12 +2141,8 @@ var markdownFormattingKeymap = [
|
|
|
2140
2141
|
{ key: "Mod-e", run: toggleCode, preventDefault: true }
|
|
2141
2142
|
];
|
|
2142
2143
|
|
|
2143
|
-
// src/
|
|
2144
|
-
import {
|
|
2145
|
-
HighlightStyle,
|
|
2146
|
-
syntaxHighlighting,
|
|
2147
|
-
syntaxTree
|
|
2148
|
-
} from "@codemirror/language";
|
|
2144
|
+
// src/extensions/tasks.ts
|
|
2145
|
+
import { syntaxTree } from "@codemirror/language";
|
|
2149
2146
|
import { RangeSetBuilder as RangeSetBuilder2 } from "@codemirror/state";
|
|
2150
2147
|
import {
|
|
2151
2148
|
Decoration as Decoration2,
|
|
@@ -2153,6 +2150,89 @@ import {
|
|
|
2153
2150
|
ViewPlugin as ViewPlugin2,
|
|
2154
2151
|
WidgetType
|
|
2155
2152
|
} from "@codemirror/view";
|
|
2153
|
+
var TaskWidget = class extends WidgetType {
|
|
2154
|
+
constructor(checked) {
|
|
2155
|
+
super();
|
|
2156
|
+
this.checked = checked;
|
|
2157
|
+
}
|
|
2158
|
+
eq(other) {
|
|
2159
|
+
return other.checked === this.checked;
|
|
2160
|
+
}
|
|
2161
|
+
toDOM(view) {
|
|
2162
|
+
const box = document.createElement("input");
|
|
2163
|
+
box.type = "checkbox";
|
|
2164
|
+
box.className = "cm-task";
|
|
2165
|
+
box.checked = this.checked;
|
|
2166
|
+
box.disabled = !view.state.facet(EditorView2.editable);
|
|
2167
|
+
box.setAttribute("aria-label", this.checked ? "Done" : "To do");
|
|
2168
|
+
box.addEventListener("mousedown", (event) => {
|
|
2169
|
+
event.preventDefault();
|
|
2170
|
+
if (box.disabled) return;
|
|
2171
|
+
toggle(view, view.posAtDOM(box));
|
|
2172
|
+
});
|
|
2173
|
+
return box;
|
|
2174
|
+
}
|
|
2175
|
+
ignoreEvent() {
|
|
2176
|
+
return true;
|
|
2177
|
+
}
|
|
2178
|
+
};
|
|
2179
|
+
function toggle(view, from) {
|
|
2180
|
+
const marker = view.state.doc.sliceString(from, from + 3);
|
|
2181
|
+
if (!/^\[[ xX]\]$/.test(marker)) return;
|
|
2182
|
+
const insert = marker[1] === " " ? "x" : " ";
|
|
2183
|
+
view.dispatch({
|
|
2184
|
+
changes: { from: from + 1, to: from + 2, insert },
|
|
2185
|
+
userEvent: "input.toggle-task"
|
|
2186
|
+
});
|
|
2187
|
+
}
|
|
2188
|
+
function build(view) {
|
|
2189
|
+
const builder = new RangeSetBuilder2();
|
|
2190
|
+
const { doc } = view.state;
|
|
2191
|
+
for (const { from, to } of view.visibleRanges) {
|
|
2192
|
+
syntaxTree(view.state).iterate({
|
|
2193
|
+
from,
|
|
2194
|
+
to,
|
|
2195
|
+
enter: (node) => {
|
|
2196
|
+
if (node.name !== "TaskMarker") return;
|
|
2197
|
+
const checked = doc.sliceString(node.from + 1, node.to - 1) !== " ";
|
|
2198
|
+
builder.add(
|
|
2199
|
+
node.from,
|
|
2200
|
+
node.to,
|
|
2201
|
+
Decoration2.replace({ widget: new TaskWidget(checked) })
|
|
2202
|
+
);
|
|
2203
|
+
}
|
|
2204
|
+
});
|
|
2205
|
+
}
|
|
2206
|
+
return builder.finish();
|
|
2207
|
+
}
|
|
2208
|
+
var taskCheckboxes = ViewPlugin2.fromClass(
|
|
2209
|
+
class {
|
|
2210
|
+
decorations;
|
|
2211
|
+
constructor(view) {
|
|
2212
|
+
this.decorations = build(view);
|
|
2213
|
+
}
|
|
2214
|
+
update(update) {
|
|
2215
|
+
if (update.docChanged || update.viewportChanged || syntaxTree(update.startState) !== syntaxTree(update.state)) {
|
|
2216
|
+
this.decorations = build(update.view);
|
|
2217
|
+
}
|
|
2218
|
+
}
|
|
2219
|
+
},
|
|
2220
|
+
{ decorations: (v) => v.decorations }
|
|
2221
|
+
);
|
|
2222
|
+
|
|
2223
|
+
// src/themes/markdown.ts
|
|
2224
|
+
import {
|
|
2225
|
+
HighlightStyle,
|
|
2226
|
+
syntaxHighlighting,
|
|
2227
|
+
syntaxTree as syntaxTree2
|
|
2228
|
+
} from "@codemirror/language";
|
|
2229
|
+
import { RangeSetBuilder as RangeSetBuilder3 } from "@codemirror/state";
|
|
2230
|
+
import {
|
|
2231
|
+
Decoration as Decoration3,
|
|
2232
|
+
EditorView as EditorView3,
|
|
2233
|
+
ViewPlugin as ViewPlugin3,
|
|
2234
|
+
WidgetType as WidgetType2
|
|
2235
|
+
} from "@codemirror/view";
|
|
2156
2236
|
var bodyFont = (style) => style == "serif" ? 'var(--text-editor-family-serif, "Merriweather", serif)' : "var(--text-editor-family-sans)";
|
|
2157
2237
|
var markdownStyles = (style) => ({
|
|
2158
2238
|
"&": {},
|
|
@@ -2208,6 +2288,14 @@ var markdownStyles = (style) => ({
|
|
|
2208
2288
|
color: "var(--text-editor-line)",
|
|
2209
2289
|
verticalAlign: "0.15em"
|
|
2210
2290
|
},
|
|
2291
|
+
".cm-task": {
|
|
2292
|
+
margin: "0 0.1em",
|
|
2293
|
+
verticalAlign: "-0.1em",
|
|
2294
|
+
cursor: "pointer"
|
|
2295
|
+
},
|
|
2296
|
+
".cm-task:disabled": {
|
|
2297
|
+
cursor: "default"
|
|
2298
|
+
},
|
|
2211
2299
|
".cm-activeLine": {
|
|
2212
2300
|
backgroundColor: "inherit"
|
|
2213
2301
|
},
|
|
@@ -2360,12 +2448,12 @@ var markdownSyntaxHighlighting = (style) => HighlightStyle.define([
|
|
|
2360
2448
|
{ tag: tags.monospace, ...baseCodeStyles }
|
|
2361
2449
|
]);
|
|
2362
2450
|
var theme = (style) => [
|
|
2363
|
-
|
|
2451
|
+
EditorView3.theme(markdownStyles(style)),
|
|
2364
2452
|
syntaxHighlighting(markdownSyntaxHighlighting(style)),
|
|
2365
2453
|
bullets,
|
|
2366
2454
|
codeblocks
|
|
2367
2455
|
];
|
|
2368
|
-
var bullets =
|
|
2456
|
+
var bullets = ViewPlugin3.fromClass(
|
|
2369
2457
|
class {
|
|
2370
2458
|
decorations;
|
|
2371
2459
|
view;
|
|
@@ -2379,9 +2467,9 @@ var bullets = ViewPlugin2.fromClass(
|
|
|
2379
2467
|
}
|
|
2380
2468
|
}
|
|
2381
2469
|
build() {
|
|
2382
|
-
const builder = new
|
|
2470
|
+
const builder = new RangeSetBuilder3();
|
|
2383
2471
|
const doc = this.view.state.doc;
|
|
2384
|
-
|
|
2472
|
+
syntaxTree2(this.view.state).iterate({
|
|
2385
2473
|
enter: ({ type, from }) => {
|
|
2386
2474
|
if (type.name === "ListMark") {
|
|
2387
2475
|
const char = doc.sliceString(from, from + 1);
|
|
@@ -2389,7 +2477,7 @@ var bullets = ViewPlugin2.fromClass(
|
|
|
2389
2477
|
builder.add(
|
|
2390
2478
|
from,
|
|
2391
2479
|
from + 1,
|
|
2392
|
-
|
|
2480
|
+
Decoration3.replace({ widget: new BulletWidget() })
|
|
2393
2481
|
);
|
|
2394
2482
|
}
|
|
2395
2483
|
}
|
|
@@ -2402,16 +2490,16 @@ var bullets = ViewPlugin2.fromClass(
|
|
|
2402
2490
|
decorations: (v) => v.decorations
|
|
2403
2491
|
}
|
|
2404
2492
|
);
|
|
2405
|
-
var BulletWidget = class extends
|
|
2493
|
+
var BulletWidget = class extends WidgetType2 {
|
|
2406
2494
|
toDOM() {
|
|
2407
2495
|
const span = document.createElement("span");
|
|
2408
2496
|
span.className = "cm-bullet";
|
|
2409
2497
|
return span;
|
|
2410
2498
|
}
|
|
2411
2499
|
};
|
|
2412
|
-
var codeblocks =
|
|
2500
|
+
var codeblocks = ViewPlugin3.fromClass(
|
|
2413
2501
|
class BlockquotePlugin {
|
|
2414
|
-
decorations =
|
|
2502
|
+
decorations = Decoration3.none;
|
|
2415
2503
|
constructor(view) {
|
|
2416
2504
|
this.buildDeco(view);
|
|
2417
2505
|
}
|
|
@@ -2419,7 +2507,7 @@ var codeblocks = ViewPlugin2.fromClass(
|
|
|
2419
2507
|
this.buildDeco(update.view);
|
|
2420
2508
|
}
|
|
2421
2509
|
buildDeco(view) {
|
|
2422
|
-
const builder = new
|
|
2510
|
+
const builder = new RangeSetBuilder3();
|
|
2423
2511
|
view.viewportLineBlocks.forEach((line) => {
|
|
2424
2512
|
const lineObj = view.state.doc.lineAt(line.from);
|
|
2425
2513
|
const match = /^>.*/g.exec(lineObj.text);
|
|
@@ -2427,7 +2515,7 @@ var codeblocks = ViewPlugin2.fromClass(
|
|
|
2427
2515
|
builder.add(
|
|
2428
2516
|
line.from,
|
|
2429
2517
|
line.from,
|
|
2430
|
-
|
|
2518
|
+
Decoration3.line({ class: "codeblock" })
|
|
2431
2519
|
);
|
|
2432
2520
|
}
|
|
2433
2521
|
});
|
|
@@ -2449,8 +2537,10 @@ function markdownExtensions() {
|
|
|
2449
2537
|
...completionKeymap,
|
|
2450
2538
|
indentWithTab
|
|
2451
2539
|
]),
|
|
2452
|
-
|
|
2453
|
-
|
|
2540
|
+
EditorView4.lineWrapping,
|
|
2541
|
+
// GFM base: task lists, tables, strikethrough, autolinks.
|
|
2542
|
+
markdown({ base: markdownLanguage, codeLanguages: languages }),
|
|
2543
|
+
taskCheckboxes,
|
|
2454
2544
|
indentUnit.of(" ")
|
|
2455
2545
|
];
|
|
2456
2546
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/extensions/markdown.ts", "../../node_modules/.pnpm/@codemirror+language-data@6.5.2/node_modules/@codemirror/language-data/dist/index.js", "../../node_modules/.pnpm/@codemirror+search@6.6.0/node_modules/@codemirror/search/dist/index.js", "../../node_modules/.pnpm/crelt@1.0.6/node_modules/crelt/index.js", "../../src/extensions/formatting.ts", "../../src/themes/markdown.ts"],
|
|
4
|
-
"sourcesContent": ["/** CodeMirror Extensions */\nimport { completionKeymap } from \"@codemirror/autocomplete\";\nimport { defaultKeymap, indentWithTab } from \"@codemirror/commands\";\nimport { markdown } from \"@codemirror/lang-markdown\";\nimport { foldKeymap, indentOnInput, indentUnit } from \"@codemirror/language\";\nimport { languages } from \"@codemirror/language-data\";\nimport { searchKeymap } from \"@codemirror/search\";\nimport { EditorView, keymap } from \"@codemirror/view\";\n\nimport { markdownFormattingKeymap } from \"./formatting.ts\";\n\n/** Styles */\nimport { theme } from \"../themes/markdown.ts\";\n\n// Undo/redo (`history()`/`historyKeymap`) is deliberately absent: the base\n// editor (codemirror-base) owns it, so it can reset the stack when a scope\n// swap re-points the doc handle (see codemirror-base's history extension).\n// Adding a second `history()` here would keep the underlying singleton state\n// field alive across that reset and break it.\nexport function markdownExtensions() {\n return [\n ...theme(\"sans\"),\n indentOnInput(),\n keymap.of([\n ...markdownFormattingKeymap,\n ...defaultKeymap,\n ...searchKeymap,\n ...foldKeymap,\n ...completionKeymap,\n indentWithTab,\n ]),\n EditorView.lineWrapping,\n markdown({ codeLanguages: languages }),\n indentUnit.of(\" \"),\n ];\n}\n", "import { LanguageDescription, LanguageSupport, StreamLanguage } from '@codemirror/language';\n\nfunction legacy(parser) {\n return new LanguageSupport(StreamLanguage.define(parser));\n}\nfunction sql(dialectName) {\n return import('@codemirror/lang-sql').then(m => m.sql({ dialect: m[dialectName] }));\n}\n/**\nAn array of language descriptions for known language packages.\n*/\nconst languages = [\n // New-style language modes\n /*@__PURE__*/LanguageDescription.of({\n name: \"C\",\n extensions: [\"c\", \"h\", \"ino\"],\n load() {\n return import('@codemirror/lang-cpp').then(m => m.cpp());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"C++\",\n alias: [\"cpp\"],\n extensions: [\"cpp\", \"c++\", \"cc\", \"cxx\", \"hpp\", \"h++\", \"hh\", \"hxx\"],\n load() {\n return import('@codemirror/lang-cpp').then(m => m.cpp());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"CQL\",\n alias: [\"cassandra\"],\n extensions: [\"cql\"],\n load() { return sql(\"Cassandra\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"CSS\",\n extensions: [\"css\"],\n load() {\n return import('@codemirror/lang-css').then(m => m.css());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Go\",\n extensions: [\"go\"],\n load() {\n return import('@codemirror/lang-go').then(m => m.go());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"HTML\",\n alias: [\"xhtml\"],\n extensions: [\"html\", \"htm\", \"handlebars\", \"hbs\"],\n load() {\n return import('@codemirror/lang-html').then(m => m.html());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Java\",\n extensions: [\"java\"],\n load() {\n return import('@codemirror/lang-java').then(m => m.java());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"JavaScript\",\n alias: [\"ecmascript\", \"js\", \"node\"],\n extensions: [\"js\", \"mjs\", \"cjs\"],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Jinja\",\n extensions: [\"j2\", \"jinja\", \"jinja2\"],\n load() {\n return import('@codemirror/lang-jinja').then(m => m.jinja());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"JSON\",\n alias: [\"json5\"],\n extensions: [\"json\", \"map\"],\n load() {\n return import('@codemirror/lang-json').then(m => m.json());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"JSX\",\n extensions: [\"jsx\"],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ jsx: true }));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"LESS\",\n extensions: [\"less\"],\n load() {\n return import('@codemirror/lang-less').then(m => m.less());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Liquid\",\n extensions: [\"liquid\"],\n load() {\n return import('@codemirror/lang-liquid').then(m => m.liquid());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"MariaDB SQL\",\n load() { return sql(\"MariaSQL\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Markdown\",\n extensions: [\"md\", \"markdown\", \"mkd\"],\n load() {\n return import('@codemirror/lang-markdown').then(m => m.markdown());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"MS SQL\",\n load() { return sql(\"MSSQL\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"MySQL\",\n load() { return sql(\"MySQL\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"PHP\",\n extensions: [\"php\", \"php3\", \"php4\", \"php5\", \"php7\", \"phtml\"],\n load() {\n return import('@codemirror/lang-php').then(m => m.php());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"PLSQL\",\n extensions: [\"pls\"],\n load() { return sql(\"PLSQL\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"PostgreSQL\",\n load() { return sql(\"PostgreSQL\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Python\",\n extensions: [\"BUILD\", \"bzl\", \"py\", \"pyw\"],\n filename: /^(BUCK|BUILD)$/,\n load() {\n return import('@codemirror/lang-python').then(m => m.python());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Rust\",\n extensions: [\"rs\"],\n load() {\n return import('@codemirror/lang-rust').then(m => m.rust());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Sass\",\n extensions: [\"sass\"],\n load() {\n return import('@codemirror/lang-sass').then(m => m.sass({ indented: true }));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SCSS\",\n extensions: [\"scss\"],\n load() {\n return import('@codemirror/lang-sass').then(m => m.sass());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SQL\",\n extensions: [\"sql\"],\n load() { return sql(\"StandardSQL\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SQLite\",\n load() { return sql(\"SQLite\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"TSX\",\n extensions: [\"tsx\"],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ jsx: true, typescript: true }));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"TypeScript\",\n alias: [\"ts\"],\n extensions: [\"ts\", \"mts\", \"cts\"],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ typescript: true }));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"WebAssembly\",\n extensions: [\"wat\", \"wast\"],\n load() {\n return import('@codemirror/lang-wast').then(m => m.wast());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"XML\",\n alias: [\"rss\", \"wsdl\", \"xsd\"],\n extensions: [\"xml\", \"xsl\", \"xsd\", \"svg\"],\n load() {\n return import('@codemirror/lang-xml').then(m => m.xml());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"YAML\",\n alias: [\"yml\"],\n extensions: [\"yaml\", \"yml\"],\n load() {\n return import('@codemirror/lang-yaml').then(m => m.yaml());\n }\n }),\n // Legacy modes ported from CodeMirror 5\n /*@__PURE__*/LanguageDescription.of({\n name: \"APL\",\n extensions: [\"dyalog\", \"apl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/apl').then(m => legacy(m.apl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"PGP\",\n alias: [\"asciiarmor\"],\n extensions: [\"asc\", \"pgp\", \"sig\"],\n load() {\n return import('@codemirror/legacy-modes/mode/asciiarmor').then(m => legacy(m.asciiArmor));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"ASN.1\",\n extensions: [\"asn\", \"asn1\"],\n load() {\n return import('@codemirror/legacy-modes/mode/asn1').then(m => legacy(m.asn1({})));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Asterisk\",\n filename: /^extensions\\.conf$/i,\n load() {\n return import('@codemirror/legacy-modes/mode/asterisk').then(m => legacy(m.asterisk));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Brainfuck\",\n extensions: [\"b\", \"bf\"],\n load() {\n return import('@codemirror/legacy-modes/mode/brainfuck').then(m => legacy(m.brainfuck));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Cobol\",\n extensions: [\"cob\", \"cpy\"],\n load() {\n return import('@codemirror/legacy-modes/mode/cobol').then(m => legacy(m.cobol));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"C#\",\n alias: [\"csharp\", \"cs\"],\n extensions: [\"cs\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.csharp));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Clojure\",\n extensions: [\"clj\", \"cljc\", \"cljx\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clojure').then(m => legacy(m.clojure));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"ClojureScript\",\n extensions: [\"cljs\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clojure').then(m => legacy(m.clojure));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Closure Stylesheets (GSS)\",\n extensions: [\"gss\"],\n load() {\n return import('@codemirror/legacy-modes/mode/css').then(m => legacy(m.gss));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"CMake\",\n extensions: [\"cmake\", \"cmake.in\"],\n filename: /^CMakeLists\\.txt$/,\n load() {\n return import('@codemirror/legacy-modes/mode/cmake').then(m => legacy(m.cmake));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"CoffeeScript\",\n alias: [\"coffee\", \"coffee-script\"],\n extensions: [\"coffee\"],\n load() {\n return import('@codemirror/legacy-modes/mode/coffeescript').then(m => legacy(m.coffeeScript));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Common Lisp\",\n alias: [\"lisp\"],\n extensions: [\"cl\", \"lisp\", \"el\"],\n load() {\n return import('@codemirror/legacy-modes/mode/commonlisp').then(m => legacy(m.commonLisp));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Cypher\",\n extensions: [\"cyp\", \"cypher\"],\n load() {\n return import('@codemirror/legacy-modes/mode/cypher').then(m => legacy(m.cypher));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Cython\",\n extensions: [\"pyx\", \"pxd\", \"pxi\"],\n load() {\n return import('@codemirror/legacy-modes/mode/python').then(m => legacy(m.cython));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Crystal\",\n extensions: [\"cr\"],\n load() {\n return import('@codemirror/legacy-modes/mode/crystal').then(m => legacy(m.crystal));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"D\",\n extensions: [\"d\"],\n load() {\n return import('@codemirror/legacy-modes/mode/d').then(m => legacy(m.d));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Dart\",\n extensions: [\"dart\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.dart));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"diff\",\n extensions: [\"diff\", \"patch\"],\n load() {\n return import('@codemirror/legacy-modes/mode/diff').then(m => legacy(m.diff));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Dockerfile\",\n filename: /^Dockerfile$/,\n load() {\n return import('@codemirror/legacy-modes/mode/dockerfile').then(m => legacy(m.dockerFile));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"DTD\",\n extensions: [\"dtd\"],\n load() {\n return import('@codemirror/legacy-modes/mode/dtd').then(m => legacy(m.dtd));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Dylan\",\n extensions: [\"dylan\", \"dyl\", \"intr\"],\n load() {\n return import('@codemirror/legacy-modes/mode/dylan').then(m => legacy(m.dylan));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"EBNF\",\n load() {\n return import('@codemirror/legacy-modes/mode/ebnf').then(m => legacy(m.ebnf));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"ECL\",\n extensions: [\"ecl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/ecl').then(m => legacy(m.ecl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"edn\",\n extensions: [\"edn\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clojure').then(m => legacy(m.clojure));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Eiffel\",\n extensions: [\"e\"],\n load() {\n return import('@codemirror/legacy-modes/mode/eiffel').then(m => legacy(m.eiffel));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Elm\",\n extensions: [\"elm\"],\n load() {\n return import('@codemirror/legacy-modes/mode/elm').then(m => legacy(m.elm));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Erlang\",\n extensions: [\"erl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/erlang').then(m => legacy(m.erlang));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Esper\",\n load() {\n return import('@codemirror/legacy-modes/mode/sql').then(m => legacy(m.esper));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Factor\",\n extensions: [\"factor\"],\n load() {\n return import('@codemirror/legacy-modes/mode/factor').then(m => legacy(m.factor));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"FCL\",\n load() {\n return import('@codemirror/legacy-modes/mode/fcl').then(m => legacy(m.fcl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Forth\",\n extensions: [\"forth\", \"fth\", \"4th\"],\n load() {\n return import('@codemirror/legacy-modes/mode/forth').then(m => legacy(m.forth));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Fortran\",\n extensions: [\"f\", \"for\", \"f77\", \"f90\", \"f95\"],\n load() {\n return import('@codemirror/legacy-modes/mode/fortran').then(m => legacy(m.fortran));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"F#\",\n alias: [\"fsharp\"],\n extensions: [\"fs\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mllike').then(m => legacy(m.fSharp));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Gas\",\n extensions: [\"s\"],\n load() {\n return import('@codemirror/legacy-modes/mode/gas').then(m => legacy(m.gas));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Gherkin\",\n extensions: [\"feature\"],\n load() {\n return import('@codemirror/legacy-modes/mode/gherkin').then(m => legacy(m.gherkin));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Groovy\",\n extensions: [\"groovy\", \"gradle\"],\n filename: /^Jenkinsfile$/,\n load() {\n return import('@codemirror/legacy-modes/mode/groovy').then(m => legacy(m.groovy));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Haskell\",\n extensions: [\"hs\"],\n load() {\n return import('@codemirror/legacy-modes/mode/haskell').then(m => legacy(m.haskell));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Haxe\",\n extensions: [\"hx\"],\n load() {\n return import('@codemirror/legacy-modes/mode/haxe').then(m => legacy(m.haxe));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"HXML\",\n extensions: [\"hxml\"],\n load() {\n return import('@codemirror/legacy-modes/mode/haxe').then(m => legacy(m.hxml));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"HTTP\",\n load() {\n return import('@codemirror/legacy-modes/mode/http').then(m => legacy(m.http));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"IDL\",\n extensions: [\"pro\"],\n load() {\n return import('@codemirror/legacy-modes/mode/idl').then(m => legacy(m.idl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"JSON-LD\",\n alias: [\"jsonld\"],\n extensions: [\"jsonld\"],\n load() {\n return import('@codemirror/legacy-modes/mode/javascript').then(m => legacy(m.jsonld));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Julia\",\n extensions: [\"jl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/julia').then(m => legacy(m.julia));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Kotlin\",\n extensions: [\"kt\", \"kts\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.kotlin));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"LiveScript\",\n alias: [\"ls\"],\n extensions: [\"ls\"],\n load() {\n return import('@codemirror/legacy-modes/mode/livescript').then(m => legacy(m.liveScript));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Lua\",\n extensions: [\"lua\"],\n load() {\n return import('@codemirror/legacy-modes/mode/lua').then(m => legacy(m.lua));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"mIRC\",\n extensions: [\"mrc\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mirc').then(m => legacy(m.mirc));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Mathematica\",\n extensions: [\"m\", \"nb\", \"wl\", \"wls\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mathematica').then(m => legacy(m.mathematica));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Modelica\",\n extensions: [\"mo\"],\n load() {\n return import('@codemirror/legacy-modes/mode/modelica').then(m => legacy(m.modelica));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"MUMPS\",\n extensions: [\"mps\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mumps').then(m => legacy(m.mumps));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Mbox\",\n extensions: [\"mbox\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mbox').then(m => legacy(m.mbox));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Nginx\",\n filename: /nginx.*\\.conf$/i,\n load() {\n return import('@codemirror/legacy-modes/mode/nginx').then(m => legacy(m.nginx));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"NSIS\",\n extensions: [\"nsh\", \"nsi\"],\n load() {\n return import('@codemirror/legacy-modes/mode/nsis').then(m => legacy(m.nsis));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"NTriples\",\n extensions: [\"nt\", \"nq\"],\n load() {\n return import('@codemirror/legacy-modes/mode/ntriples').then(m => legacy(m.ntriples));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Objective-C\",\n alias: [\"objective-c\", \"objc\"],\n extensions: [\"m\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.objectiveC));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Objective-C++\",\n alias: [\"objective-c++\", \"objc++\"],\n extensions: [\"mm\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.objectiveCpp));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"OCaml\",\n extensions: [\"ml\", \"mli\", \"mll\", \"mly\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mllike').then(m => legacy(m.oCaml));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Octave\",\n extensions: [\"m\"],\n load() {\n return import('@codemirror/legacy-modes/mode/octave').then(m => legacy(m.octave));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Oz\",\n extensions: [\"oz\"],\n load() {\n return import('@codemirror/legacy-modes/mode/oz').then(m => legacy(m.oz));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Pascal\",\n extensions: [\"p\", \"pas\"],\n load() {\n return import('@codemirror/legacy-modes/mode/pascal').then(m => legacy(m.pascal));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Perl\",\n extensions: [\"pl\", \"pm\"],\n load() {\n return import('@codemirror/legacy-modes/mode/perl').then(m => legacy(m.perl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Pig\",\n extensions: [\"pig\"],\n load() {\n return import('@codemirror/legacy-modes/mode/pig').then(m => legacy(m.pig));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"PowerShell\",\n extensions: [\"ps1\", \"psd1\", \"psm1\"],\n load() {\n return import('@codemirror/legacy-modes/mode/powershell').then(m => legacy(m.powerShell));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Properties files\",\n alias: [\"ini\", \"properties\"],\n extensions: [\"properties\", \"ini\", \"in\"],\n load() {\n return import('@codemirror/legacy-modes/mode/properties').then(m => legacy(m.properties));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"ProtoBuf\",\n extensions: [\"proto\"],\n load() {\n return import('@codemirror/legacy-modes/mode/protobuf').then(m => legacy(m.protobuf));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Pug\",\n alias: [\"jade\"],\n extensions: [\"pug\", \"jade\"],\n load() {\n return import('@codemirror/legacy-modes/mode/pug').then(m => legacy(m.pug));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Puppet\",\n extensions: [\"pp\"],\n load() {\n return import('@codemirror/legacy-modes/mode/puppet').then(m => legacy(m.puppet));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Q\",\n extensions: [\"q\"],\n load() {\n return import('@codemirror/legacy-modes/mode/q').then(m => legacy(m.q));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"R\",\n alias: [\"rscript\"],\n extensions: [\"r\", \"R\"],\n load() {\n return import('@codemirror/legacy-modes/mode/r').then(m => legacy(m.r));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"RPM Changes\",\n load() {\n return import('@codemirror/legacy-modes/mode/rpm').then(m => legacy(m.rpmChanges));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"RPM Spec\",\n extensions: [\"spec\"],\n load() {\n return import('@codemirror/legacy-modes/mode/rpm').then(m => legacy(m.rpmSpec));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Ruby\",\n alias: [\"jruby\", \"macruby\", \"rake\", \"rb\", \"rbx\"],\n extensions: [\"rb\"],\n filename: /^(Gemfile|Rakefile)$/,\n load() {\n return import('@codemirror/legacy-modes/mode/ruby').then(m => legacy(m.ruby));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SAS\",\n extensions: [\"sas\"],\n load() {\n return import('@codemirror/legacy-modes/mode/sas').then(m => legacy(m.sas));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Scala\",\n extensions: [\"scala\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.scala));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Scheme\",\n extensions: [\"scm\", \"ss\"],\n load() {\n return import('@codemirror/legacy-modes/mode/scheme').then(m => legacy(m.scheme));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Shell\",\n alias: [\"bash\", \"sh\", \"zsh\"],\n extensions: [\"sh\", \"ksh\", \"bash\"],\n filename: /^PKGBUILD$/,\n load() {\n return import('@codemirror/legacy-modes/mode/shell').then(m => legacy(m.shell));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Sieve\",\n extensions: [\"siv\", \"sieve\"],\n load() {\n return import('@codemirror/legacy-modes/mode/sieve').then(m => legacy(m.sieve));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Smalltalk\",\n extensions: [\"st\"],\n load() {\n return import('@codemirror/legacy-modes/mode/smalltalk').then(m => legacy(m.smalltalk));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Solr\",\n load() {\n return import('@codemirror/legacy-modes/mode/solr').then(m => legacy(m.solr));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SML\",\n extensions: [\"sml\", \"sig\", \"fun\", \"smackspec\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mllike').then(m => legacy(m.sml));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SPARQL\",\n alias: [\"sparul\"],\n extensions: [\"rq\", \"sparql\"],\n load() {\n return import('@codemirror/legacy-modes/mode/sparql').then(m => legacy(m.sparql));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Spreadsheet\",\n alias: [\"excel\", \"formula\"],\n load() {\n return import('@codemirror/legacy-modes/mode/spreadsheet').then(m => legacy(m.spreadsheet));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Squirrel\",\n extensions: [\"nut\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.squirrel));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Stylus\",\n extensions: [\"styl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/stylus').then(m => legacy(m.stylus));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Swift\",\n extensions: [\"swift\"],\n load() {\n return import('@codemirror/legacy-modes/mode/swift').then(m => legacy(m.swift));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"sTeX\",\n load() {\n return import('@codemirror/legacy-modes/mode/stex').then(m => legacy(m.stex));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"LaTeX\",\n alias: [\"tex\"],\n extensions: [\"text\", \"ltx\", \"tex\"],\n load() {\n return import('@codemirror/legacy-modes/mode/stex').then(m => legacy(m.stex));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SystemVerilog\",\n extensions: [\"v\", \"sv\", \"svh\"],\n load() {\n return import('@codemirror/legacy-modes/mode/verilog').then(m => legacy(m.verilog));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Tcl\",\n extensions: [\"tcl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/tcl').then(m => legacy(m.tcl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Textile\",\n extensions: [\"textile\"],\n load() {\n return import('@codemirror/legacy-modes/mode/textile').then(m => legacy(m.textile));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"TiddlyWiki\",\n load() {\n return import('@codemirror/legacy-modes/mode/tiddlywiki').then(m => legacy(m.tiddlyWiki));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Tiki wiki\",\n load() {\n return import('@codemirror/legacy-modes/mode/tiki').then(m => legacy(m.tiki));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"TOML\",\n extensions: [\"toml\"],\n load() {\n return import('@codemirror/legacy-modes/mode/toml').then(m => legacy(m.toml));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Troff\",\n extensions: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\n load() {\n return import('@codemirror/legacy-modes/mode/troff').then(m => legacy(m.troff));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"TTCN\",\n extensions: [\"ttcn\", \"ttcn3\", \"ttcnpp\"],\n load() {\n return import('@codemirror/legacy-modes/mode/ttcn').then(m => legacy(m.ttcn));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"TTCN_CFG\",\n extensions: [\"cfg\"],\n load() {\n return import('@codemirror/legacy-modes/mode/ttcn-cfg').then(m => legacy(m.ttcnCfg));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Turtle\",\n extensions: [\"ttl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/turtle').then(m => legacy(m.turtle));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Web IDL\",\n extensions: [\"webidl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/webidl').then(m => legacy(m.webIDL));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"VB.NET\",\n extensions: [\"vb\"],\n load() {\n return import('@codemirror/legacy-modes/mode/vb').then(m => legacy(m.vb));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"VBScript\",\n extensions: [\"vbs\"],\n load() {\n return import('@codemirror/legacy-modes/mode/vbscript').then(m => legacy(m.vbScript));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Velocity\",\n extensions: [\"vtl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/velocity').then(m => legacy(m.velocity));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Verilog\",\n extensions: [\"v\"],\n load() {\n return import('@codemirror/legacy-modes/mode/verilog').then(m => legacy(m.verilog));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"VHDL\",\n extensions: [\"vhd\", \"vhdl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/vhdl').then(m => legacy(m.vhdl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"XQuery\",\n extensions: [\"xy\", \"xquery\", \"xq\", \"xqm\", \"xqy\"],\n load() {\n return import('@codemirror/legacy-modes/mode/xquery').then(m => legacy(m.xQuery));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Yacas\",\n extensions: [\"ys\"],\n load() {\n return import('@codemirror/legacy-modes/mode/yacas').then(m => legacy(m.yacas));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Z80\",\n extensions: [\"z80\"],\n load() {\n return import('@codemirror/legacy-modes/mode/z80').then(m => legacy(m.z80));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"MscGen\",\n extensions: [\"mscgen\", \"mscin\", \"msc\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mscgen').then(m => legacy(m.mscgen));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"X\u00F9\",\n extensions: [\"xu\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mscgen').then(m => legacy(m.xu));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"MsGenny\",\n extensions: [\"msgenny\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mscgen').then(m => legacy(m.msgenny));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Vue\",\n extensions: [\"vue\"],\n load() {\n return import('@codemirror/lang-vue').then(m => m.vue());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Angular Template\",\n load() {\n return import('@codemirror/lang-angular').then(m => m.angular());\n }\n })\n];\n\nexport { languages };\n", "import { showDialog, EditorView, Decoration, ViewPlugin, showPanel, runScopeHandlers, getPanel } from '@codemirror/view';\nimport { codePointAt, fromCodePoint, codePointSize, EditorSelection, Facet, combineConfig, CharCategory, StateEffect, StateField, RangeSetBuilder, Prec, EditorState, findClusterBreak } from '@codemirror/state';\nimport elt from 'crelt';\n\nconst basicNormalize = typeof String.prototype.normalize == \"function\"\n ? x => x.normalize(\"NFKD\") : x => x;\n/**\nA search cursor provides an iterator over text matches in a\ndocument.\n*/\nclass SearchCursor {\n /**\n Create a text cursor. The query is the search string, `from` to\n `to` provides the region to search.\n \n When `normalize` is given, it will be called, on both the query\n string and the content it is matched against, before comparing.\n You can, for example, create a case-insensitive search by\n passing `s => s.toLowerCase()`.\n \n Text is always normalized with\n [`.normalize(\"NFKD\")`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize)\n (when supported).\n */\n constructor(text, query, from = 0, to = text.length, normalize, test) {\n this.test = test;\n /**\n The current match (only holds a meaningful value after\n [`next`](https://codemirror.net/6/docs/ref/#search.SearchCursor.next) has been called and when\n `done` is false).\n */\n this.value = { from: 0, to: 0 };\n /**\n Whether the end of the iterated region has been reached.\n */\n this.done = false;\n this.matches = [];\n this.buffer = \"\";\n this.bufferPos = 0;\n this.iter = text.iterRange(from, to);\n this.bufferStart = from;\n this.normalize = normalize ? x => normalize(basicNormalize(x)) : basicNormalize;\n this.query = this.normalize(query);\n }\n peek() {\n if (this.bufferPos == this.buffer.length) {\n this.bufferStart += this.buffer.length;\n this.iter.next();\n if (this.iter.done)\n return -1;\n this.bufferPos = 0;\n this.buffer = this.iter.value;\n }\n return codePointAt(this.buffer, this.bufferPos);\n }\n /**\n Look for the next match. Updates the iterator's\n [`value`](https://codemirror.net/6/docs/ref/#search.SearchCursor.value) and\n [`done`](https://codemirror.net/6/docs/ref/#search.SearchCursor.done) properties. Should be called\n at least once before using the cursor.\n */\n next() {\n while (this.matches.length)\n this.matches.pop();\n return this.nextOverlapping();\n }\n /**\n The `next` method will ignore matches that partially overlap a\n previous match. This method behaves like `next`, but includes\n such matches.\n */\n nextOverlapping() {\n for (;;) {\n let next = this.peek();\n if (next < 0) {\n this.done = true;\n return this;\n }\n let str = fromCodePoint(next), start = this.bufferStart + this.bufferPos;\n this.bufferPos += codePointSize(next);\n let norm = this.normalize(str);\n if (norm.length)\n for (let i = 0, pos = start;; i++) {\n let code = norm.charCodeAt(i);\n let match = this.match(code, pos, this.bufferPos + this.bufferStart);\n if (i == norm.length - 1) {\n if (match) {\n this.value = match;\n return this;\n }\n break;\n }\n if (pos == start && i < str.length && str.charCodeAt(i) == code)\n pos++;\n }\n }\n }\n match(code, pos, end) {\n let match = null;\n for (let i = 0; i < this.matches.length; i += 2) {\n let index = this.matches[i], keep = false;\n if (this.query.charCodeAt(index) == code) {\n if (index == this.query.length - 1) {\n match = { from: this.matches[i + 1], to: end };\n }\n else {\n this.matches[i]++;\n keep = true;\n }\n }\n if (!keep) {\n this.matches.splice(i, 2);\n i -= 2;\n }\n }\n if (this.query.charCodeAt(0) == code) {\n if (this.query.length == 1)\n match = { from: pos, to: end };\n else\n this.matches.push(1, pos);\n }\n if (match && this.test && !this.test(match.from, match.to, this.buffer, this.bufferStart))\n match = null;\n return match;\n }\n}\nif (typeof Symbol != \"undefined\")\n SearchCursor.prototype[Symbol.iterator] = function () { return this; };\n\nconst empty = { from: -1, to: -1, match: /*@__PURE__*//.*/.exec(\"\") };\nconst baseFlags = \"gm\" + (/x/.unicode == null ? \"\" : \"u\");\n/**\nThis class is similar to [`SearchCursor`](https://codemirror.net/6/docs/ref/#search.SearchCursor)\nbut searches for a regular expression pattern instead of a plain\nstring.\n*/\nclass RegExpCursor {\n /**\n Create a cursor that will search the given range in the given\n document. `query` should be the raw pattern (as you'd pass it to\n `new RegExp`).\n */\n constructor(text, query, options, from = 0, to = text.length) {\n this.text = text;\n this.to = to;\n this.curLine = \"\";\n /**\n Set to `true` when the cursor has reached the end of the search\n range.\n */\n this.done = false;\n /**\n Will contain an object with the extent of the match and the\n match object when [`next`](https://codemirror.net/6/docs/ref/#search.RegExpCursor.next)\n sucessfully finds a match.\n */\n this.value = empty;\n if (/\\\\[sWDnr]|\\n|\\r|\\[\\^/.test(query))\n return new MultilineRegExpCursor(text, query, options, from, to);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.test = options === null || options === void 0 ? void 0 : options.test;\n this.iter = text.iter();\n let startLine = text.lineAt(from);\n this.curLineStart = startLine.from;\n this.matchPos = toCharEnd(text, from);\n this.getLine(this.curLineStart);\n }\n getLine(skip) {\n this.iter.next(skip);\n if (this.iter.lineBreak) {\n this.curLine = \"\";\n }\n else {\n this.curLine = this.iter.value;\n if (this.curLineStart + this.curLine.length > this.to)\n this.curLine = this.curLine.slice(0, this.to - this.curLineStart);\n this.iter.next();\n }\n }\n nextLine() {\n this.curLineStart = this.curLineStart + this.curLine.length + 1;\n if (this.curLineStart > this.to)\n this.curLine = \"\";\n else\n this.getLine(0);\n }\n /**\n Move to the next match, if there is one.\n */\n next() {\n for (let off = this.matchPos - this.curLineStart;;) {\n this.re.lastIndex = off;\n let match = this.matchPos <= this.to && this.re.exec(this.curLine);\n if (match) {\n let from = this.curLineStart + match.index, to = from + match[0].length;\n this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));\n if (from == this.curLineStart + this.curLine.length)\n this.nextLine();\n if ((from < to || from > this.value.to) && (!this.test || this.test(from, to, match))) {\n this.value = { from, to, match };\n return this;\n }\n off = this.matchPos - this.curLineStart;\n }\n else if (this.curLineStart + this.curLine.length < this.to) {\n this.nextLine();\n off = 0;\n }\n else {\n this.done = true;\n return this;\n }\n }\n }\n}\nconst flattened = /*@__PURE__*/new WeakMap();\n// Reusable (partially) flattened document strings\nclass FlattenedDoc {\n constructor(from, text) {\n this.from = from;\n this.text = text;\n }\n get to() { return this.from + this.text.length; }\n static get(doc, from, to) {\n let cached = flattened.get(doc);\n if (!cached || cached.from >= to || cached.to <= from) {\n let flat = new FlattenedDoc(from, doc.sliceString(from, to));\n flattened.set(doc, flat);\n return flat;\n }\n if (cached.from == from && cached.to == to)\n return cached;\n let { text, from: cachedFrom } = cached;\n if (cachedFrom > from) {\n text = doc.sliceString(from, cachedFrom) + text;\n cachedFrom = from;\n }\n if (cached.to < to)\n text += doc.sliceString(cached.to, to);\n flattened.set(doc, new FlattenedDoc(cachedFrom, text));\n return new FlattenedDoc(from, text.slice(from - cachedFrom, to - cachedFrom));\n }\n}\nclass MultilineRegExpCursor {\n constructor(text, query, options, from, to) {\n this.text = text;\n this.to = to;\n this.done = false;\n this.value = empty;\n this.matchPos = toCharEnd(text, from);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.test = options === null || options === void 0 ? void 0 : options.test;\n this.flat = FlattenedDoc.get(text, from, this.chunkEnd(from + 5000 /* Chunk.Base */));\n }\n chunkEnd(pos) {\n return pos >= this.to ? this.to : this.text.lineAt(pos).to;\n }\n next() {\n for (;;) {\n let off = this.re.lastIndex = this.matchPos - this.flat.from;\n let match = this.re.exec(this.flat.text);\n // Skip empty matches directly after the last match\n if (match && !match[0] && match.index == off) {\n this.re.lastIndex = off + 1;\n match = this.re.exec(this.flat.text);\n }\n if (match) {\n let from = this.flat.from + match.index, to = from + match[0].length;\n // If a match goes almost to the end of a noncomplete chunk, try\n // again, since it'll likely be able to match more\n if ((this.flat.to >= this.to || match.index + match[0].length <= this.flat.text.length - 10) &&\n (!this.test || this.test(from, to, match))) {\n this.value = { from, to, match };\n this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));\n return this;\n }\n }\n if (this.flat.to == this.to) {\n this.done = true;\n return this;\n }\n // Grow the flattened doc\n this.flat = FlattenedDoc.get(this.text, this.flat.from, this.chunkEnd(this.flat.from + this.flat.text.length * 2));\n }\n }\n}\nif (typeof Symbol != \"undefined\") {\n RegExpCursor.prototype[Symbol.iterator] = MultilineRegExpCursor.prototype[Symbol.iterator] =\n function () { return this; };\n}\nfunction validRegExp(source) {\n try {\n new RegExp(source, baseFlags);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction toCharEnd(text, pos) {\n if (pos >= text.length)\n return pos;\n let line = text.lineAt(pos), next;\n while (pos < line.to && (next = line.text.charCodeAt(pos - line.from)) >= 0xDC00 && next < 0xE000)\n pos++;\n return pos;\n}\n\n/**\nCommand that shows a dialog asking the user for a line number, and\nwhen a valid position is provided, moves the cursor to that line.\n\nSupports line numbers, relative line offsets prefixed with `+` or\n`-`, document percentages suffixed with `%`, and an optional\ncolumn position by adding `:` and a second number after the line\nnumber.\n*/\nconst gotoLine = view => {\n let { state } = view;\n let line = String(state.doc.lineAt(view.state.selection.main.head).number);\n let { close, result } = showDialog(view, {\n label: state.phrase(\"Go to line\"),\n input: { type: \"text\", name: \"line\", value: line },\n focus: true,\n submitLabel: state.phrase(\"go\"),\n });\n result.then(form => {\n let match = form && /^([+-])?(\\d+)?(:\\d+)?(%)?$/.exec(form.elements[\"line\"].value);\n if (!match) {\n view.dispatch({ effects: close });\n return;\n }\n let startLine = state.doc.lineAt(state.selection.main.head);\n let [, sign, ln, cl, percent] = match;\n let col = cl ? +cl.slice(1) : 0;\n let line = ln ? +ln : startLine.number;\n if (ln && percent) {\n let pc = line / 100;\n if (sign)\n pc = pc * (sign == \"-\" ? -1 : 1) + (startLine.number / state.doc.lines);\n line = Math.round(state.doc.lines * pc);\n }\n else if (ln && sign) {\n line = line * (sign == \"-\" ? -1 : 1) + startLine.number;\n }\n let docLine = state.doc.line(Math.max(1, Math.min(state.doc.lines, line)));\n let selection = EditorSelection.cursor(docLine.from + Math.max(0, Math.min(col, docLine.length)));\n view.dispatch({\n effects: [close, EditorView.scrollIntoView(selection.from, { y: 'center' })],\n selection,\n });\n });\n return true;\n};\n\nconst defaultHighlightOptions = {\n highlightWordAroundCursor: false,\n minSelectionLength: 1,\n maxMatches: 100,\n wholeWords: false\n};\nconst highlightConfig = /*@__PURE__*/Facet.define({\n combine(options) {\n return combineConfig(options, defaultHighlightOptions, {\n highlightWordAroundCursor: (a, b) => a || b,\n minSelectionLength: Math.min,\n maxMatches: Math.min\n });\n }\n});\n/**\nThis extension highlights text that matches the selection. It uses\nthe `\"cm-selectionMatch\"` class for the highlighting. When\n`highlightWordAroundCursor` is enabled, the word at the cursor\nitself will be highlighted with `\"cm-selectionMatch-main\"`.\n*/\nfunction highlightSelectionMatches(options) {\n let ext = [defaultTheme, matchHighlighter];\n if (options)\n ext.push(highlightConfig.of(options));\n return ext;\n}\nconst matchDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-selectionMatch\" });\nconst mainMatchDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-selectionMatch cm-selectionMatch-main\" });\n// Whether the characters directly outside the given positions are non-word characters\nfunction insideWordBoundaries(check, state, from, to) {\n return (from == 0 || check(state.sliceDoc(from - 1, from)) != CharCategory.Word) &&\n (to == state.doc.length || check(state.sliceDoc(to, to + 1)) != CharCategory.Word);\n}\n// Whether the characters directly at the given positions are word characters\nfunction insideWord(check, state, from, to) {\n return check(state.sliceDoc(from, from + 1)) == CharCategory.Word\n && check(state.sliceDoc(to - 1, to)) == CharCategory.Word;\n}\nconst matchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.decorations = this.getDeco(view);\n }\n update(update) {\n if (update.selectionSet || update.docChanged || update.viewportChanged)\n this.decorations = this.getDeco(update.view);\n }\n getDeco(view) {\n let conf = view.state.facet(highlightConfig);\n let { state } = view, sel = state.selection;\n if (sel.ranges.length > 1)\n return Decoration.none;\n let range = sel.main, query, check = null;\n if (range.empty) {\n if (!conf.highlightWordAroundCursor)\n return Decoration.none;\n let word = state.wordAt(range.head);\n if (!word)\n return Decoration.none;\n check = state.charCategorizer(range.head);\n query = state.sliceDoc(word.from, word.to);\n }\n else {\n let len = range.to - range.from;\n if (len < conf.minSelectionLength || len > 200)\n return Decoration.none;\n if (conf.wholeWords) {\n query = state.sliceDoc(range.from, range.to); // TODO: allow and include leading/trailing space?\n check = state.charCategorizer(range.head);\n if (!(insideWordBoundaries(check, state, range.from, range.to) &&\n insideWord(check, state, range.from, range.to)))\n return Decoration.none;\n }\n else {\n query = state.sliceDoc(range.from, range.to);\n if (!query)\n return Decoration.none;\n }\n }\n let deco = [];\n for (let part of view.visibleRanges) {\n let cursor = new SearchCursor(state.doc, query, part.from, part.to);\n while (!cursor.next().done) {\n let { from, to } = cursor.value;\n if (!check || insideWordBoundaries(check, state, from, to)) {\n if (range.empty && from <= range.from && to >= range.to)\n deco.push(mainMatchDeco.range(from, to));\n else if (from >= range.to || to <= range.from)\n deco.push(matchDeco.range(from, to));\n if (deco.length > conf.maxMatches)\n return Decoration.none;\n }\n }\n }\n return Decoration.set(deco);\n }\n}, {\n decorations: v => v.decorations\n});\nconst defaultTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-selectionMatch\": { backgroundColor: \"#99ff7780\" },\n \".cm-searchMatch .cm-selectionMatch\": { backgroundColor: \"transparent\" }\n});\n// Select the words around the cursors.\nconst selectWord = ({ state, dispatch }) => {\n let { selection } = state;\n let newSel = EditorSelection.create(selection.ranges.map(range => state.wordAt(range.head) || EditorSelection.cursor(range.head)), selection.mainIndex);\n if (newSel.eq(selection))\n return false;\n dispatch(state.update({ selection: newSel }));\n return true;\n};\n// Find next occurrence of query relative to last cursor. Wrap around\n// the document if there are no more matches.\nfunction findNextOccurrence(state, query) {\n let { main, ranges } = state.selection;\n let word = state.wordAt(main.head), fullWord = word && word.from == main.from && word.to == main.to;\n for (let cycled = false, cursor = new SearchCursor(state.doc, query, ranges[ranges.length - 1].to);;) {\n cursor.next();\n if (cursor.done) {\n if (cycled)\n return null;\n cursor = new SearchCursor(state.doc, query, 0, Math.max(0, ranges[ranges.length - 1].from - 1));\n cycled = true;\n }\n else {\n if (cycled && ranges.some(r => r.from == cursor.value.from))\n continue;\n if (fullWord) {\n let word = state.wordAt(cursor.value.from);\n if (!word || word.from != cursor.value.from || word.to != cursor.value.to)\n continue;\n }\n return cursor.value;\n }\n }\n}\n/**\nSelect next occurrence of the current selection. Expand selection\nto the surrounding word when the selection is empty.\n*/\nconst selectNextOccurrence = ({ state, dispatch }) => {\n let { ranges } = state.selection;\n if (ranges.some(sel => sel.from === sel.to))\n return selectWord({ state, dispatch });\n let searchedText = state.sliceDoc(ranges[0].from, ranges[0].to);\n if (state.selection.ranges.some(r => state.sliceDoc(r.from, r.to) != searchedText))\n return false;\n let range = findNextOccurrence(state, searchedText);\n if (!range)\n return false;\n dispatch(state.update({\n selection: state.selection.addRange(EditorSelection.range(range.from, range.to), false),\n effects: EditorView.scrollIntoView(range.to)\n }));\n return true;\n};\n\nconst searchConfigFacet = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n top: false,\n caseSensitive: false,\n literal: false,\n regexp: false,\n wholeWord: false,\n createPanel: view => new SearchPanel(view),\n scrollToMatch: range => EditorView.scrollIntoView(range)\n });\n }\n});\n/**\nAdd search state to the editor configuration, and optionally\nconfigure the search extension.\n([`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) will automatically\nenable this if it isn't already on).\n*/\nfunction search(config) {\n return config ? [searchConfigFacet.of(config), searchExtensions] : searchExtensions;\n}\n/**\nA search query. Part of the editor's search state.\n*/\nclass SearchQuery {\n /**\n Create a query object.\n */\n constructor(config) {\n this.search = config.search;\n this.caseSensitive = !!config.caseSensitive;\n this.literal = !!config.literal;\n this.regexp = !!config.regexp;\n this.replace = config.replace || \"\";\n this.valid = !!this.search && (!this.regexp || validRegExp(this.search));\n this.unquoted = this.unquote(this.search);\n this.wholeWord = !!config.wholeWord;\n this.test = config.test;\n }\n /**\n @internal\n */\n unquote(text) {\n return this.literal ? text :\n text.replace(/\\\\([nrt\\\\])/g, (_, ch) => ch == \"n\" ? \"\\n\" : ch == \"r\" ? \"\\r\" : ch == \"t\" ? \"\\t\" : \"\\\\\");\n }\n /**\n Compare this query to another query.\n */\n eq(other) {\n return this.search == other.search && this.replace == other.replace &&\n this.caseSensitive == other.caseSensitive && this.regexp == other.regexp &&\n this.wholeWord == other.wholeWord && this.test == other.test;\n }\n /**\n @internal\n */\n create() {\n return this.regexp ? new RegExpQuery(this) : new StringQuery(this);\n }\n /**\n Get a search cursor for this query, searching through the given\n range in the given state.\n */\n getCursor(state, from = 0, to) {\n let st = state.doc ? state : EditorState.create({ doc: state });\n if (to == null)\n to = st.doc.length;\n return this.regexp ? regexpCursor(this, st, from, to) : stringCursor(this, st, from, to);\n }\n}\nclass QueryType {\n constructor(spec) {\n this.spec = spec;\n }\n}\nfunction wrapStringTest(test, state, inner) {\n return (from, to, buffer, bufferPos) => {\n if (inner && !inner(from, to, buffer, bufferPos))\n return false;\n let match = from >= bufferPos && to <= bufferPos + buffer.length\n ? buffer.slice(from - bufferPos, to - bufferPos)\n : state.doc.sliceString(from, to);\n return test(match, state, from, to);\n };\n}\nfunction stringCursor(spec, state, from, to) {\n let test;\n if (spec.wholeWord)\n test = stringWordTest(state.doc, state.charCategorizer(state.selection.main.head));\n if (spec.test)\n test = wrapStringTest(spec.test, state, test);\n return new SearchCursor(state.doc, spec.unquoted, from, to, spec.caseSensitive ? undefined : x => x.toLowerCase(), test);\n}\nfunction stringWordTest(doc, categorizer) {\n return (from, to, buf, bufPos) => {\n if (bufPos > from || bufPos + buf.length < to) {\n bufPos = Math.max(0, from - 2);\n buf = doc.sliceString(bufPos, Math.min(doc.length, to + 2));\n }\n return (categorizer(charBefore(buf, from - bufPos)) != CharCategory.Word ||\n categorizer(charAfter(buf, from - bufPos)) != CharCategory.Word) &&\n (categorizer(charAfter(buf, to - bufPos)) != CharCategory.Word ||\n categorizer(charBefore(buf, to - bufPos)) != CharCategory.Word);\n };\n}\nclass StringQuery extends QueryType {\n constructor(spec) {\n super(spec);\n }\n nextMatch(state, curFrom, curTo) {\n let cursor = stringCursor(this.spec, state, curTo, state.doc.length).nextOverlapping();\n if (cursor.done) {\n let end = Math.min(state.doc.length, curFrom + this.spec.unquoted.length);\n cursor = stringCursor(this.spec, state, 0, end).nextOverlapping();\n }\n return cursor.done || cursor.value.from == curFrom && cursor.value.to == curTo ? null : cursor.value;\n }\n // Searching in reverse is, rather than implementing an inverted search\n // cursor, done by scanning chunk after chunk forward.\n prevMatchInRange(state, from, to) {\n for (let pos = to;;) {\n let start = Math.max(from, pos - 10000 /* FindPrev.ChunkSize */ - this.spec.unquoted.length);\n let cursor = stringCursor(this.spec, state, start, pos), range = null;\n while (!cursor.nextOverlapping().done)\n range = cursor.value;\n if (range)\n return range;\n if (start == from)\n return null;\n pos -= 10000 /* FindPrev.ChunkSize */;\n }\n }\n prevMatch(state, curFrom, curTo) {\n let found = this.prevMatchInRange(state, 0, curFrom);\n if (!found)\n found = this.prevMatchInRange(state, Math.max(0, curTo - this.spec.unquoted.length), state.doc.length);\n return found && (found.from != curFrom || found.to != curTo) ? found : null;\n }\n getReplacement(_result) { return this.spec.unquote(this.spec.replace); }\n matchAll(state, limit) {\n let cursor = stringCursor(this.spec, state, 0, state.doc.length), ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit)\n return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(state, from, to, add) {\n let cursor = stringCursor(this.spec, state, Math.max(0, from - this.spec.unquoted.length), Math.min(to + this.spec.unquoted.length, state.doc.length));\n while (!cursor.next().done)\n add(cursor.value.from, cursor.value.to);\n }\n}\nfunction wrapRegexpTest(test, state, inner) {\n return (from, to, match) => {\n return (!inner || inner(from, to, match)) && test(match[0], state, from, to);\n };\n}\nfunction regexpCursor(spec, state, from, to) {\n let test;\n if (spec.wholeWord)\n test = regexpWordTest(state.charCategorizer(state.selection.main.head));\n if (spec.test)\n test = wrapRegexpTest(spec.test, state, test);\n return new RegExpCursor(state.doc, spec.search, { ignoreCase: !spec.caseSensitive, test }, from, to);\n}\nfunction charBefore(str, index) {\n return str.slice(findClusterBreak(str, index, false), index);\n}\nfunction charAfter(str, index) {\n return str.slice(index, findClusterBreak(str, index));\n}\nfunction regexpWordTest(categorizer) {\n return (_from, _to, match) => !match[0].length ||\n (categorizer(charBefore(match.input, match.index)) != CharCategory.Word ||\n categorizer(charAfter(match.input, match.index)) != CharCategory.Word) &&\n (categorizer(charAfter(match.input, match.index + match[0].length)) != CharCategory.Word ||\n categorizer(charBefore(match.input, match.index + match[0].length)) != CharCategory.Word);\n}\nclass RegExpQuery extends QueryType {\n nextMatch(state, curFrom, curTo) {\n let cursor = regexpCursor(this.spec, state, curTo, state.doc.length).next();\n if (cursor.done)\n cursor = regexpCursor(this.spec, state, 0, curFrom).next();\n return cursor.done ? null : cursor.value;\n }\n prevMatchInRange(state, from, to) {\n for (let size = 1;; size++) {\n let start = Math.max(from, to - size * 10000 /* FindPrev.ChunkSize */);\n let cursor = regexpCursor(this.spec, state, start, to), range = null;\n while (!cursor.next().done)\n range = cursor.value;\n if (range && (start == from || range.from > start + 10))\n return range;\n if (start == from)\n return null;\n }\n }\n prevMatch(state, curFrom, curTo) {\n return this.prevMatchInRange(state, 0, curFrom) ||\n this.prevMatchInRange(state, curTo, state.doc.length);\n }\n getReplacement(result) {\n return this.spec.unquote(this.spec.replace).replace(/\\$([$&]|\\d+)/g, (m, i) => {\n if (i == \"&\")\n return result.match[0];\n if (i == \"$\")\n return \"$\";\n for (let l = i.length; l > 0; l--) {\n let n = +i.slice(0, l);\n if (n > 0 && n < result.match.length)\n return result.match[n] + i.slice(l);\n }\n return m;\n });\n }\n matchAll(state, limit) {\n let cursor = regexpCursor(this.spec, state, 0, state.doc.length), ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit)\n return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(state, from, to, add) {\n let cursor = regexpCursor(this.spec, state, Math.max(0, from - 250 /* RegExp.HighlightMargin */), Math.min(to + 250 /* RegExp.HighlightMargin */, state.doc.length));\n while (!cursor.next().done)\n add(cursor.value.from, cursor.value.to);\n }\n}\n/**\nA state effect that updates the current search query. Note that\nthis only has an effect if the search state has been initialized\n(by including [`search`](https://codemirror.net/6/docs/ref/#search.search) in your configuration or\nby running [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) at least\nonce).\n*/\nconst setSearchQuery = /*@__PURE__*/StateEffect.define();\nconst togglePanel = /*@__PURE__*/StateEffect.define();\nconst searchState = /*@__PURE__*/StateField.define({\n create(state) {\n return new SearchState(defaultQuery(state).create(), null);\n },\n update(value, tr) {\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery))\n value = new SearchState(effect.value.create(), value.panel);\n else if (effect.is(togglePanel))\n value = new SearchState(value.query, effect.value ? createSearchPanel : null);\n }\n return value;\n },\n provide: f => showPanel.from(f, val => val.panel)\n});\n/**\nGet the current search query from an editor state.\n*/\nfunction getSearchQuery(state) {\n let curState = state.field(searchState, false);\n return curState ? curState.query.spec : defaultQuery(state);\n}\n/**\nQuery whether the search panel is open in the given editor state.\n*/\nfunction searchPanelOpen(state) {\n var _a;\n return ((_a = state.field(searchState, false)) === null || _a === void 0 ? void 0 : _a.panel) != null;\n}\nclass SearchState {\n constructor(query, panel) {\n this.query = query;\n this.panel = panel;\n }\n}\nconst matchMark = /*@__PURE__*/Decoration.mark({ class: \"cm-searchMatch\" }), selectedMatchMark = /*@__PURE__*/Decoration.mark({ class: \"cm-searchMatch cm-searchMatch-selected\" });\nconst searchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.decorations = this.highlight(view.state.field(searchState));\n }\n update(update) {\n let state = update.state.field(searchState);\n if (state != update.startState.field(searchState) || update.docChanged || update.selectionSet || update.viewportChanged)\n this.decorations = this.highlight(state);\n }\n highlight({ query, panel }) {\n if (!panel || !query.spec.valid)\n return Decoration.none;\n let { view } = this;\n let builder = new RangeSetBuilder();\n for (let i = 0, ranges = view.visibleRanges, l = ranges.length; i < l; i++) {\n let { from, to } = ranges[i];\n while (i < l - 1 && to > ranges[i + 1].from - 2 * 250 /* RegExp.HighlightMargin */)\n to = ranges[++i].to;\n query.highlight(view.state, from, to, (from, to) => {\n let selected = view.state.selection.ranges.some(r => r.from == from && r.to == to);\n builder.add(from, to, selected ? selectedMatchMark : matchMark);\n });\n }\n return builder.finish();\n }\n}, {\n decorations: v => v.decorations\n});\nfunction searchCommand(f) {\n return view => {\n let state = view.state.field(searchState, false);\n return state && state.query.spec.valid ? f(view, state) : openSearchPanel(view);\n };\n}\n/**\nOpen the search panel if it isn't already open, and move the\nselection to the first match after the current main selection.\nWill wrap around to the start of the document when it reaches the\nend.\n*/\nconst findNext = /*@__PURE__*/searchCommand((view, { query }) => {\n let { to } = view.state.selection.main;\n let next = query.nextMatch(view.state, to, to);\n if (!next)\n return false;\n let selection = EditorSelection.single(next.from, next.to);\n let config = view.state.facet(searchConfigFacet);\n view.dispatch({\n selection,\n effects: [announceMatch(view, next), config.scrollToMatch(selection.main, view)],\n userEvent: \"select.search\"\n });\n selectSearchInput(view);\n return true;\n});\n/**\nMove the selection to the previous instance of the search query,\nbefore the current main selection. Will wrap past the start\nof the document to start searching at the end again.\n*/\nconst findPrevious = /*@__PURE__*/searchCommand((view, { query }) => {\n let { state } = view, { from } = state.selection.main;\n let prev = query.prevMatch(state, from, from);\n if (!prev)\n return false;\n let selection = EditorSelection.single(prev.from, prev.to);\n let config = view.state.facet(searchConfigFacet);\n view.dispatch({\n selection,\n effects: [announceMatch(view, prev), config.scrollToMatch(selection.main, view)],\n userEvent: \"select.search\"\n });\n selectSearchInput(view);\n return true;\n});\n/**\nSelect all instances of the search query.\n*/\nconst selectMatches = /*@__PURE__*/searchCommand((view, { query }) => {\n let ranges = query.matchAll(view.state, 1000);\n if (!ranges || !ranges.length)\n return false;\n view.dispatch({\n selection: EditorSelection.create(ranges.map(r => EditorSelection.range(r.from, r.to))),\n userEvent: \"select.search.matches\"\n });\n return true;\n});\n/**\nSelect all instances of the currently selected text.\n*/\nconst selectSelectionMatches = ({ state, dispatch }) => {\n let sel = state.selection;\n if (sel.ranges.length > 1 || sel.main.empty)\n return false;\n let { from, to } = sel.main;\n let ranges = [], main = 0;\n for (let cur = new SearchCursor(state.doc, state.sliceDoc(from, to)); !cur.next().done;) {\n if (ranges.length > 1000)\n return false;\n if (cur.value.from == from)\n main = ranges.length;\n ranges.push(EditorSelection.range(cur.value.from, cur.value.to));\n }\n dispatch(state.update({\n selection: EditorSelection.create(ranges, main),\n userEvent: \"select.search.matches\"\n }));\n return true;\n};\n/**\nReplace the current match of the search query.\n*/\nconst replaceNext = /*@__PURE__*/searchCommand((view, { query }) => {\n let { state } = view, { from, to } = state.selection.main;\n if (state.readOnly)\n return false;\n let match = query.nextMatch(state, from, from);\n if (!match)\n return false;\n let next = match;\n let changes = [], selection, replacement;\n let effects = [];\n if (next.from == from && next.to == to) {\n replacement = state.toText(query.getReplacement(next));\n changes.push({ from: next.from, to: next.to, insert: replacement });\n next = query.nextMatch(state, next.from, next.to);\n effects.push(EditorView.announce.of(state.phrase(\"replaced match on line $\", state.doc.lineAt(from).number) + \".\"));\n }\n let changeSet = view.state.changes(changes);\n if (next) {\n selection = EditorSelection.single(next.from, next.to).map(changeSet);\n effects.push(announceMatch(view, next));\n effects.push(state.facet(searchConfigFacet).scrollToMatch(selection.main, view));\n }\n view.dispatch({\n changes: changeSet,\n selection,\n effects,\n userEvent: \"input.replace\"\n });\n return true;\n});\n/**\nReplace all instances of the search query with the given\nreplacement.\n*/\nconst replaceAll = /*@__PURE__*/searchCommand((view, { query }) => {\n if (view.state.readOnly)\n return false;\n let changes = query.matchAll(view.state, 1e9).map(match => {\n let { from, to } = match;\n return { from, to, insert: query.getReplacement(match) };\n });\n if (!changes.length)\n return false;\n let announceText = view.state.phrase(\"replaced $ matches\", changes.length) + \".\";\n view.dispatch({\n changes,\n effects: EditorView.announce.of(announceText),\n userEvent: \"input.replace.all\"\n });\n return true;\n});\nfunction createSearchPanel(view) {\n return view.state.facet(searchConfigFacet).createPanel(view);\n}\nfunction defaultQuery(state, fallback) {\n var _a, _b, _c, _d, _e;\n let sel = state.selection.main;\n let selText = sel.empty || sel.to > sel.from + 100 ? \"\" : state.sliceDoc(sel.from, sel.to);\n if (fallback && !selText)\n return fallback;\n let config = state.facet(searchConfigFacet);\n return new SearchQuery({\n search: ((_a = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _a !== void 0 ? _a : config.literal) ? selText : selText.replace(/\\n/g, \"\\\\n\"),\n caseSensitive: (_b = fallback === null || fallback === void 0 ? void 0 : fallback.caseSensitive) !== null && _b !== void 0 ? _b : config.caseSensitive,\n literal: (_c = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _c !== void 0 ? _c : config.literal,\n regexp: (_d = fallback === null || fallback === void 0 ? void 0 : fallback.regexp) !== null && _d !== void 0 ? _d : config.regexp,\n wholeWord: (_e = fallback === null || fallback === void 0 ? void 0 : fallback.wholeWord) !== null && _e !== void 0 ? _e : config.wholeWord\n });\n}\nfunction getSearchInput(view) {\n let panel = getPanel(view, createSearchPanel);\n return panel && panel.dom.querySelector(\"[main-field]\");\n}\nfunction selectSearchInput(view) {\n let input = getSearchInput(view);\n if (input && input == view.root.activeElement)\n input.select();\n}\n/**\nMake sure the search panel is open and focused.\n*/\nconst openSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (state && state.panel) {\n let searchInput = getSearchInput(view);\n if (searchInput && searchInput != view.root.activeElement) {\n let query = defaultQuery(view.state, state.query.spec);\n if (query.valid)\n view.dispatch({ effects: setSearchQuery.of(query) });\n searchInput.focus();\n searchInput.select();\n }\n }\n else {\n view.dispatch({ effects: [\n togglePanel.of(true),\n state ? setSearchQuery.of(defaultQuery(view.state, state.query.spec)) : StateEffect.appendConfig.of(searchExtensions)\n ] });\n }\n return true;\n};\n/**\nClose the search panel.\n*/\nconst closeSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (!state || !state.panel)\n return false;\n let panel = getPanel(view, createSearchPanel);\n if (panel && panel.dom.contains(view.root.activeElement))\n view.focus();\n view.dispatch({ effects: togglePanel.of(false) });\n return true;\n};\n/**\nDefault search-related key bindings.\n\n - Mod-f: [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel)\n - F3, Mod-g: [`findNext`](https://codemirror.net/6/docs/ref/#search.findNext)\n - Shift-F3, Shift-Mod-g: [`findPrevious`](https://codemirror.net/6/docs/ref/#search.findPrevious)\n - Mod-Alt-g: [`gotoLine`](https://codemirror.net/6/docs/ref/#search.gotoLine)\n - Mod-d: [`selectNextOccurrence`](https://codemirror.net/6/docs/ref/#search.selectNextOccurrence)\n*/\nconst searchKeymap = [\n { key: \"Mod-f\", run: openSearchPanel, scope: \"editor search-panel\" },\n { key: \"F3\", run: findNext, shift: findPrevious, scope: \"editor search-panel\", preventDefault: true },\n { key: \"Mod-g\", run: findNext, shift: findPrevious, scope: \"editor search-panel\", preventDefault: true },\n { key: \"Escape\", run: closeSearchPanel, scope: \"editor search-panel\" },\n { key: \"Mod-Shift-l\", run: selectSelectionMatches },\n { key: \"Mod-Alt-g\", run: gotoLine },\n { key: \"Mod-d\", run: selectNextOccurrence, preventDefault: true },\n];\nclass SearchPanel {\n constructor(view) {\n this.view = view;\n let query = this.query = view.state.field(searchState).query.spec;\n this.commit = this.commit.bind(this);\n this.searchField = elt(\"input\", {\n value: query.search,\n placeholder: phrase(view, \"Find\"),\n \"aria-label\": phrase(view, \"Find\"),\n class: \"cm-textfield\",\n name: \"search\",\n form: \"\",\n \"main-field\": \"true\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.replaceField = elt(\"input\", {\n value: query.replace,\n placeholder: phrase(view, \"Replace\"),\n \"aria-label\": phrase(view, \"Replace\"),\n class: \"cm-textfield\",\n name: \"replace\",\n form: \"\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.caseField = elt(\"input\", {\n type: \"checkbox\",\n name: \"case\",\n form: \"\",\n checked: query.caseSensitive,\n onchange: this.commit\n });\n this.reField = elt(\"input\", {\n type: \"checkbox\",\n name: \"re\",\n form: \"\",\n checked: query.regexp,\n onchange: this.commit\n });\n this.wordField = elt(\"input\", {\n type: \"checkbox\",\n name: \"word\",\n form: \"\",\n checked: query.wholeWord,\n onchange: this.commit\n });\n function button(name, onclick, content) {\n return elt(\"button\", { class: \"cm-button\", name, onclick, type: \"button\" }, content);\n }\n this.dom = elt(\"div\", { onkeydown: (e) => this.keydown(e), class: \"cm-search\" }, [\n this.searchField,\n button(\"next\", () => findNext(view), [phrase(view, \"next\")]),\n button(\"prev\", () => findPrevious(view), [phrase(view, \"previous\")]),\n button(\"select\", () => selectMatches(view), [phrase(view, \"all\")]),\n elt(\"label\", null, [this.caseField, phrase(view, \"match case\")]),\n elt(\"label\", null, [this.reField, phrase(view, \"regexp\")]),\n elt(\"label\", null, [this.wordField, phrase(view, \"by word\")]),\n ...view.state.readOnly ? [] : [\n elt(\"br\"),\n this.replaceField,\n button(\"replace\", () => replaceNext(view), [phrase(view, \"replace\")]),\n button(\"replaceAll\", () => replaceAll(view), [phrase(view, \"replace all\")])\n ],\n elt(\"button\", {\n name: \"close\",\n onclick: () => closeSearchPanel(view),\n \"aria-label\": phrase(view, \"close\"),\n type: \"button\"\n }, [\"\u00D7\"])\n ]);\n }\n commit() {\n let query = new SearchQuery({\n search: this.searchField.value,\n caseSensitive: this.caseField.checked,\n regexp: this.reField.checked,\n wholeWord: this.wordField.checked,\n replace: this.replaceField.value,\n });\n if (!query.eq(this.query)) {\n this.query = query;\n this.view.dispatch({ effects: setSearchQuery.of(query) });\n }\n }\n keydown(e) {\n if (runScopeHandlers(this.view, e, \"search-panel\")) {\n e.preventDefault();\n }\n else if (e.keyCode == 13 && e.target == this.searchField) {\n e.preventDefault();\n (e.shiftKey ? findPrevious : findNext)(this.view);\n }\n else if (e.keyCode == 13 && e.target == this.replaceField) {\n e.preventDefault();\n replaceNext(this.view);\n }\n }\n update(update) {\n for (let tr of update.transactions)\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery) && !effect.value.eq(this.query))\n this.setQuery(effect.value);\n }\n }\n setQuery(query) {\n this.query = query;\n this.searchField.value = query.search;\n this.replaceField.value = query.replace;\n this.caseField.checked = query.caseSensitive;\n this.reField.checked = query.regexp;\n this.wordField.checked = query.wholeWord;\n }\n mount() {\n this.searchField.select();\n }\n get pos() { return 80; }\n get top() { return this.view.state.facet(searchConfigFacet).top; }\n}\nfunction phrase(view, phrase) { return view.state.phrase(phrase); }\nconst AnnounceMargin = 30;\nconst Break = /[\\s\\.,:;?!]/;\nfunction announceMatch(view, { from, to }) {\n let line = view.state.doc.lineAt(from), lineEnd = view.state.doc.lineAt(to).to;\n let start = Math.max(line.from, from - AnnounceMargin), end = Math.min(lineEnd, to + AnnounceMargin);\n let text = view.state.sliceDoc(start, end);\n if (start != line.from) {\n for (let i = 0; i < AnnounceMargin; i++)\n if (!Break.test(text[i + 1]) && Break.test(text[i])) {\n text = text.slice(i);\n break;\n }\n }\n if (end != lineEnd) {\n for (let i = text.length - 1; i > text.length - AnnounceMargin; i--)\n if (!Break.test(text[i - 1]) && Break.test(text[i])) {\n text = text.slice(0, i);\n break;\n }\n }\n return EditorView.announce.of(`${view.state.phrase(\"current match\")}. ${text} ${view.state.phrase(\"on line\")} ${line.number}.`);\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panel.cm-search\": {\n padding: \"2px 6px 4px\",\n position: \"relative\",\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\",\n right: \"4px\",\n backgroundColor: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: 0,\n margin: 0\n },\n \"& input, & button, & label\": {\n margin: \".2em .6em .2em 0\"\n },\n \"& input[type=checkbox]\": {\n marginRight: \".2em\"\n },\n \"& label\": {\n fontSize: \"80%\",\n whiteSpace: \"pre\"\n }\n },\n \"&light .cm-searchMatch\": { backgroundColor: \"#ffff0054\" },\n \"&dark .cm-searchMatch\": { backgroundColor: \"#00ffff8a\" },\n \"&light .cm-searchMatch-selected\": { backgroundColor: \"#ff6a0054\" },\n \"&dark .cm-searchMatch-selected\": { backgroundColor: \"#ff00ff8a\" }\n});\nconst searchExtensions = [\n searchState,\n /*@__PURE__*/Prec.low(searchHighlighter),\n baseTheme\n];\n\nexport { RegExpCursor, SearchCursor, SearchQuery, closeSearchPanel, findNext, findPrevious, getSearchQuery, gotoLine, highlightSelectionMatches, openSearchPanel, replaceAll, replaceNext, search, searchKeymap, searchPanelOpen, selectMatches, selectNextOccurrence, selectSelectionMatches, setSearchQuery };\n", "export default function crelt() {\n var elt = arguments[0]\n if (typeof elt == \"string\") elt = document.createElement(elt)\n var i = 1, next = arguments[1]\n if (next && typeof next == \"object\" && next.nodeType == null && !Array.isArray(next)) {\n for (var name in next) if (Object.prototype.hasOwnProperty.call(next, name)) {\n var value = next[name]\n if (typeof value == \"string\") elt.setAttribute(name, value)\n else if (value != null) elt[name] = value\n }\n i++\n }\n for (; i < arguments.length; i++) add(elt, arguments[i])\n return elt\n}\n\nfunction add(elt, child) {\n if (typeof child == \"string\") {\n elt.appendChild(document.createTextNode(child))\n } else if (child == null) {\n } else if (child.nodeType != null) {\n elt.appendChild(child)\n } else if (Array.isArray(child)) {\n for (var i = 0; i < child.length; i++) add(elt, child[i])\n } else {\n throw new RangeError(\"Unsupported child node: \" + child)\n }\n}\n", "import type { StateCommand } from \"@codemirror/state\";\nimport { EditorSelection } from \"@codemirror/state\";\nimport type { KeyBinding } from \"@codemirror/view\";\n\nconst MARKS = [\"**\", \"__\", \"~~\", \"*\", \"_\", \"`\"];\n\nconst toggleWrap =\n (mark: string): StateCommand =>\n ({ state, dispatch }) => {\n const selection = state.changeByRange((range) => {\n let from = range.from;\n let to = range.to;\n for (;;) {\n const found = MARKS.find(\n (m) =>\n state.sliceDoc(from - m.length, from) === m &&\n state.sliceDoc(to, to + m.length) === m\n );\n if (!found) break;\n if (found === mark) {\n return {\n changes: [\n { from: from - mark.length, to: from },\n { from: to, to: to + mark.length },\n ],\n range: EditorSelection.range(\n range.from - mark.length,\n range.to - mark.length\n ),\n };\n }\n from -= found.length;\n to += found.length;\n }\n\n from = range.from;\n to = range.to;\n for (;;) {\n const found = MARKS.find(\n (m) =>\n to - from >= m.length * 2 &&\n state.sliceDoc(from, from + m.length) === m &&\n state.sliceDoc(to - m.length, to) === m\n );\n if (!found) break;\n if (found === mark) {\n return {\n changes: [\n { from, to: from + mark.length },\n { from: to - mark.length, to },\n ],\n range: EditorSelection.range(\n range.from,\n range.to - mark.length * 2\n ),\n };\n }\n from += found.length;\n to -= found.length;\n }\n\n return {\n changes: [\n { from: range.from, insert: mark },\n { from: range.to, insert: mark },\n ],\n range: EditorSelection.range(\n range.from + mark.length,\n range.to + mark.length\n ),\n };\n });\n\n dispatch(state.update(selection, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n };\n\nexport const toggleBold = toggleWrap(\"**\");\nexport const toggleItalic = toggleWrap(\"_\");\nexport const toggleStrikethrough = toggleWrap(\"~~\");\nexport const toggleCode = toggleWrap(\"`\");\n\nexport const markdownFormattingKeymap: KeyBinding[] = [\n { key: \"Mod-b\", run: toggleBold, preventDefault: true },\n { key: \"Mod-i\", run: toggleItalic, preventDefault: true },\n { key: \"Mod-Shift-x\", run: toggleStrikethrough, preventDefault: true },\n { key: \"Mod-e\", run: toggleCode, preventDefault: true },\n];\n", "import {\n HighlightStyle,\n syntaxHighlighting,\n syntaxTree,\n} from \"@codemirror/language\";\nimport { RangeSetBuilder } from \"@codemirror/state\";\nimport {\n Decoration,\n EditorView,\n ViewPlugin,\n WidgetType,\n type DecorationSet,\n type ViewUpdate,\n} from \"@codemirror/view\";\nimport { tags } from \"@lezer/highlight\";\n\nconst bodyFont = (style: \"serif\" | \"sans\") =>\n style == \"serif\"\n ? 'var(--text-editor-family-serif, \"Merriweather\", serif)'\n : \"var(--text-editor-family-sans)\";\n\nconst markdownStyles = (style: \"serif\" | \"sans\"): Record<string, any> => ({\n \"&\": {},\n \"&.cm-editor.cm-focused\": {\n outline: \"none\",\n },\n\n \"&.cm-editor\": {\n height: \"100%\",\n display: \"flex\",\n alignContent: \"center\",\n justifyContent: \"center\",\n overflow: \"auto\",\n },\n \".cm-scroller\": {\n background: \"var(--text-editor-fill)\",\n },\n \".cm-gutter\": {\n background: \"transparent\",\n },\n \".cm-content\": {\n // Justified text makes it look more like the I&S web essay template,\n // but doesn't feel right for most documents.\n // textAlign: \"justify\",\n textWrap: \"pretty\",\n fontFamily: bodyFont(style),\n lineHeight: \"1.5rem\",\n color: \"var(--text-editor-line)\",\n caretColor: \"var(--text-editor-cursor-fill)\",\n background: \"var(--text-editor-fill)\",\n marginBlock: \"2rem\",\n marginInline: \"auto\",\n // lol i guess this is the same as box-sizing: content-box\n maxWidth: \"calc(var(--max-text-line-width, 100ex) - 2rem)\",\n padding: \"2rem\",\n boxShadow: \"none\",\n marginBottom: \"8em\",\n borderRadius: \"8px\",\n },\n \".cm-content li\": {\n marginBottom: 0,\n },\n \".cm-bullet\": {\n display: \"inline-block\",\n width: \"1ch\",\n },\n \".cm-bullet::before\": {\n content: '\"\"',\n display: \"inline-block\",\n width: \"0.4em\",\n height: \"0.4em\",\n borderRadius: \"50%\",\n background: \"currentColor\",\n color: \"var(--text-editor-line)\",\n verticalAlign: \"0.15em\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"inherit\",\n },\n\n \".frontmatter, .frontmatter *\": {\n fontSize: \"14px\",\n fontFamily: \"var(--text-editor-family-code)\",\n color: \"var(--syntax-comment, #666)\",\n textDecoration: \"none\",\n fontWeight: \"normal\",\n lineHeight: \"0.8em\",\n },\n\n \".cm-gutters\": {\n borderRight: \"0\",\n border: \"0\",\n background: \"var(--text-editor-gutter-fill)\",\n },\n\n \".cm-comment-gutter\": {\n width: \"20px\",\n },\n\n \".cm-folded-range-gutter-line-number\": {\n display: \"none\",\n },\n\n \".cm-folded-range-gutter\": {\n background: \"var(--text-editor-fill)\",\n borderRight: \"0px\",\n width: \"40px\",\n },\n\n \".cm-folded-line-widget\": {\n background: \"var(--text-editor-fill)\",\n border: \"0px\",\n },\n\n \".cm-folded-range\": {\n background: \"var(--text-editor-fill)\",\n },\n\n \".codeblock\": {\n background: \"orange\",\n },\n});\n\nconst baseHeadingStyles = {\n fontFamily: \"var(--studio-heading-family, var(--text-editor-family-sans))\",\n fontWeight: \"var(--studio-heading-weight, 400)\",\n textDecoration: \"none\",\n};\n\nconst baseCodeStyles = {\n fontFamily: \"var(--text-editor-family-code)\",\n fontSize: \"1em\",\n};\n\nconst markdownSyntaxHighlighting = (style: \"serif\" | \"sans\") =>\n HighlightStyle.define([\n // this is how you ensure that codeblocks are still monospace\n {\n tag: tags.content,\n fontFamily: bodyFont(style),\n },\n {\n tag: tags.heading1,\n ...baseHeadingStyles,\n fontSize: \"var(--studio-heading-size-1, 1.5rem)\",\n lineHeight: \"2rem\",\n marginBottom: \"1rem\",\n marginTop: \"2rem\",\n },\n {\n tag: tags.heading2,\n ...baseHeadingStyles,\n fontSize: \"var(--studio-heading-size-2, 1.5rem)\",\n lineHeight: \"2rem\",\n marginBottom: \"1rem\",\n marginTop: \"2rem\",\n },\n {\n tag: tags.heading3,\n ...baseHeadingStyles,\n fontSize: \"var(--studio-heading-size-3, 1.25rem)\",\n lineHeight: \"1.75rem\",\n marginBottom: \"1rem\",\n marginTop: \"2rem\",\n },\n {\n tag: tags.heading4,\n ...baseHeadingStyles,\n fontSize: \"var(--studio-heading-size-4, 1.1rem)\",\n marginBottom: \"1rem\",\n marginTop: \"2rem\",\n },\n {\n tag: tags.processingInstruction,\n color: \"var(--text-editor-line-offset-40)\",\n },\n {\n tag: tags.comment,\n color: \"var(--syntax-comment, #555)\",\n fontFamily: \"var(--text-editor-family-code)\",\n },\n { tag: tags.quote, fontStyle: \"var(--syntax-style-quote, italic)\" },\n {\n tag: tags.strong,\n fontWeight: \"var(--syntax-weight-strong, bold)\",\n },\n {\n tag: tags.emphasis,\n fontStyle: \"var(--syntax-style-emphasis, italic)\",\n },\n {\n tag: tags.strikethrough,\n textDecoration: \"line-through\",\n },\n {\n tag: [tags.meta],\n fontWeight: 300,\n color: \"var(--syntax-meta, #999)\",\n fontFamily: \"var(--text-editor-family-sans)\",\n },\n { tag: tags.keyword, ...baseCodeStyles, color: \"var(--syntax-keyword, #708)\" },\n {\n tag: [\n tags.atom,\n tags.bool,\n tags.url,\n tags.contentSeparator,\n tags.labelName,\n ],\n ...baseCodeStyles,\n color: \"var(--syntax-atom, var(--studio-secondary))\",\n },\n { tag: [tags.literal, tags.inserted], ...baseCodeStyles, color: \"var(--syntax-inserted, #164)\" },\n { tag: [tags.string, tags.deleted], ...baseCodeStyles, color: \"var(--syntax-string, #5f67b5)\" },\n {\n tag: [tags.regexp, tags.escape, tags.special(tags.string)],\n ...baseCodeStyles,\n color: \"var(--syntax-regexp, #e40)\",\n },\n {\n tag: tags.definition(tags.variableName),\n ...baseCodeStyles,\n color: \"var(--syntax-definition--variable-name, #00f)\",\n },\n { tag: tags.local(tags.variableName), ...baseCodeStyles, color: \"var(--syntax-variable-name, #30a)\" },\n { tag: [tags.typeName, tags.namespace], ...baseCodeStyles, color: \"var(--syntax-type-name, #085)\" },\n { tag: tags.className, ...baseCodeStyles, color: \"var(--syntax-class-name, #167)\" },\n {\n tag: [tags.special(tags.variableName), tags.macroName],\n ...baseCodeStyles,\n color: \"var(--syntax-special--variable-name, #256)\",\n },\n {\n tag: tags.definition(tags.propertyName),\n ...baseCodeStyles,\n color: \"var(--syntax-function--property-name, #00c)\",\n },\n { tag: tags.monospace, ...baseCodeStyles },\n ]);\n\nexport const theme = (style: \"serif\" | \"sans\") => [\n EditorView.theme(markdownStyles(style)),\n syntaxHighlighting(markdownSyntaxHighlighting(style)),\n bullets,\n codeblocks,\n];\n\nconst bullets = ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n view: EditorView;\n constructor(view: EditorView) {\n this.view = view;\n this.decorations = this.build();\n }\n update(update: ViewUpdate) {\n if (update.docChanged || update.viewportChanged) {\n this.decorations = this.build();\n }\n }\n private build(): DecorationSet {\n const builder = new RangeSetBuilder<Decoration>();\n const doc = this.view.state.doc;\n syntaxTree(this.view.state).iterate({\n enter: ({ type, from }) => {\n if (type.name === \"ListMark\") {\n const char = doc.sliceString(from, from + 1);\n if ([\"-\", \"+\", \"*\"].includes(char)) {\n builder.add(\n from,\n from + 1,\n Decoration.replace({ widget: new BulletWidget() })\n );\n }\n }\n },\n });\n return builder.finish();\n }\n },\n {\n decorations: (v) => v.decorations,\n }\n);\n\nclass BulletWidget extends WidgetType {\n toDOM() {\n const span = document.createElement(\"span\");\n span.className = \"cm-bullet\";\n return span;\n }\n}\nconst codeblocks = ViewPlugin.fromClass(\n class BlockquotePlugin {\n decorations: DecorationSet = Decoration.none;\n\n constructor(view: EditorView) {\n this.buildDeco(view);\n }\n\n update(update: ViewUpdate) {\n this.buildDeco(update.view);\n }\n\n buildDeco(view: EditorView) {\n const builder = new RangeSetBuilder<Decoration>();\n view.viewportLineBlocks.forEach((line) => {\n const lineObj = view.state.doc.lineAt(line.from);\n const match = /^>.*/g.exec(lineObj.text);\n if (match && match[0]) {\n builder.add(\n line.from,\n line.from,\n Decoration.line({ class: \"codeblock\" })\n );\n }\n });\n\n this.decorations = builder.finish();\n }\n }\n);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["line", "word", "add", "from", "to", "phrase", "EditorView", "EditorSelection", "RangeSetBuilder", "Decoration", "EditorView", "ViewPlugin", "EditorView", "ViewPlugin", "RangeSetBuilder", "Decoration", "EditorView"]
|
|
3
|
+
"sources": ["../../src/extensions/markdown.ts", "../../node_modules/.pnpm/@codemirror+language-data@6.5.2/node_modules/@codemirror/language-data/dist/index.js", "../../node_modules/.pnpm/@codemirror+search@6.6.0/node_modules/@codemirror/search/dist/index.js", "../../node_modules/.pnpm/crelt@1.0.6/node_modules/crelt/index.js", "../../src/extensions/formatting.ts", "../../src/extensions/tasks.ts", "../../src/themes/markdown.ts"],
|
|
4
|
+
"sourcesContent": ["/** CodeMirror Extensions */\nimport { completionKeymap } from \"@codemirror/autocomplete\";\nimport { defaultKeymap, indentWithTab } from \"@codemirror/commands\";\nimport { markdown, markdownLanguage } from \"@codemirror/lang-markdown\";\nimport { foldKeymap, indentOnInput, indentUnit } from \"@codemirror/language\";\nimport { languages } from \"@codemirror/language-data\";\nimport { searchKeymap } from \"@codemirror/search\";\nimport { EditorView, keymap } from \"@codemirror/view\";\n\nimport { markdownFormattingKeymap } from \"./formatting.ts\";\nimport { taskCheckboxes } from \"./tasks.ts\";\n\n/** Styles */\nimport { theme } from \"../themes/markdown.ts\";\n\n// Undo/redo (`history()`/`historyKeymap`) is deliberately absent: the base\n// editor (codemirror-base) owns it, so it can reset the stack when a scope\n// swap re-points the doc handle (see codemirror-base's history extension).\n// Adding a second `history()` here would keep the underlying singleton state\n// field alive across that reset and break it.\nexport function markdownExtensions() {\n return [\n ...theme(\"sans\"),\n indentOnInput(),\n keymap.of([\n ...markdownFormattingKeymap,\n ...defaultKeymap,\n ...searchKeymap,\n ...foldKeymap,\n ...completionKeymap,\n indentWithTab,\n ]),\n EditorView.lineWrapping,\n // GFM base: task lists, tables, strikethrough, autolinks.\n markdown({ base: markdownLanguage, codeLanguages: languages }),\n taskCheckboxes,\n indentUnit.of(\" \"),\n ];\n}\n", "import { LanguageDescription, LanguageSupport, StreamLanguage } from '@codemirror/language';\n\nfunction legacy(parser) {\n return new LanguageSupport(StreamLanguage.define(parser));\n}\nfunction sql(dialectName) {\n return import('@codemirror/lang-sql').then(m => m.sql({ dialect: m[dialectName] }));\n}\n/**\nAn array of language descriptions for known language packages.\n*/\nconst languages = [\n // New-style language modes\n /*@__PURE__*/LanguageDescription.of({\n name: \"C\",\n extensions: [\"c\", \"h\", \"ino\"],\n load() {\n return import('@codemirror/lang-cpp').then(m => m.cpp());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"C++\",\n alias: [\"cpp\"],\n extensions: [\"cpp\", \"c++\", \"cc\", \"cxx\", \"hpp\", \"h++\", \"hh\", \"hxx\"],\n load() {\n return import('@codemirror/lang-cpp').then(m => m.cpp());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"CQL\",\n alias: [\"cassandra\"],\n extensions: [\"cql\"],\n load() { return sql(\"Cassandra\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"CSS\",\n extensions: [\"css\"],\n load() {\n return import('@codemirror/lang-css').then(m => m.css());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Go\",\n extensions: [\"go\"],\n load() {\n return import('@codemirror/lang-go').then(m => m.go());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"HTML\",\n alias: [\"xhtml\"],\n extensions: [\"html\", \"htm\", \"handlebars\", \"hbs\"],\n load() {\n return import('@codemirror/lang-html').then(m => m.html());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Java\",\n extensions: [\"java\"],\n load() {\n return import('@codemirror/lang-java').then(m => m.java());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"JavaScript\",\n alias: [\"ecmascript\", \"js\", \"node\"],\n extensions: [\"js\", \"mjs\", \"cjs\"],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Jinja\",\n extensions: [\"j2\", \"jinja\", \"jinja2\"],\n load() {\n return import('@codemirror/lang-jinja').then(m => m.jinja());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"JSON\",\n alias: [\"json5\"],\n extensions: [\"json\", \"map\"],\n load() {\n return import('@codemirror/lang-json').then(m => m.json());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"JSX\",\n extensions: [\"jsx\"],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ jsx: true }));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"LESS\",\n extensions: [\"less\"],\n load() {\n return import('@codemirror/lang-less').then(m => m.less());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Liquid\",\n extensions: [\"liquid\"],\n load() {\n return import('@codemirror/lang-liquid').then(m => m.liquid());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"MariaDB SQL\",\n load() { return sql(\"MariaSQL\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Markdown\",\n extensions: [\"md\", \"markdown\", \"mkd\"],\n load() {\n return import('@codemirror/lang-markdown').then(m => m.markdown());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"MS SQL\",\n load() { return sql(\"MSSQL\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"MySQL\",\n load() { return sql(\"MySQL\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"PHP\",\n extensions: [\"php\", \"php3\", \"php4\", \"php5\", \"php7\", \"phtml\"],\n load() {\n return import('@codemirror/lang-php').then(m => m.php());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"PLSQL\",\n extensions: [\"pls\"],\n load() { return sql(\"PLSQL\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"PostgreSQL\",\n load() { return sql(\"PostgreSQL\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Python\",\n extensions: [\"BUILD\", \"bzl\", \"py\", \"pyw\"],\n filename: /^(BUCK|BUILD)$/,\n load() {\n return import('@codemirror/lang-python').then(m => m.python());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Rust\",\n extensions: [\"rs\"],\n load() {\n return import('@codemirror/lang-rust').then(m => m.rust());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Sass\",\n extensions: [\"sass\"],\n load() {\n return import('@codemirror/lang-sass').then(m => m.sass({ indented: true }));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SCSS\",\n extensions: [\"scss\"],\n load() {\n return import('@codemirror/lang-sass').then(m => m.sass());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SQL\",\n extensions: [\"sql\"],\n load() { return sql(\"StandardSQL\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SQLite\",\n load() { return sql(\"SQLite\"); }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"TSX\",\n extensions: [\"tsx\"],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ jsx: true, typescript: true }));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"TypeScript\",\n alias: [\"ts\"],\n extensions: [\"ts\", \"mts\", \"cts\"],\n load() {\n return import('@codemirror/lang-javascript').then(m => m.javascript({ typescript: true }));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"WebAssembly\",\n extensions: [\"wat\", \"wast\"],\n load() {\n return import('@codemirror/lang-wast').then(m => m.wast());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"XML\",\n alias: [\"rss\", \"wsdl\", \"xsd\"],\n extensions: [\"xml\", \"xsl\", \"xsd\", \"svg\"],\n load() {\n return import('@codemirror/lang-xml').then(m => m.xml());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"YAML\",\n alias: [\"yml\"],\n extensions: [\"yaml\", \"yml\"],\n load() {\n return import('@codemirror/lang-yaml').then(m => m.yaml());\n }\n }),\n // Legacy modes ported from CodeMirror 5\n /*@__PURE__*/LanguageDescription.of({\n name: \"APL\",\n extensions: [\"dyalog\", \"apl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/apl').then(m => legacy(m.apl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"PGP\",\n alias: [\"asciiarmor\"],\n extensions: [\"asc\", \"pgp\", \"sig\"],\n load() {\n return import('@codemirror/legacy-modes/mode/asciiarmor').then(m => legacy(m.asciiArmor));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"ASN.1\",\n extensions: [\"asn\", \"asn1\"],\n load() {\n return import('@codemirror/legacy-modes/mode/asn1').then(m => legacy(m.asn1({})));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Asterisk\",\n filename: /^extensions\\.conf$/i,\n load() {\n return import('@codemirror/legacy-modes/mode/asterisk').then(m => legacy(m.asterisk));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Brainfuck\",\n extensions: [\"b\", \"bf\"],\n load() {\n return import('@codemirror/legacy-modes/mode/brainfuck').then(m => legacy(m.brainfuck));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Cobol\",\n extensions: [\"cob\", \"cpy\"],\n load() {\n return import('@codemirror/legacy-modes/mode/cobol').then(m => legacy(m.cobol));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"C#\",\n alias: [\"csharp\", \"cs\"],\n extensions: [\"cs\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.csharp));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Clojure\",\n extensions: [\"clj\", \"cljc\", \"cljx\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clojure').then(m => legacy(m.clojure));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"ClojureScript\",\n extensions: [\"cljs\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clojure').then(m => legacy(m.clojure));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Closure Stylesheets (GSS)\",\n extensions: [\"gss\"],\n load() {\n return import('@codemirror/legacy-modes/mode/css').then(m => legacy(m.gss));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"CMake\",\n extensions: [\"cmake\", \"cmake.in\"],\n filename: /^CMakeLists\\.txt$/,\n load() {\n return import('@codemirror/legacy-modes/mode/cmake').then(m => legacy(m.cmake));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"CoffeeScript\",\n alias: [\"coffee\", \"coffee-script\"],\n extensions: [\"coffee\"],\n load() {\n return import('@codemirror/legacy-modes/mode/coffeescript').then(m => legacy(m.coffeeScript));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Common Lisp\",\n alias: [\"lisp\"],\n extensions: [\"cl\", \"lisp\", \"el\"],\n load() {\n return import('@codemirror/legacy-modes/mode/commonlisp').then(m => legacy(m.commonLisp));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Cypher\",\n extensions: [\"cyp\", \"cypher\"],\n load() {\n return import('@codemirror/legacy-modes/mode/cypher').then(m => legacy(m.cypher));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Cython\",\n extensions: [\"pyx\", \"pxd\", \"pxi\"],\n load() {\n return import('@codemirror/legacy-modes/mode/python').then(m => legacy(m.cython));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Crystal\",\n extensions: [\"cr\"],\n load() {\n return import('@codemirror/legacy-modes/mode/crystal').then(m => legacy(m.crystal));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"D\",\n extensions: [\"d\"],\n load() {\n return import('@codemirror/legacy-modes/mode/d').then(m => legacy(m.d));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Dart\",\n extensions: [\"dart\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.dart));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"diff\",\n extensions: [\"diff\", \"patch\"],\n load() {\n return import('@codemirror/legacy-modes/mode/diff').then(m => legacy(m.diff));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Dockerfile\",\n filename: /^Dockerfile$/,\n load() {\n return import('@codemirror/legacy-modes/mode/dockerfile').then(m => legacy(m.dockerFile));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"DTD\",\n extensions: [\"dtd\"],\n load() {\n return import('@codemirror/legacy-modes/mode/dtd').then(m => legacy(m.dtd));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Dylan\",\n extensions: [\"dylan\", \"dyl\", \"intr\"],\n load() {\n return import('@codemirror/legacy-modes/mode/dylan').then(m => legacy(m.dylan));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"EBNF\",\n load() {\n return import('@codemirror/legacy-modes/mode/ebnf').then(m => legacy(m.ebnf));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"ECL\",\n extensions: [\"ecl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/ecl').then(m => legacy(m.ecl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"edn\",\n extensions: [\"edn\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clojure').then(m => legacy(m.clojure));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Eiffel\",\n extensions: [\"e\"],\n load() {\n return import('@codemirror/legacy-modes/mode/eiffel').then(m => legacy(m.eiffel));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Elm\",\n extensions: [\"elm\"],\n load() {\n return import('@codemirror/legacy-modes/mode/elm').then(m => legacy(m.elm));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Erlang\",\n extensions: [\"erl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/erlang').then(m => legacy(m.erlang));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Esper\",\n load() {\n return import('@codemirror/legacy-modes/mode/sql').then(m => legacy(m.esper));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Factor\",\n extensions: [\"factor\"],\n load() {\n return import('@codemirror/legacy-modes/mode/factor').then(m => legacy(m.factor));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"FCL\",\n load() {\n return import('@codemirror/legacy-modes/mode/fcl').then(m => legacy(m.fcl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Forth\",\n extensions: [\"forth\", \"fth\", \"4th\"],\n load() {\n return import('@codemirror/legacy-modes/mode/forth').then(m => legacy(m.forth));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Fortran\",\n extensions: [\"f\", \"for\", \"f77\", \"f90\", \"f95\"],\n load() {\n return import('@codemirror/legacy-modes/mode/fortran').then(m => legacy(m.fortran));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"F#\",\n alias: [\"fsharp\"],\n extensions: [\"fs\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mllike').then(m => legacy(m.fSharp));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Gas\",\n extensions: [\"s\"],\n load() {\n return import('@codemirror/legacy-modes/mode/gas').then(m => legacy(m.gas));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Gherkin\",\n extensions: [\"feature\"],\n load() {\n return import('@codemirror/legacy-modes/mode/gherkin').then(m => legacy(m.gherkin));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Groovy\",\n extensions: [\"groovy\", \"gradle\"],\n filename: /^Jenkinsfile$/,\n load() {\n return import('@codemirror/legacy-modes/mode/groovy').then(m => legacy(m.groovy));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Haskell\",\n extensions: [\"hs\"],\n load() {\n return import('@codemirror/legacy-modes/mode/haskell').then(m => legacy(m.haskell));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Haxe\",\n extensions: [\"hx\"],\n load() {\n return import('@codemirror/legacy-modes/mode/haxe').then(m => legacy(m.haxe));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"HXML\",\n extensions: [\"hxml\"],\n load() {\n return import('@codemirror/legacy-modes/mode/haxe').then(m => legacy(m.hxml));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"HTTP\",\n load() {\n return import('@codemirror/legacy-modes/mode/http').then(m => legacy(m.http));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"IDL\",\n extensions: [\"pro\"],\n load() {\n return import('@codemirror/legacy-modes/mode/idl').then(m => legacy(m.idl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"JSON-LD\",\n alias: [\"jsonld\"],\n extensions: [\"jsonld\"],\n load() {\n return import('@codemirror/legacy-modes/mode/javascript').then(m => legacy(m.jsonld));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Julia\",\n extensions: [\"jl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/julia').then(m => legacy(m.julia));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Kotlin\",\n extensions: [\"kt\", \"kts\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.kotlin));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"LiveScript\",\n alias: [\"ls\"],\n extensions: [\"ls\"],\n load() {\n return import('@codemirror/legacy-modes/mode/livescript').then(m => legacy(m.liveScript));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Lua\",\n extensions: [\"lua\"],\n load() {\n return import('@codemirror/legacy-modes/mode/lua').then(m => legacy(m.lua));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"mIRC\",\n extensions: [\"mrc\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mirc').then(m => legacy(m.mirc));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Mathematica\",\n extensions: [\"m\", \"nb\", \"wl\", \"wls\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mathematica').then(m => legacy(m.mathematica));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Modelica\",\n extensions: [\"mo\"],\n load() {\n return import('@codemirror/legacy-modes/mode/modelica').then(m => legacy(m.modelica));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"MUMPS\",\n extensions: [\"mps\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mumps').then(m => legacy(m.mumps));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Mbox\",\n extensions: [\"mbox\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mbox').then(m => legacy(m.mbox));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Nginx\",\n filename: /nginx.*\\.conf$/i,\n load() {\n return import('@codemirror/legacy-modes/mode/nginx').then(m => legacy(m.nginx));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"NSIS\",\n extensions: [\"nsh\", \"nsi\"],\n load() {\n return import('@codemirror/legacy-modes/mode/nsis').then(m => legacy(m.nsis));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"NTriples\",\n extensions: [\"nt\", \"nq\"],\n load() {\n return import('@codemirror/legacy-modes/mode/ntriples').then(m => legacy(m.ntriples));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Objective-C\",\n alias: [\"objective-c\", \"objc\"],\n extensions: [\"m\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.objectiveC));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Objective-C++\",\n alias: [\"objective-c++\", \"objc++\"],\n extensions: [\"mm\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.objectiveCpp));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"OCaml\",\n extensions: [\"ml\", \"mli\", \"mll\", \"mly\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mllike').then(m => legacy(m.oCaml));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Octave\",\n extensions: [\"m\"],\n load() {\n return import('@codemirror/legacy-modes/mode/octave').then(m => legacy(m.octave));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Oz\",\n extensions: [\"oz\"],\n load() {\n return import('@codemirror/legacy-modes/mode/oz').then(m => legacy(m.oz));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Pascal\",\n extensions: [\"p\", \"pas\"],\n load() {\n return import('@codemirror/legacy-modes/mode/pascal').then(m => legacy(m.pascal));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Perl\",\n extensions: [\"pl\", \"pm\"],\n load() {\n return import('@codemirror/legacy-modes/mode/perl').then(m => legacy(m.perl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Pig\",\n extensions: [\"pig\"],\n load() {\n return import('@codemirror/legacy-modes/mode/pig').then(m => legacy(m.pig));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"PowerShell\",\n extensions: [\"ps1\", \"psd1\", \"psm1\"],\n load() {\n return import('@codemirror/legacy-modes/mode/powershell').then(m => legacy(m.powerShell));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Properties files\",\n alias: [\"ini\", \"properties\"],\n extensions: [\"properties\", \"ini\", \"in\"],\n load() {\n return import('@codemirror/legacy-modes/mode/properties').then(m => legacy(m.properties));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"ProtoBuf\",\n extensions: [\"proto\"],\n load() {\n return import('@codemirror/legacy-modes/mode/protobuf').then(m => legacy(m.protobuf));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Pug\",\n alias: [\"jade\"],\n extensions: [\"pug\", \"jade\"],\n load() {\n return import('@codemirror/legacy-modes/mode/pug').then(m => legacy(m.pug));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Puppet\",\n extensions: [\"pp\"],\n load() {\n return import('@codemirror/legacy-modes/mode/puppet').then(m => legacy(m.puppet));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Q\",\n extensions: [\"q\"],\n load() {\n return import('@codemirror/legacy-modes/mode/q').then(m => legacy(m.q));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"R\",\n alias: [\"rscript\"],\n extensions: [\"r\", \"R\"],\n load() {\n return import('@codemirror/legacy-modes/mode/r').then(m => legacy(m.r));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"RPM Changes\",\n load() {\n return import('@codemirror/legacy-modes/mode/rpm').then(m => legacy(m.rpmChanges));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"RPM Spec\",\n extensions: [\"spec\"],\n load() {\n return import('@codemirror/legacy-modes/mode/rpm').then(m => legacy(m.rpmSpec));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Ruby\",\n alias: [\"jruby\", \"macruby\", \"rake\", \"rb\", \"rbx\"],\n extensions: [\"rb\"],\n filename: /^(Gemfile|Rakefile)$/,\n load() {\n return import('@codemirror/legacy-modes/mode/ruby').then(m => legacy(m.ruby));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SAS\",\n extensions: [\"sas\"],\n load() {\n return import('@codemirror/legacy-modes/mode/sas').then(m => legacy(m.sas));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Scala\",\n extensions: [\"scala\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.scala));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Scheme\",\n extensions: [\"scm\", \"ss\"],\n load() {\n return import('@codemirror/legacy-modes/mode/scheme').then(m => legacy(m.scheme));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Shell\",\n alias: [\"bash\", \"sh\", \"zsh\"],\n extensions: [\"sh\", \"ksh\", \"bash\"],\n filename: /^PKGBUILD$/,\n load() {\n return import('@codemirror/legacy-modes/mode/shell').then(m => legacy(m.shell));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Sieve\",\n extensions: [\"siv\", \"sieve\"],\n load() {\n return import('@codemirror/legacy-modes/mode/sieve').then(m => legacy(m.sieve));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Smalltalk\",\n extensions: [\"st\"],\n load() {\n return import('@codemirror/legacy-modes/mode/smalltalk').then(m => legacy(m.smalltalk));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Solr\",\n load() {\n return import('@codemirror/legacy-modes/mode/solr').then(m => legacy(m.solr));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SML\",\n extensions: [\"sml\", \"sig\", \"fun\", \"smackspec\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mllike').then(m => legacy(m.sml));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SPARQL\",\n alias: [\"sparul\"],\n extensions: [\"rq\", \"sparql\"],\n load() {\n return import('@codemirror/legacy-modes/mode/sparql').then(m => legacy(m.sparql));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Spreadsheet\",\n alias: [\"excel\", \"formula\"],\n load() {\n return import('@codemirror/legacy-modes/mode/spreadsheet').then(m => legacy(m.spreadsheet));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Squirrel\",\n extensions: [\"nut\"],\n load() {\n return import('@codemirror/legacy-modes/mode/clike').then(m => legacy(m.squirrel));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Stylus\",\n extensions: [\"styl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/stylus').then(m => legacy(m.stylus));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Swift\",\n extensions: [\"swift\"],\n load() {\n return import('@codemirror/legacy-modes/mode/swift').then(m => legacy(m.swift));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"sTeX\",\n load() {\n return import('@codemirror/legacy-modes/mode/stex').then(m => legacy(m.stex));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"LaTeX\",\n alias: [\"tex\"],\n extensions: [\"text\", \"ltx\", \"tex\"],\n load() {\n return import('@codemirror/legacy-modes/mode/stex').then(m => legacy(m.stex));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"SystemVerilog\",\n extensions: [\"v\", \"sv\", \"svh\"],\n load() {\n return import('@codemirror/legacy-modes/mode/verilog').then(m => legacy(m.verilog));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Tcl\",\n extensions: [\"tcl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/tcl').then(m => legacy(m.tcl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Textile\",\n extensions: [\"textile\"],\n load() {\n return import('@codemirror/legacy-modes/mode/textile').then(m => legacy(m.textile));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"TiddlyWiki\",\n load() {\n return import('@codemirror/legacy-modes/mode/tiddlywiki').then(m => legacy(m.tiddlyWiki));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Tiki wiki\",\n load() {\n return import('@codemirror/legacy-modes/mode/tiki').then(m => legacy(m.tiki));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"TOML\",\n extensions: [\"toml\"],\n load() {\n return import('@codemirror/legacy-modes/mode/toml').then(m => legacy(m.toml));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Troff\",\n extensions: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\n load() {\n return import('@codemirror/legacy-modes/mode/troff').then(m => legacy(m.troff));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"TTCN\",\n extensions: [\"ttcn\", \"ttcn3\", \"ttcnpp\"],\n load() {\n return import('@codemirror/legacy-modes/mode/ttcn').then(m => legacy(m.ttcn));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"TTCN_CFG\",\n extensions: [\"cfg\"],\n load() {\n return import('@codemirror/legacy-modes/mode/ttcn-cfg').then(m => legacy(m.ttcnCfg));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Turtle\",\n extensions: [\"ttl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/turtle').then(m => legacy(m.turtle));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Web IDL\",\n extensions: [\"webidl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/webidl').then(m => legacy(m.webIDL));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"VB.NET\",\n extensions: [\"vb\"],\n load() {\n return import('@codemirror/legacy-modes/mode/vb').then(m => legacy(m.vb));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"VBScript\",\n extensions: [\"vbs\"],\n load() {\n return import('@codemirror/legacy-modes/mode/vbscript').then(m => legacy(m.vbScript));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Velocity\",\n extensions: [\"vtl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/velocity').then(m => legacy(m.velocity));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Verilog\",\n extensions: [\"v\"],\n load() {\n return import('@codemirror/legacy-modes/mode/verilog').then(m => legacy(m.verilog));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"VHDL\",\n extensions: [\"vhd\", \"vhdl\"],\n load() {\n return import('@codemirror/legacy-modes/mode/vhdl').then(m => legacy(m.vhdl));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"XQuery\",\n extensions: [\"xy\", \"xquery\", \"xq\", \"xqm\", \"xqy\"],\n load() {\n return import('@codemirror/legacy-modes/mode/xquery').then(m => legacy(m.xQuery));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Yacas\",\n extensions: [\"ys\"],\n load() {\n return import('@codemirror/legacy-modes/mode/yacas').then(m => legacy(m.yacas));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Z80\",\n extensions: [\"z80\"],\n load() {\n return import('@codemirror/legacy-modes/mode/z80').then(m => legacy(m.z80));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"MscGen\",\n extensions: [\"mscgen\", \"mscin\", \"msc\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mscgen').then(m => legacy(m.mscgen));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"X\u00F9\",\n extensions: [\"xu\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mscgen').then(m => legacy(m.xu));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"MsGenny\",\n extensions: [\"msgenny\"],\n load() {\n return import('@codemirror/legacy-modes/mode/mscgen').then(m => legacy(m.msgenny));\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Vue\",\n extensions: [\"vue\"],\n load() {\n return import('@codemirror/lang-vue').then(m => m.vue());\n }\n }),\n /*@__PURE__*/LanguageDescription.of({\n name: \"Angular Template\",\n load() {\n return import('@codemirror/lang-angular').then(m => m.angular());\n }\n })\n];\n\nexport { languages };\n", "import { showDialog, EditorView, Decoration, ViewPlugin, showPanel, runScopeHandlers, getPanel } from '@codemirror/view';\nimport { codePointAt, fromCodePoint, codePointSize, EditorSelection, Facet, combineConfig, CharCategory, StateEffect, StateField, RangeSetBuilder, Prec, EditorState, findClusterBreak } from '@codemirror/state';\nimport elt from 'crelt';\n\nconst basicNormalize = typeof String.prototype.normalize == \"function\"\n ? x => x.normalize(\"NFKD\") : x => x;\n/**\nA search cursor provides an iterator over text matches in a\ndocument.\n*/\nclass SearchCursor {\n /**\n Create a text cursor. The query is the search string, `from` to\n `to` provides the region to search.\n \n When `normalize` is given, it will be called, on both the query\n string and the content it is matched against, before comparing.\n You can, for example, create a case-insensitive search by\n passing `s => s.toLowerCase()`.\n \n Text is always normalized with\n [`.normalize(\"NFKD\")`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize)\n (when supported).\n */\n constructor(text, query, from = 0, to = text.length, normalize, test) {\n this.test = test;\n /**\n The current match (only holds a meaningful value after\n [`next`](https://codemirror.net/6/docs/ref/#search.SearchCursor.next) has been called and when\n `done` is false).\n */\n this.value = { from: 0, to: 0 };\n /**\n Whether the end of the iterated region has been reached.\n */\n this.done = false;\n this.matches = [];\n this.buffer = \"\";\n this.bufferPos = 0;\n this.iter = text.iterRange(from, to);\n this.bufferStart = from;\n this.normalize = normalize ? x => normalize(basicNormalize(x)) : basicNormalize;\n this.query = this.normalize(query);\n }\n peek() {\n if (this.bufferPos == this.buffer.length) {\n this.bufferStart += this.buffer.length;\n this.iter.next();\n if (this.iter.done)\n return -1;\n this.bufferPos = 0;\n this.buffer = this.iter.value;\n }\n return codePointAt(this.buffer, this.bufferPos);\n }\n /**\n Look for the next match. Updates the iterator's\n [`value`](https://codemirror.net/6/docs/ref/#search.SearchCursor.value) and\n [`done`](https://codemirror.net/6/docs/ref/#search.SearchCursor.done) properties. Should be called\n at least once before using the cursor.\n */\n next() {\n while (this.matches.length)\n this.matches.pop();\n return this.nextOverlapping();\n }\n /**\n The `next` method will ignore matches that partially overlap a\n previous match. This method behaves like `next`, but includes\n such matches.\n */\n nextOverlapping() {\n for (;;) {\n let next = this.peek();\n if (next < 0) {\n this.done = true;\n return this;\n }\n let str = fromCodePoint(next), start = this.bufferStart + this.bufferPos;\n this.bufferPos += codePointSize(next);\n let norm = this.normalize(str);\n if (norm.length)\n for (let i = 0, pos = start;; i++) {\n let code = norm.charCodeAt(i);\n let match = this.match(code, pos, this.bufferPos + this.bufferStart);\n if (i == norm.length - 1) {\n if (match) {\n this.value = match;\n return this;\n }\n break;\n }\n if (pos == start && i < str.length && str.charCodeAt(i) == code)\n pos++;\n }\n }\n }\n match(code, pos, end) {\n let match = null;\n for (let i = 0; i < this.matches.length; i += 2) {\n let index = this.matches[i], keep = false;\n if (this.query.charCodeAt(index) == code) {\n if (index == this.query.length - 1) {\n match = { from: this.matches[i + 1], to: end };\n }\n else {\n this.matches[i]++;\n keep = true;\n }\n }\n if (!keep) {\n this.matches.splice(i, 2);\n i -= 2;\n }\n }\n if (this.query.charCodeAt(0) == code) {\n if (this.query.length == 1)\n match = { from: pos, to: end };\n else\n this.matches.push(1, pos);\n }\n if (match && this.test && !this.test(match.from, match.to, this.buffer, this.bufferStart))\n match = null;\n return match;\n }\n}\nif (typeof Symbol != \"undefined\")\n SearchCursor.prototype[Symbol.iterator] = function () { return this; };\n\nconst empty = { from: -1, to: -1, match: /*@__PURE__*//.*/.exec(\"\") };\nconst baseFlags = \"gm\" + (/x/.unicode == null ? \"\" : \"u\");\n/**\nThis class is similar to [`SearchCursor`](https://codemirror.net/6/docs/ref/#search.SearchCursor)\nbut searches for a regular expression pattern instead of a plain\nstring.\n*/\nclass RegExpCursor {\n /**\n Create a cursor that will search the given range in the given\n document. `query` should be the raw pattern (as you'd pass it to\n `new RegExp`).\n */\n constructor(text, query, options, from = 0, to = text.length) {\n this.text = text;\n this.to = to;\n this.curLine = \"\";\n /**\n Set to `true` when the cursor has reached the end of the search\n range.\n */\n this.done = false;\n /**\n Will contain an object with the extent of the match and the\n match object when [`next`](https://codemirror.net/6/docs/ref/#search.RegExpCursor.next)\n sucessfully finds a match.\n */\n this.value = empty;\n if (/\\\\[sWDnr]|\\n|\\r|\\[\\^/.test(query))\n return new MultilineRegExpCursor(text, query, options, from, to);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.test = options === null || options === void 0 ? void 0 : options.test;\n this.iter = text.iter();\n let startLine = text.lineAt(from);\n this.curLineStart = startLine.from;\n this.matchPos = toCharEnd(text, from);\n this.getLine(this.curLineStart);\n }\n getLine(skip) {\n this.iter.next(skip);\n if (this.iter.lineBreak) {\n this.curLine = \"\";\n }\n else {\n this.curLine = this.iter.value;\n if (this.curLineStart + this.curLine.length > this.to)\n this.curLine = this.curLine.slice(0, this.to - this.curLineStart);\n this.iter.next();\n }\n }\n nextLine() {\n this.curLineStart = this.curLineStart + this.curLine.length + 1;\n if (this.curLineStart > this.to)\n this.curLine = \"\";\n else\n this.getLine(0);\n }\n /**\n Move to the next match, if there is one.\n */\n next() {\n for (let off = this.matchPos - this.curLineStart;;) {\n this.re.lastIndex = off;\n let match = this.matchPos <= this.to && this.re.exec(this.curLine);\n if (match) {\n let from = this.curLineStart + match.index, to = from + match[0].length;\n this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));\n if (from == this.curLineStart + this.curLine.length)\n this.nextLine();\n if ((from < to || from > this.value.to) && (!this.test || this.test(from, to, match))) {\n this.value = { from, to, match };\n return this;\n }\n off = this.matchPos - this.curLineStart;\n }\n else if (this.curLineStart + this.curLine.length < this.to) {\n this.nextLine();\n off = 0;\n }\n else {\n this.done = true;\n return this;\n }\n }\n }\n}\nconst flattened = /*@__PURE__*/new WeakMap();\n// Reusable (partially) flattened document strings\nclass FlattenedDoc {\n constructor(from, text) {\n this.from = from;\n this.text = text;\n }\n get to() { return this.from + this.text.length; }\n static get(doc, from, to) {\n let cached = flattened.get(doc);\n if (!cached || cached.from >= to || cached.to <= from) {\n let flat = new FlattenedDoc(from, doc.sliceString(from, to));\n flattened.set(doc, flat);\n return flat;\n }\n if (cached.from == from && cached.to == to)\n return cached;\n let { text, from: cachedFrom } = cached;\n if (cachedFrom > from) {\n text = doc.sliceString(from, cachedFrom) + text;\n cachedFrom = from;\n }\n if (cached.to < to)\n text += doc.sliceString(cached.to, to);\n flattened.set(doc, new FlattenedDoc(cachedFrom, text));\n return new FlattenedDoc(from, text.slice(from - cachedFrom, to - cachedFrom));\n }\n}\nclass MultilineRegExpCursor {\n constructor(text, query, options, from, to) {\n this.text = text;\n this.to = to;\n this.done = false;\n this.value = empty;\n this.matchPos = toCharEnd(text, from);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.test = options === null || options === void 0 ? void 0 : options.test;\n this.flat = FlattenedDoc.get(text, from, this.chunkEnd(from + 5000 /* Chunk.Base */));\n }\n chunkEnd(pos) {\n return pos >= this.to ? this.to : this.text.lineAt(pos).to;\n }\n next() {\n for (;;) {\n let off = this.re.lastIndex = this.matchPos - this.flat.from;\n let match = this.re.exec(this.flat.text);\n // Skip empty matches directly after the last match\n if (match && !match[0] && match.index == off) {\n this.re.lastIndex = off + 1;\n match = this.re.exec(this.flat.text);\n }\n if (match) {\n let from = this.flat.from + match.index, to = from + match[0].length;\n // If a match goes almost to the end of a noncomplete chunk, try\n // again, since it'll likely be able to match more\n if ((this.flat.to >= this.to || match.index + match[0].length <= this.flat.text.length - 10) &&\n (!this.test || this.test(from, to, match))) {\n this.value = { from, to, match };\n this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));\n return this;\n }\n }\n if (this.flat.to == this.to) {\n this.done = true;\n return this;\n }\n // Grow the flattened doc\n this.flat = FlattenedDoc.get(this.text, this.flat.from, this.chunkEnd(this.flat.from + this.flat.text.length * 2));\n }\n }\n}\nif (typeof Symbol != \"undefined\") {\n RegExpCursor.prototype[Symbol.iterator] = MultilineRegExpCursor.prototype[Symbol.iterator] =\n function () { return this; };\n}\nfunction validRegExp(source) {\n try {\n new RegExp(source, baseFlags);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction toCharEnd(text, pos) {\n if (pos >= text.length)\n return pos;\n let line = text.lineAt(pos), next;\n while (pos < line.to && (next = line.text.charCodeAt(pos - line.from)) >= 0xDC00 && next < 0xE000)\n pos++;\n return pos;\n}\n\n/**\nCommand that shows a dialog asking the user for a line number, and\nwhen a valid position is provided, moves the cursor to that line.\n\nSupports line numbers, relative line offsets prefixed with `+` or\n`-`, document percentages suffixed with `%`, and an optional\ncolumn position by adding `:` and a second number after the line\nnumber.\n*/\nconst gotoLine = view => {\n let { state } = view;\n let line = String(state.doc.lineAt(view.state.selection.main.head).number);\n let { close, result } = showDialog(view, {\n label: state.phrase(\"Go to line\"),\n input: { type: \"text\", name: \"line\", value: line },\n focus: true,\n submitLabel: state.phrase(\"go\"),\n });\n result.then(form => {\n let match = form && /^([+-])?(\\d+)?(:\\d+)?(%)?$/.exec(form.elements[\"line\"].value);\n if (!match) {\n view.dispatch({ effects: close });\n return;\n }\n let startLine = state.doc.lineAt(state.selection.main.head);\n let [, sign, ln, cl, percent] = match;\n let col = cl ? +cl.slice(1) : 0;\n let line = ln ? +ln : startLine.number;\n if (ln && percent) {\n let pc = line / 100;\n if (sign)\n pc = pc * (sign == \"-\" ? -1 : 1) + (startLine.number / state.doc.lines);\n line = Math.round(state.doc.lines * pc);\n }\n else if (ln && sign) {\n line = line * (sign == \"-\" ? -1 : 1) + startLine.number;\n }\n let docLine = state.doc.line(Math.max(1, Math.min(state.doc.lines, line)));\n let selection = EditorSelection.cursor(docLine.from + Math.max(0, Math.min(col, docLine.length)));\n view.dispatch({\n effects: [close, EditorView.scrollIntoView(selection.from, { y: 'center' })],\n selection,\n });\n });\n return true;\n};\n\nconst defaultHighlightOptions = {\n highlightWordAroundCursor: false,\n minSelectionLength: 1,\n maxMatches: 100,\n wholeWords: false\n};\nconst highlightConfig = /*@__PURE__*/Facet.define({\n combine(options) {\n return combineConfig(options, defaultHighlightOptions, {\n highlightWordAroundCursor: (a, b) => a || b,\n minSelectionLength: Math.min,\n maxMatches: Math.min\n });\n }\n});\n/**\nThis extension highlights text that matches the selection. It uses\nthe `\"cm-selectionMatch\"` class for the highlighting. When\n`highlightWordAroundCursor` is enabled, the word at the cursor\nitself will be highlighted with `\"cm-selectionMatch-main\"`.\n*/\nfunction highlightSelectionMatches(options) {\n let ext = [defaultTheme, matchHighlighter];\n if (options)\n ext.push(highlightConfig.of(options));\n return ext;\n}\nconst matchDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-selectionMatch\" });\nconst mainMatchDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-selectionMatch cm-selectionMatch-main\" });\n// Whether the characters directly outside the given positions are non-word characters\nfunction insideWordBoundaries(check, state, from, to) {\n return (from == 0 || check(state.sliceDoc(from - 1, from)) != CharCategory.Word) &&\n (to == state.doc.length || check(state.sliceDoc(to, to + 1)) != CharCategory.Word);\n}\n// Whether the characters directly at the given positions are word characters\nfunction insideWord(check, state, from, to) {\n return check(state.sliceDoc(from, from + 1)) == CharCategory.Word\n && check(state.sliceDoc(to - 1, to)) == CharCategory.Word;\n}\nconst matchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.decorations = this.getDeco(view);\n }\n update(update) {\n if (update.selectionSet || update.docChanged || update.viewportChanged)\n this.decorations = this.getDeco(update.view);\n }\n getDeco(view) {\n let conf = view.state.facet(highlightConfig);\n let { state } = view, sel = state.selection;\n if (sel.ranges.length > 1)\n return Decoration.none;\n let range = sel.main, query, check = null;\n if (range.empty) {\n if (!conf.highlightWordAroundCursor)\n return Decoration.none;\n let word = state.wordAt(range.head);\n if (!word)\n return Decoration.none;\n check = state.charCategorizer(range.head);\n query = state.sliceDoc(word.from, word.to);\n }\n else {\n let len = range.to - range.from;\n if (len < conf.minSelectionLength || len > 200)\n return Decoration.none;\n if (conf.wholeWords) {\n query = state.sliceDoc(range.from, range.to); // TODO: allow and include leading/trailing space?\n check = state.charCategorizer(range.head);\n if (!(insideWordBoundaries(check, state, range.from, range.to) &&\n insideWord(check, state, range.from, range.to)))\n return Decoration.none;\n }\n else {\n query = state.sliceDoc(range.from, range.to);\n if (!query)\n return Decoration.none;\n }\n }\n let deco = [];\n for (let part of view.visibleRanges) {\n let cursor = new SearchCursor(state.doc, query, part.from, part.to);\n while (!cursor.next().done) {\n let { from, to } = cursor.value;\n if (!check || insideWordBoundaries(check, state, from, to)) {\n if (range.empty && from <= range.from && to >= range.to)\n deco.push(mainMatchDeco.range(from, to));\n else if (from >= range.to || to <= range.from)\n deco.push(matchDeco.range(from, to));\n if (deco.length > conf.maxMatches)\n return Decoration.none;\n }\n }\n }\n return Decoration.set(deco);\n }\n}, {\n decorations: v => v.decorations\n});\nconst defaultTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-selectionMatch\": { backgroundColor: \"#99ff7780\" },\n \".cm-searchMatch .cm-selectionMatch\": { backgroundColor: \"transparent\" }\n});\n// Select the words around the cursors.\nconst selectWord = ({ state, dispatch }) => {\n let { selection } = state;\n let newSel = EditorSelection.create(selection.ranges.map(range => state.wordAt(range.head) || EditorSelection.cursor(range.head)), selection.mainIndex);\n if (newSel.eq(selection))\n return false;\n dispatch(state.update({ selection: newSel }));\n return true;\n};\n// Find next occurrence of query relative to last cursor. Wrap around\n// the document if there are no more matches.\nfunction findNextOccurrence(state, query) {\n let { main, ranges } = state.selection;\n let word = state.wordAt(main.head), fullWord = word && word.from == main.from && word.to == main.to;\n for (let cycled = false, cursor = new SearchCursor(state.doc, query, ranges[ranges.length - 1].to);;) {\n cursor.next();\n if (cursor.done) {\n if (cycled)\n return null;\n cursor = new SearchCursor(state.doc, query, 0, Math.max(0, ranges[ranges.length - 1].from - 1));\n cycled = true;\n }\n else {\n if (cycled && ranges.some(r => r.from == cursor.value.from))\n continue;\n if (fullWord) {\n let word = state.wordAt(cursor.value.from);\n if (!word || word.from != cursor.value.from || word.to != cursor.value.to)\n continue;\n }\n return cursor.value;\n }\n }\n}\n/**\nSelect next occurrence of the current selection. Expand selection\nto the surrounding word when the selection is empty.\n*/\nconst selectNextOccurrence = ({ state, dispatch }) => {\n let { ranges } = state.selection;\n if (ranges.some(sel => sel.from === sel.to))\n return selectWord({ state, dispatch });\n let searchedText = state.sliceDoc(ranges[0].from, ranges[0].to);\n if (state.selection.ranges.some(r => state.sliceDoc(r.from, r.to) != searchedText))\n return false;\n let range = findNextOccurrence(state, searchedText);\n if (!range)\n return false;\n dispatch(state.update({\n selection: state.selection.addRange(EditorSelection.range(range.from, range.to), false),\n effects: EditorView.scrollIntoView(range.to)\n }));\n return true;\n};\n\nconst searchConfigFacet = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n top: false,\n caseSensitive: false,\n literal: false,\n regexp: false,\n wholeWord: false,\n createPanel: view => new SearchPanel(view),\n scrollToMatch: range => EditorView.scrollIntoView(range)\n });\n }\n});\n/**\nAdd search state to the editor configuration, and optionally\nconfigure the search extension.\n([`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) will automatically\nenable this if it isn't already on).\n*/\nfunction search(config) {\n return config ? [searchConfigFacet.of(config), searchExtensions] : searchExtensions;\n}\n/**\nA search query. Part of the editor's search state.\n*/\nclass SearchQuery {\n /**\n Create a query object.\n */\n constructor(config) {\n this.search = config.search;\n this.caseSensitive = !!config.caseSensitive;\n this.literal = !!config.literal;\n this.regexp = !!config.regexp;\n this.replace = config.replace || \"\";\n this.valid = !!this.search && (!this.regexp || validRegExp(this.search));\n this.unquoted = this.unquote(this.search);\n this.wholeWord = !!config.wholeWord;\n this.test = config.test;\n }\n /**\n @internal\n */\n unquote(text) {\n return this.literal ? text :\n text.replace(/\\\\([nrt\\\\])/g, (_, ch) => ch == \"n\" ? \"\\n\" : ch == \"r\" ? \"\\r\" : ch == \"t\" ? \"\\t\" : \"\\\\\");\n }\n /**\n Compare this query to another query.\n */\n eq(other) {\n return this.search == other.search && this.replace == other.replace &&\n this.caseSensitive == other.caseSensitive && this.regexp == other.regexp &&\n this.wholeWord == other.wholeWord && this.test == other.test;\n }\n /**\n @internal\n */\n create() {\n return this.regexp ? new RegExpQuery(this) : new StringQuery(this);\n }\n /**\n Get a search cursor for this query, searching through the given\n range in the given state.\n */\n getCursor(state, from = 0, to) {\n let st = state.doc ? state : EditorState.create({ doc: state });\n if (to == null)\n to = st.doc.length;\n return this.regexp ? regexpCursor(this, st, from, to) : stringCursor(this, st, from, to);\n }\n}\nclass QueryType {\n constructor(spec) {\n this.spec = spec;\n }\n}\nfunction wrapStringTest(test, state, inner) {\n return (from, to, buffer, bufferPos) => {\n if (inner && !inner(from, to, buffer, bufferPos))\n return false;\n let match = from >= bufferPos && to <= bufferPos + buffer.length\n ? buffer.slice(from - bufferPos, to - bufferPos)\n : state.doc.sliceString(from, to);\n return test(match, state, from, to);\n };\n}\nfunction stringCursor(spec, state, from, to) {\n let test;\n if (spec.wholeWord)\n test = stringWordTest(state.doc, state.charCategorizer(state.selection.main.head));\n if (spec.test)\n test = wrapStringTest(spec.test, state, test);\n return new SearchCursor(state.doc, spec.unquoted, from, to, spec.caseSensitive ? undefined : x => x.toLowerCase(), test);\n}\nfunction stringWordTest(doc, categorizer) {\n return (from, to, buf, bufPos) => {\n if (bufPos > from || bufPos + buf.length < to) {\n bufPos = Math.max(0, from - 2);\n buf = doc.sliceString(bufPos, Math.min(doc.length, to + 2));\n }\n return (categorizer(charBefore(buf, from - bufPos)) != CharCategory.Word ||\n categorizer(charAfter(buf, from - bufPos)) != CharCategory.Word) &&\n (categorizer(charAfter(buf, to - bufPos)) != CharCategory.Word ||\n categorizer(charBefore(buf, to - bufPos)) != CharCategory.Word);\n };\n}\nclass StringQuery extends QueryType {\n constructor(spec) {\n super(spec);\n }\n nextMatch(state, curFrom, curTo) {\n let cursor = stringCursor(this.spec, state, curTo, state.doc.length).nextOverlapping();\n if (cursor.done) {\n let end = Math.min(state.doc.length, curFrom + this.spec.unquoted.length);\n cursor = stringCursor(this.spec, state, 0, end).nextOverlapping();\n }\n return cursor.done || cursor.value.from == curFrom && cursor.value.to == curTo ? null : cursor.value;\n }\n // Searching in reverse is, rather than implementing an inverted search\n // cursor, done by scanning chunk after chunk forward.\n prevMatchInRange(state, from, to) {\n for (let pos = to;;) {\n let start = Math.max(from, pos - 10000 /* FindPrev.ChunkSize */ - this.spec.unquoted.length);\n let cursor = stringCursor(this.spec, state, start, pos), range = null;\n while (!cursor.nextOverlapping().done)\n range = cursor.value;\n if (range)\n return range;\n if (start == from)\n return null;\n pos -= 10000 /* FindPrev.ChunkSize */;\n }\n }\n prevMatch(state, curFrom, curTo) {\n let found = this.prevMatchInRange(state, 0, curFrom);\n if (!found)\n found = this.prevMatchInRange(state, Math.max(0, curTo - this.spec.unquoted.length), state.doc.length);\n return found && (found.from != curFrom || found.to != curTo) ? found : null;\n }\n getReplacement(_result) { return this.spec.unquote(this.spec.replace); }\n matchAll(state, limit) {\n let cursor = stringCursor(this.spec, state, 0, state.doc.length), ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit)\n return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(state, from, to, add) {\n let cursor = stringCursor(this.spec, state, Math.max(0, from - this.spec.unquoted.length), Math.min(to + this.spec.unquoted.length, state.doc.length));\n while (!cursor.next().done)\n add(cursor.value.from, cursor.value.to);\n }\n}\nfunction wrapRegexpTest(test, state, inner) {\n return (from, to, match) => {\n return (!inner || inner(from, to, match)) && test(match[0], state, from, to);\n };\n}\nfunction regexpCursor(spec, state, from, to) {\n let test;\n if (spec.wholeWord)\n test = regexpWordTest(state.charCategorizer(state.selection.main.head));\n if (spec.test)\n test = wrapRegexpTest(spec.test, state, test);\n return new RegExpCursor(state.doc, spec.search, { ignoreCase: !spec.caseSensitive, test }, from, to);\n}\nfunction charBefore(str, index) {\n return str.slice(findClusterBreak(str, index, false), index);\n}\nfunction charAfter(str, index) {\n return str.slice(index, findClusterBreak(str, index));\n}\nfunction regexpWordTest(categorizer) {\n return (_from, _to, match) => !match[0].length ||\n (categorizer(charBefore(match.input, match.index)) != CharCategory.Word ||\n categorizer(charAfter(match.input, match.index)) != CharCategory.Word) &&\n (categorizer(charAfter(match.input, match.index + match[0].length)) != CharCategory.Word ||\n categorizer(charBefore(match.input, match.index + match[0].length)) != CharCategory.Word);\n}\nclass RegExpQuery extends QueryType {\n nextMatch(state, curFrom, curTo) {\n let cursor = regexpCursor(this.spec, state, curTo, state.doc.length).next();\n if (cursor.done)\n cursor = regexpCursor(this.spec, state, 0, curFrom).next();\n return cursor.done ? null : cursor.value;\n }\n prevMatchInRange(state, from, to) {\n for (let size = 1;; size++) {\n let start = Math.max(from, to - size * 10000 /* FindPrev.ChunkSize */);\n let cursor = regexpCursor(this.spec, state, start, to), range = null;\n while (!cursor.next().done)\n range = cursor.value;\n if (range && (start == from || range.from > start + 10))\n return range;\n if (start == from)\n return null;\n }\n }\n prevMatch(state, curFrom, curTo) {\n return this.prevMatchInRange(state, 0, curFrom) ||\n this.prevMatchInRange(state, curTo, state.doc.length);\n }\n getReplacement(result) {\n return this.spec.unquote(this.spec.replace).replace(/\\$([$&]|\\d+)/g, (m, i) => {\n if (i == \"&\")\n return result.match[0];\n if (i == \"$\")\n return \"$\";\n for (let l = i.length; l > 0; l--) {\n let n = +i.slice(0, l);\n if (n > 0 && n < result.match.length)\n return result.match[n] + i.slice(l);\n }\n return m;\n });\n }\n matchAll(state, limit) {\n let cursor = regexpCursor(this.spec, state, 0, state.doc.length), ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit)\n return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(state, from, to, add) {\n let cursor = regexpCursor(this.spec, state, Math.max(0, from - 250 /* RegExp.HighlightMargin */), Math.min(to + 250 /* RegExp.HighlightMargin */, state.doc.length));\n while (!cursor.next().done)\n add(cursor.value.from, cursor.value.to);\n }\n}\n/**\nA state effect that updates the current search query. Note that\nthis only has an effect if the search state has been initialized\n(by including [`search`](https://codemirror.net/6/docs/ref/#search.search) in your configuration or\nby running [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) at least\nonce).\n*/\nconst setSearchQuery = /*@__PURE__*/StateEffect.define();\nconst togglePanel = /*@__PURE__*/StateEffect.define();\nconst searchState = /*@__PURE__*/StateField.define({\n create(state) {\n return new SearchState(defaultQuery(state).create(), null);\n },\n update(value, tr) {\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery))\n value = new SearchState(effect.value.create(), value.panel);\n else if (effect.is(togglePanel))\n value = new SearchState(value.query, effect.value ? createSearchPanel : null);\n }\n return value;\n },\n provide: f => showPanel.from(f, val => val.panel)\n});\n/**\nGet the current search query from an editor state.\n*/\nfunction getSearchQuery(state) {\n let curState = state.field(searchState, false);\n return curState ? curState.query.spec : defaultQuery(state);\n}\n/**\nQuery whether the search panel is open in the given editor state.\n*/\nfunction searchPanelOpen(state) {\n var _a;\n return ((_a = state.field(searchState, false)) === null || _a === void 0 ? void 0 : _a.panel) != null;\n}\nclass SearchState {\n constructor(query, panel) {\n this.query = query;\n this.panel = panel;\n }\n}\nconst matchMark = /*@__PURE__*/Decoration.mark({ class: \"cm-searchMatch\" }), selectedMatchMark = /*@__PURE__*/Decoration.mark({ class: \"cm-searchMatch cm-searchMatch-selected\" });\nconst searchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.decorations = this.highlight(view.state.field(searchState));\n }\n update(update) {\n let state = update.state.field(searchState);\n if (state != update.startState.field(searchState) || update.docChanged || update.selectionSet || update.viewportChanged)\n this.decorations = this.highlight(state);\n }\n highlight({ query, panel }) {\n if (!panel || !query.spec.valid)\n return Decoration.none;\n let { view } = this;\n let builder = new RangeSetBuilder();\n for (let i = 0, ranges = view.visibleRanges, l = ranges.length; i < l; i++) {\n let { from, to } = ranges[i];\n while (i < l - 1 && to > ranges[i + 1].from - 2 * 250 /* RegExp.HighlightMargin */)\n to = ranges[++i].to;\n query.highlight(view.state, from, to, (from, to) => {\n let selected = view.state.selection.ranges.some(r => r.from == from && r.to == to);\n builder.add(from, to, selected ? selectedMatchMark : matchMark);\n });\n }\n return builder.finish();\n }\n}, {\n decorations: v => v.decorations\n});\nfunction searchCommand(f) {\n return view => {\n let state = view.state.field(searchState, false);\n return state && state.query.spec.valid ? f(view, state) : openSearchPanel(view);\n };\n}\n/**\nOpen the search panel if it isn't already open, and move the\nselection to the first match after the current main selection.\nWill wrap around to the start of the document when it reaches the\nend.\n*/\nconst findNext = /*@__PURE__*/searchCommand((view, { query }) => {\n let { to } = view.state.selection.main;\n let next = query.nextMatch(view.state, to, to);\n if (!next)\n return false;\n let selection = EditorSelection.single(next.from, next.to);\n let config = view.state.facet(searchConfigFacet);\n view.dispatch({\n selection,\n effects: [announceMatch(view, next), config.scrollToMatch(selection.main, view)],\n userEvent: \"select.search\"\n });\n selectSearchInput(view);\n return true;\n});\n/**\nMove the selection to the previous instance of the search query,\nbefore the current main selection. Will wrap past the start\nof the document to start searching at the end again.\n*/\nconst findPrevious = /*@__PURE__*/searchCommand((view, { query }) => {\n let { state } = view, { from } = state.selection.main;\n let prev = query.prevMatch(state, from, from);\n if (!prev)\n return false;\n let selection = EditorSelection.single(prev.from, prev.to);\n let config = view.state.facet(searchConfigFacet);\n view.dispatch({\n selection,\n effects: [announceMatch(view, prev), config.scrollToMatch(selection.main, view)],\n userEvent: \"select.search\"\n });\n selectSearchInput(view);\n return true;\n});\n/**\nSelect all instances of the search query.\n*/\nconst selectMatches = /*@__PURE__*/searchCommand((view, { query }) => {\n let ranges = query.matchAll(view.state, 1000);\n if (!ranges || !ranges.length)\n return false;\n view.dispatch({\n selection: EditorSelection.create(ranges.map(r => EditorSelection.range(r.from, r.to))),\n userEvent: \"select.search.matches\"\n });\n return true;\n});\n/**\nSelect all instances of the currently selected text.\n*/\nconst selectSelectionMatches = ({ state, dispatch }) => {\n let sel = state.selection;\n if (sel.ranges.length > 1 || sel.main.empty)\n return false;\n let { from, to } = sel.main;\n let ranges = [], main = 0;\n for (let cur = new SearchCursor(state.doc, state.sliceDoc(from, to)); !cur.next().done;) {\n if (ranges.length > 1000)\n return false;\n if (cur.value.from == from)\n main = ranges.length;\n ranges.push(EditorSelection.range(cur.value.from, cur.value.to));\n }\n dispatch(state.update({\n selection: EditorSelection.create(ranges, main),\n userEvent: \"select.search.matches\"\n }));\n return true;\n};\n/**\nReplace the current match of the search query.\n*/\nconst replaceNext = /*@__PURE__*/searchCommand((view, { query }) => {\n let { state } = view, { from, to } = state.selection.main;\n if (state.readOnly)\n return false;\n let match = query.nextMatch(state, from, from);\n if (!match)\n return false;\n let next = match;\n let changes = [], selection, replacement;\n let effects = [];\n if (next.from == from && next.to == to) {\n replacement = state.toText(query.getReplacement(next));\n changes.push({ from: next.from, to: next.to, insert: replacement });\n next = query.nextMatch(state, next.from, next.to);\n effects.push(EditorView.announce.of(state.phrase(\"replaced match on line $\", state.doc.lineAt(from).number) + \".\"));\n }\n let changeSet = view.state.changes(changes);\n if (next) {\n selection = EditorSelection.single(next.from, next.to).map(changeSet);\n effects.push(announceMatch(view, next));\n effects.push(state.facet(searchConfigFacet).scrollToMatch(selection.main, view));\n }\n view.dispatch({\n changes: changeSet,\n selection,\n effects,\n userEvent: \"input.replace\"\n });\n return true;\n});\n/**\nReplace all instances of the search query with the given\nreplacement.\n*/\nconst replaceAll = /*@__PURE__*/searchCommand((view, { query }) => {\n if (view.state.readOnly)\n return false;\n let changes = query.matchAll(view.state, 1e9).map(match => {\n let { from, to } = match;\n return { from, to, insert: query.getReplacement(match) };\n });\n if (!changes.length)\n return false;\n let announceText = view.state.phrase(\"replaced $ matches\", changes.length) + \".\";\n view.dispatch({\n changes,\n effects: EditorView.announce.of(announceText),\n userEvent: \"input.replace.all\"\n });\n return true;\n});\nfunction createSearchPanel(view) {\n return view.state.facet(searchConfigFacet).createPanel(view);\n}\nfunction defaultQuery(state, fallback) {\n var _a, _b, _c, _d, _e;\n let sel = state.selection.main;\n let selText = sel.empty || sel.to > sel.from + 100 ? \"\" : state.sliceDoc(sel.from, sel.to);\n if (fallback && !selText)\n return fallback;\n let config = state.facet(searchConfigFacet);\n return new SearchQuery({\n search: ((_a = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _a !== void 0 ? _a : config.literal) ? selText : selText.replace(/\\n/g, \"\\\\n\"),\n caseSensitive: (_b = fallback === null || fallback === void 0 ? void 0 : fallback.caseSensitive) !== null && _b !== void 0 ? _b : config.caseSensitive,\n literal: (_c = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _c !== void 0 ? _c : config.literal,\n regexp: (_d = fallback === null || fallback === void 0 ? void 0 : fallback.regexp) !== null && _d !== void 0 ? _d : config.regexp,\n wholeWord: (_e = fallback === null || fallback === void 0 ? void 0 : fallback.wholeWord) !== null && _e !== void 0 ? _e : config.wholeWord\n });\n}\nfunction getSearchInput(view) {\n let panel = getPanel(view, createSearchPanel);\n return panel && panel.dom.querySelector(\"[main-field]\");\n}\nfunction selectSearchInput(view) {\n let input = getSearchInput(view);\n if (input && input == view.root.activeElement)\n input.select();\n}\n/**\nMake sure the search panel is open and focused.\n*/\nconst openSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (state && state.panel) {\n let searchInput = getSearchInput(view);\n if (searchInput && searchInput != view.root.activeElement) {\n let query = defaultQuery(view.state, state.query.spec);\n if (query.valid)\n view.dispatch({ effects: setSearchQuery.of(query) });\n searchInput.focus();\n searchInput.select();\n }\n }\n else {\n view.dispatch({ effects: [\n togglePanel.of(true),\n state ? setSearchQuery.of(defaultQuery(view.state, state.query.spec)) : StateEffect.appendConfig.of(searchExtensions)\n ] });\n }\n return true;\n};\n/**\nClose the search panel.\n*/\nconst closeSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (!state || !state.panel)\n return false;\n let panel = getPanel(view, createSearchPanel);\n if (panel && panel.dom.contains(view.root.activeElement))\n view.focus();\n view.dispatch({ effects: togglePanel.of(false) });\n return true;\n};\n/**\nDefault search-related key bindings.\n\n - Mod-f: [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel)\n - F3, Mod-g: [`findNext`](https://codemirror.net/6/docs/ref/#search.findNext)\n - Shift-F3, Shift-Mod-g: [`findPrevious`](https://codemirror.net/6/docs/ref/#search.findPrevious)\n - Mod-Alt-g: [`gotoLine`](https://codemirror.net/6/docs/ref/#search.gotoLine)\n - Mod-d: [`selectNextOccurrence`](https://codemirror.net/6/docs/ref/#search.selectNextOccurrence)\n*/\nconst searchKeymap = [\n { key: \"Mod-f\", run: openSearchPanel, scope: \"editor search-panel\" },\n { key: \"F3\", run: findNext, shift: findPrevious, scope: \"editor search-panel\", preventDefault: true },\n { key: \"Mod-g\", run: findNext, shift: findPrevious, scope: \"editor search-panel\", preventDefault: true },\n { key: \"Escape\", run: closeSearchPanel, scope: \"editor search-panel\" },\n { key: \"Mod-Shift-l\", run: selectSelectionMatches },\n { key: \"Mod-Alt-g\", run: gotoLine },\n { key: \"Mod-d\", run: selectNextOccurrence, preventDefault: true },\n];\nclass SearchPanel {\n constructor(view) {\n this.view = view;\n let query = this.query = view.state.field(searchState).query.spec;\n this.commit = this.commit.bind(this);\n this.searchField = elt(\"input\", {\n value: query.search,\n placeholder: phrase(view, \"Find\"),\n \"aria-label\": phrase(view, \"Find\"),\n class: \"cm-textfield\",\n name: \"search\",\n form: \"\",\n \"main-field\": \"true\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.replaceField = elt(\"input\", {\n value: query.replace,\n placeholder: phrase(view, \"Replace\"),\n \"aria-label\": phrase(view, \"Replace\"),\n class: \"cm-textfield\",\n name: \"replace\",\n form: \"\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.caseField = elt(\"input\", {\n type: \"checkbox\",\n name: \"case\",\n form: \"\",\n checked: query.caseSensitive,\n onchange: this.commit\n });\n this.reField = elt(\"input\", {\n type: \"checkbox\",\n name: \"re\",\n form: \"\",\n checked: query.regexp,\n onchange: this.commit\n });\n this.wordField = elt(\"input\", {\n type: \"checkbox\",\n name: \"word\",\n form: \"\",\n checked: query.wholeWord,\n onchange: this.commit\n });\n function button(name, onclick, content) {\n return elt(\"button\", { class: \"cm-button\", name, onclick, type: \"button\" }, content);\n }\n this.dom = elt(\"div\", { onkeydown: (e) => this.keydown(e), class: \"cm-search\" }, [\n this.searchField,\n button(\"next\", () => findNext(view), [phrase(view, \"next\")]),\n button(\"prev\", () => findPrevious(view), [phrase(view, \"previous\")]),\n button(\"select\", () => selectMatches(view), [phrase(view, \"all\")]),\n elt(\"label\", null, [this.caseField, phrase(view, \"match case\")]),\n elt(\"label\", null, [this.reField, phrase(view, \"regexp\")]),\n elt(\"label\", null, [this.wordField, phrase(view, \"by word\")]),\n ...view.state.readOnly ? [] : [\n elt(\"br\"),\n this.replaceField,\n button(\"replace\", () => replaceNext(view), [phrase(view, \"replace\")]),\n button(\"replaceAll\", () => replaceAll(view), [phrase(view, \"replace all\")])\n ],\n elt(\"button\", {\n name: \"close\",\n onclick: () => closeSearchPanel(view),\n \"aria-label\": phrase(view, \"close\"),\n type: \"button\"\n }, [\"\u00D7\"])\n ]);\n }\n commit() {\n let query = new SearchQuery({\n search: this.searchField.value,\n caseSensitive: this.caseField.checked,\n regexp: this.reField.checked,\n wholeWord: this.wordField.checked,\n replace: this.replaceField.value,\n });\n if (!query.eq(this.query)) {\n this.query = query;\n this.view.dispatch({ effects: setSearchQuery.of(query) });\n }\n }\n keydown(e) {\n if (runScopeHandlers(this.view, e, \"search-panel\")) {\n e.preventDefault();\n }\n else if (e.keyCode == 13 && e.target == this.searchField) {\n e.preventDefault();\n (e.shiftKey ? findPrevious : findNext)(this.view);\n }\n else if (e.keyCode == 13 && e.target == this.replaceField) {\n e.preventDefault();\n replaceNext(this.view);\n }\n }\n update(update) {\n for (let tr of update.transactions)\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery) && !effect.value.eq(this.query))\n this.setQuery(effect.value);\n }\n }\n setQuery(query) {\n this.query = query;\n this.searchField.value = query.search;\n this.replaceField.value = query.replace;\n this.caseField.checked = query.caseSensitive;\n this.reField.checked = query.regexp;\n this.wordField.checked = query.wholeWord;\n }\n mount() {\n this.searchField.select();\n }\n get pos() { return 80; }\n get top() { return this.view.state.facet(searchConfigFacet).top; }\n}\nfunction phrase(view, phrase) { return view.state.phrase(phrase); }\nconst AnnounceMargin = 30;\nconst Break = /[\\s\\.,:;?!]/;\nfunction announceMatch(view, { from, to }) {\n let line = view.state.doc.lineAt(from), lineEnd = view.state.doc.lineAt(to).to;\n let start = Math.max(line.from, from - AnnounceMargin), end = Math.min(lineEnd, to + AnnounceMargin);\n let text = view.state.sliceDoc(start, end);\n if (start != line.from) {\n for (let i = 0; i < AnnounceMargin; i++)\n if (!Break.test(text[i + 1]) && Break.test(text[i])) {\n text = text.slice(i);\n break;\n }\n }\n if (end != lineEnd) {\n for (let i = text.length - 1; i > text.length - AnnounceMargin; i--)\n if (!Break.test(text[i - 1]) && Break.test(text[i])) {\n text = text.slice(0, i);\n break;\n }\n }\n return EditorView.announce.of(`${view.state.phrase(\"current match\")}. ${text} ${view.state.phrase(\"on line\")} ${line.number}.`);\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panel.cm-search\": {\n padding: \"2px 6px 4px\",\n position: \"relative\",\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\",\n right: \"4px\",\n backgroundColor: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: 0,\n margin: 0\n },\n \"& input, & button, & label\": {\n margin: \".2em .6em .2em 0\"\n },\n \"& input[type=checkbox]\": {\n marginRight: \".2em\"\n },\n \"& label\": {\n fontSize: \"80%\",\n whiteSpace: \"pre\"\n }\n },\n \"&light .cm-searchMatch\": { backgroundColor: \"#ffff0054\" },\n \"&dark .cm-searchMatch\": { backgroundColor: \"#00ffff8a\" },\n \"&light .cm-searchMatch-selected\": { backgroundColor: \"#ff6a0054\" },\n \"&dark .cm-searchMatch-selected\": { backgroundColor: \"#ff00ff8a\" }\n});\nconst searchExtensions = [\n searchState,\n /*@__PURE__*/Prec.low(searchHighlighter),\n baseTheme\n];\n\nexport { RegExpCursor, SearchCursor, SearchQuery, closeSearchPanel, findNext, findPrevious, getSearchQuery, gotoLine, highlightSelectionMatches, openSearchPanel, replaceAll, replaceNext, search, searchKeymap, searchPanelOpen, selectMatches, selectNextOccurrence, selectSelectionMatches, setSearchQuery };\n", "export default function crelt() {\n var elt = arguments[0]\n if (typeof elt == \"string\") elt = document.createElement(elt)\n var i = 1, next = arguments[1]\n if (next && typeof next == \"object\" && next.nodeType == null && !Array.isArray(next)) {\n for (var name in next) if (Object.prototype.hasOwnProperty.call(next, name)) {\n var value = next[name]\n if (typeof value == \"string\") elt.setAttribute(name, value)\n else if (value != null) elt[name] = value\n }\n i++\n }\n for (; i < arguments.length; i++) add(elt, arguments[i])\n return elt\n}\n\nfunction add(elt, child) {\n if (typeof child == \"string\") {\n elt.appendChild(document.createTextNode(child))\n } else if (child == null) {\n } else if (child.nodeType != null) {\n elt.appendChild(child)\n } else if (Array.isArray(child)) {\n for (var i = 0; i < child.length; i++) add(elt, child[i])\n } else {\n throw new RangeError(\"Unsupported child node: \" + child)\n }\n}\n", "import type { StateCommand } from \"@codemirror/state\";\nimport { EditorSelection } from \"@codemirror/state\";\nimport type { KeyBinding } from \"@codemirror/view\";\n\nconst MARKS = [\"**\", \"__\", \"~~\", \"*\", \"_\", \"`\"];\n\nconst toggleWrap =\n (mark: string): StateCommand =>\n ({ state, dispatch }) => {\n const selection = state.changeByRange((range) => {\n let from = range.from;\n let to = range.to;\n for (;;) {\n const found = MARKS.find(\n (m) =>\n state.sliceDoc(from - m.length, from) === m &&\n state.sliceDoc(to, to + m.length) === m\n );\n if (!found) break;\n if (found === mark) {\n return {\n changes: [\n { from: from - mark.length, to: from },\n { from: to, to: to + mark.length },\n ],\n range: EditorSelection.range(\n range.from - mark.length,\n range.to - mark.length\n ),\n };\n }\n from -= found.length;\n to += found.length;\n }\n\n from = range.from;\n to = range.to;\n for (;;) {\n const found = MARKS.find(\n (m) =>\n to - from >= m.length * 2 &&\n state.sliceDoc(from, from + m.length) === m &&\n state.sliceDoc(to - m.length, to) === m\n );\n if (!found) break;\n if (found === mark) {\n return {\n changes: [\n { from, to: from + mark.length },\n { from: to - mark.length, to },\n ],\n range: EditorSelection.range(\n range.from,\n range.to - mark.length * 2\n ),\n };\n }\n from += found.length;\n to -= found.length;\n }\n\n return {\n changes: [\n { from: range.from, insert: mark },\n { from: range.to, insert: mark },\n ],\n range: EditorSelection.range(\n range.from + mark.length,\n range.to + mark.length\n ),\n };\n });\n\n dispatch(state.update(selection, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n };\n\nexport const toggleBold = toggleWrap(\"**\");\nexport const toggleItalic = toggleWrap(\"_\");\nexport const toggleStrikethrough = toggleWrap(\"~~\");\nexport const toggleCode = toggleWrap(\"`\");\n\nexport const markdownFormattingKeymap: KeyBinding[] = [\n { key: \"Mod-b\", run: toggleBold, preventDefault: true },\n { key: \"Mod-i\", run: toggleItalic, preventDefault: true },\n { key: \"Mod-Shift-x\", run: toggleStrikethrough, preventDefault: true },\n { key: \"Mod-e\", run: toggleCode, preventDefault: true },\n];\n", "import { syntaxTree } from \"@codemirror/language\";\nimport { RangeSetBuilder } from \"@codemirror/state\";\nimport {\n Decoration,\n EditorView,\n ViewPlugin,\n ViewUpdate,\n WidgetType,\n type DecorationSet,\n} from \"@codemirror/view\";\n\n/**\n * GFM task list checkboxes: each `[ ]` / `[x]` marker in a list item is drawn\n * as a checkbox, and clicking it flips the character between the brackets.\n *\n * Needs the GFM markdown base (`markdownLanguage`), which is what parses the\n * `TaskMarker` node. Lives in the same bundle as the `markdown()` call so that\n * `syntaxTree` reads the same `Language` facet (see the note in embed.ts).\n */\nclass TaskWidget extends WidgetType {\n constructor(readonly checked: boolean) {\n super();\n }\n\n eq(other: TaskWidget) {\n return other.checked === this.checked;\n }\n\n toDOM(view: EditorView) {\n const box = document.createElement(\"input\");\n box.type = \"checkbox\";\n box.className = \"cm-task\";\n box.checked = this.checked;\n box.disabled = !view.state.facet(EditorView.editable);\n box.setAttribute(\"aria-label\", this.checked ? \"Done\" : \"To do\");\n // mousedown, not click: keeps focus/selection where it was and stops\n // CodeMirror from moving the cursor onto the line.\n box.addEventListener(\"mousedown\", (event) => {\n event.preventDefault();\n if (box.disabled) return;\n toggle(view, view.posAtDOM(box));\n });\n return box;\n }\n\n ignoreEvent() {\n return true;\n }\n}\n\n/** Flip the task marker starting at `from` (the `[`). */\nfunction toggle(view: EditorView, from: number) {\n const marker = view.state.doc.sliceString(from, from + 3);\n if (!/^\\[[ xX]\\]$/.test(marker)) return;\n const insert = marker[1] === \" \" ? \"x\" : \" \";\n view.dispatch({\n changes: { from: from + 1, to: from + 2, insert },\n userEvent: \"input.toggle-task\",\n });\n}\n\nfunction build(view: EditorView): DecorationSet {\n const builder = new RangeSetBuilder<Decoration>();\n const { doc } = view.state;\n for (const { from, to } of view.visibleRanges) {\n syntaxTree(view.state).iterate({\n from,\n to,\n enter: (node) => {\n if (node.name !== \"TaskMarker\") return;\n const checked = doc.sliceString(node.from + 1, node.to - 1) !== \" \";\n builder.add(\n node.from,\n node.to,\n Decoration.replace({ widget: new TaskWidget(checked) })\n );\n },\n });\n }\n return builder.finish();\n}\n\nexport const taskCheckboxes = ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n constructor(view: EditorView) {\n this.decorations = build(view);\n }\n update(update: ViewUpdate) {\n // The tree changes as the parser catches up, not only on edits.\n if (\n update.docChanged ||\n update.viewportChanged ||\n syntaxTree(update.startState) !== syntaxTree(update.state)\n ) {\n this.decorations = build(update.view);\n }\n }\n },\n { decorations: (v) => v.decorations }\n);\n", "import {\n HighlightStyle,\n syntaxHighlighting,\n syntaxTree,\n} from \"@codemirror/language\";\nimport { RangeSetBuilder } from \"@codemirror/state\";\nimport {\n Decoration,\n EditorView,\n ViewPlugin,\n WidgetType,\n type DecorationSet,\n type ViewUpdate,\n} from \"@codemirror/view\";\nimport { tags } from \"@lezer/highlight\";\n\nconst bodyFont = (style: \"serif\" | \"sans\") =>\n style == \"serif\"\n ? 'var(--text-editor-family-serif, \"Merriweather\", serif)'\n : \"var(--text-editor-family-sans)\";\n\nconst markdownStyles = (style: \"serif\" | \"sans\"): Record<string, any> => ({\n \"&\": {},\n \"&.cm-editor.cm-focused\": {\n outline: \"none\",\n },\n\n \"&.cm-editor\": {\n height: \"100%\",\n display: \"flex\",\n alignContent: \"center\",\n justifyContent: \"center\",\n overflow: \"auto\",\n },\n \".cm-scroller\": {\n background: \"var(--text-editor-fill)\",\n },\n \".cm-gutter\": {\n background: \"transparent\",\n },\n \".cm-content\": {\n // Justified text makes it look more like the I&S web essay template,\n // but doesn't feel right for most documents.\n // textAlign: \"justify\",\n textWrap: \"pretty\",\n fontFamily: bodyFont(style),\n lineHeight: \"1.5rem\",\n color: \"var(--text-editor-line)\",\n caretColor: \"var(--text-editor-cursor-fill)\",\n background: \"var(--text-editor-fill)\",\n marginBlock: \"2rem\",\n marginInline: \"auto\",\n // lol i guess this is the same as box-sizing: content-box\n maxWidth: \"calc(var(--max-text-line-width, 100ex) - 2rem)\",\n padding: \"2rem\",\n boxShadow: \"none\",\n marginBottom: \"8em\",\n borderRadius: \"8px\",\n },\n \".cm-content li\": {\n marginBottom: 0,\n },\n \".cm-bullet\": {\n display: \"inline-block\",\n width: \"1ch\",\n },\n \".cm-bullet::before\": {\n content: '\"\"',\n display: \"inline-block\",\n width: \"0.4em\",\n height: \"0.4em\",\n borderRadius: \"50%\",\n background: \"currentColor\",\n color: \"var(--text-editor-line)\",\n verticalAlign: \"0.15em\",\n },\n \".cm-task\": {\n margin: \"0 0.1em\",\n verticalAlign: \"-0.1em\",\n cursor: \"pointer\",\n },\n \".cm-task:disabled\": {\n cursor: \"default\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"inherit\",\n },\n\n \".frontmatter, .frontmatter *\": {\n fontSize: \"14px\",\n fontFamily: \"var(--text-editor-family-code)\",\n color: \"var(--syntax-comment, #666)\",\n textDecoration: \"none\",\n fontWeight: \"normal\",\n lineHeight: \"0.8em\",\n },\n\n \".cm-gutters\": {\n borderRight: \"0\",\n border: \"0\",\n background: \"var(--text-editor-gutter-fill)\",\n },\n\n \".cm-comment-gutter\": {\n width: \"20px\",\n },\n\n \".cm-folded-range-gutter-line-number\": {\n display: \"none\",\n },\n\n \".cm-folded-range-gutter\": {\n background: \"var(--text-editor-fill)\",\n borderRight: \"0px\",\n width: \"40px\",\n },\n\n \".cm-folded-line-widget\": {\n background: \"var(--text-editor-fill)\",\n border: \"0px\",\n },\n\n \".cm-folded-range\": {\n background: \"var(--text-editor-fill)\",\n },\n\n \".codeblock\": {\n background: \"orange\",\n },\n});\n\nconst baseHeadingStyles = {\n fontFamily: \"var(--studio-heading-family, var(--text-editor-family-sans))\",\n fontWeight: \"var(--studio-heading-weight, 400)\",\n textDecoration: \"none\",\n};\n\nconst baseCodeStyles = {\n fontFamily: \"var(--text-editor-family-code)\",\n fontSize: \"1em\",\n};\n\nconst markdownSyntaxHighlighting = (style: \"serif\" | \"sans\") =>\n HighlightStyle.define([\n // this is how you ensure that codeblocks are still monospace\n {\n tag: tags.content,\n fontFamily: bodyFont(style),\n },\n {\n tag: tags.heading1,\n ...baseHeadingStyles,\n fontSize: \"var(--studio-heading-size-1, 1.5rem)\",\n lineHeight: \"2rem\",\n marginBottom: \"1rem\",\n marginTop: \"2rem\",\n },\n {\n tag: tags.heading2,\n ...baseHeadingStyles,\n fontSize: \"var(--studio-heading-size-2, 1.5rem)\",\n lineHeight: \"2rem\",\n marginBottom: \"1rem\",\n marginTop: \"2rem\",\n },\n {\n tag: tags.heading3,\n ...baseHeadingStyles,\n fontSize: \"var(--studio-heading-size-3, 1.25rem)\",\n lineHeight: \"1.75rem\",\n marginBottom: \"1rem\",\n marginTop: \"2rem\",\n },\n {\n tag: tags.heading4,\n ...baseHeadingStyles,\n fontSize: \"var(--studio-heading-size-4, 1.1rem)\",\n marginBottom: \"1rem\",\n marginTop: \"2rem\",\n },\n {\n tag: tags.processingInstruction,\n color: \"var(--text-editor-line-offset-40)\",\n },\n {\n tag: tags.comment,\n color: \"var(--syntax-comment, #555)\",\n fontFamily: \"var(--text-editor-family-code)\",\n },\n { tag: tags.quote, fontStyle: \"var(--syntax-style-quote, italic)\" },\n {\n tag: tags.strong,\n fontWeight: \"var(--syntax-weight-strong, bold)\",\n },\n {\n tag: tags.emphasis,\n fontStyle: \"var(--syntax-style-emphasis, italic)\",\n },\n {\n tag: tags.strikethrough,\n textDecoration: \"line-through\",\n },\n {\n tag: [tags.meta],\n fontWeight: 300,\n color: \"var(--syntax-meta, #999)\",\n fontFamily: \"var(--text-editor-family-sans)\",\n },\n { tag: tags.keyword, ...baseCodeStyles, color: \"var(--syntax-keyword, #708)\" },\n {\n tag: [\n tags.atom,\n tags.bool,\n tags.url,\n tags.contentSeparator,\n tags.labelName,\n ],\n ...baseCodeStyles,\n color: \"var(--syntax-atom, var(--studio-secondary))\",\n },\n { tag: [tags.literal, tags.inserted], ...baseCodeStyles, color: \"var(--syntax-inserted, #164)\" },\n { tag: [tags.string, tags.deleted], ...baseCodeStyles, color: \"var(--syntax-string, #5f67b5)\" },\n {\n tag: [tags.regexp, tags.escape, tags.special(tags.string)],\n ...baseCodeStyles,\n color: \"var(--syntax-regexp, #e40)\",\n },\n {\n tag: tags.definition(tags.variableName),\n ...baseCodeStyles,\n color: \"var(--syntax-definition--variable-name, #00f)\",\n },\n { tag: tags.local(tags.variableName), ...baseCodeStyles, color: \"var(--syntax-variable-name, #30a)\" },\n { tag: [tags.typeName, tags.namespace], ...baseCodeStyles, color: \"var(--syntax-type-name, #085)\" },\n { tag: tags.className, ...baseCodeStyles, color: \"var(--syntax-class-name, #167)\" },\n {\n tag: [tags.special(tags.variableName), tags.macroName],\n ...baseCodeStyles,\n color: \"var(--syntax-special--variable-name, #256)\",\n },\n {\n tag: tags.definition(tags.propertyName),\n ...baseCodeStyles,\n color: \"var(--syntax-function--property-name, #00c)\",\n },\n { tag: tags.monospace, ...baseCodeStyles },\n ]);\n\nexport const theme = (style: \"serif\" | \"sans\") => [\n EditorView.theme(markdownStyles(style)),\n syntaxHighlighting(markdownSyntaxHighlighting(style)),\n bullets,\n codeblocks,\n];\n\nconst bullets = ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n view: EditorView;\n constructor(view: EditorView) {\n this.view = view;\n this.decorations = this.build();\n }\n update(update: ViewUpdate) {\n if (update.docChanged || update.viewportChanged) {\n this.decorations = this.build();\n }\n }\n private build(): DecorationSet {\n const builder = new RangeSetBuilder<Decoration>();\n const doc = this.view.state.doc;\n syntaxTree(this.view.state).iterate({\n enter: ({ type, from }) => {\n if (type.name === \"ListMark\") {\n const char = doc.sliceString(from, from + 1);\n if ([\"-\", \"+\", \"*\"].includes(char)) {\n builder.add(\n from,\n from + 1,\n Decoration.replace({ widget: new BulletWidget() })\n );\n }\n }\n },\n });\n return builder.finish();\n }\n },\n {\n decorations: (v) => v.decorations,\n }\n);\n\nclass BulletWidget extends WidgetType {\n toDOM() {\n const span = document.createElement(\"span\");\n span.className = \"cm-bullet\";\n return span;\n }\n}\nconst codeblocks = ViewPlugin.fromClass(\n class BlockquotePlugin {\n decorations: DecorationSet = Decoration.none;\n\n constructor(view: EditorView) {\n this.buildDeco(view);\n }\n\n update(update: ViewUpdate) {\n this.buildDeco(update.view);\n }\n\n buildDeco(view: EditorView) {\n const builder = new RangeSetBuilder<Decoration>();\n view.viewportLineBlocks.forEach((line) => {\n const lineObj = view.state.doc.lineAt(line.from);\n const match = /^>.*/g.exec(lineObj.text);\n if (match && match[0]) {\n builder.add(\n line.from,\n line.from,\n Decoration.line({ class: \"codeblock\" })\n );\n }\n });\n\n this.decorations = builder.finish();\n }\n }\n);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["line", "word", "add", "from", "to", "phrase", "EditorView", "EditorSelection", "RangeSetBuilder", "Decoration", "EditorView", "ViewPlugin", "syntaxTree", "RangeSetBuilder", "Decoration", "EditorView", "ViewPlugin", "WidgetType", "EditorView", "ViewPlugin", "RangeSetBuilder", "syntaxTree", "Decoration", "WidgetType", "EditorView"]
|
|
7
7
|
}
|
package/plugin-registry-url
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
automerge:
|
|
1
|
+
automerge:3gywSpgsHhMZFy5ityrhWhE2YyA7
|