@maketribe/ms-app 3.0.35 → 3.0.37
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/dist/cjs/dataview/material/material-group/MaterialGroupTree.js +1 -0
- package/dist/cjs/dataview/material/material-group/MaterialGroupTree.js.map +1 -1
- package/dist/cjs/dataview/member/MemberTable.js +2 -2
- package/dist/cjs/dataview/member/MemberTable.js.map +1 -1
- package/dist/cjs/dataview/menu/MenuTable.js +33 -0
- package/dist/cjs/dataview/menu/MenuTable.js.map +1 -1
- package/dist/cjs/layouts/components/header/tools.js +7 -2
- package/dist/cjs/layouts/components/header/tools.js.map +1 -1
- package/dist/cjs/node_modules/.pnpm/{@codemirror_autocomplete@6.11.1_@codemirror_language@6.9.3_@codemirror_state@6.3.2_@codemirro_dop6xooh6ucho44vivbvrw3b2e → @codemirror_autocomplete@6.15.0_@codemirror_language@6.10.1_@codemirror_state@6.4.1_@codemirr_djjyqdn7bhwopzrz2h2s2bwhzm}/node_modules/@codemirror/autocomplete/dist/index.js +77 -25
- package/dist/cjs/node_modules/.pnpm/@codemirror_autocomplete@6.15.0_@codemirror_language@6.10.1_@codemirror_state@6.4.1_@codemirr_djjyqdn7bhwopzrz2h2s2bwhzm/node_modules/@codemirror/autocomplete/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/@codemirror_commands@6.3.2/node_modules/@codemirror/commands/dist/index.js +7 -1433
- package/dist/cjs/node_modules/.pnpm/@codemirror_commands@6.3.2/node_modules/@codemirror/commands/dist/index.js.map +1 -1
- package/dist/cjs/node_modules/.pnpm/@codemirror_commands@6.3.3/node_modules/@codemirror/commands/dist/index.js +1484 -0
- package/dist/cjs/node_modules/.pnpm/@codemirror_commands@6.3.3/node_modules/@codemirror/commands/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/@codemirror_language@6.10.1/node_modules/@codemirror/language/dist/index.js +1751 -0
- package/dist/cjs/node_modules/.pnpm/@codemirror_language@6.10.1/node_modules/@codemirror/language/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/@codemirror_language@6.9.3/node_modules/@codemirror/language/dist/index.js +0 -1030
- package/dist/cjs/node_modules/.pnpm/@codemirror_language@6.9.3/node_modules/@codemirror/language/dist/index.js.map +1 -1
- package/dist/cjs/node_modules/.pnpm/{@codemirror_lint@6.4.2 → @codemirror_lint@6.5.0}/node_modules/@codemirror/lint/dist/index.js +8 -7
- package/dist/cjs/node_modules/.pnpm/@codemirror_lint@6.5.0/node_modules/@codemirror/lint/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/{@codemirror_search@6.5.5 → @codemirror_search@6.5.6}/node_modules/@codemirror/search/dist/index.js +9 -9
- package/dist/cjs/node_modules/.pnpm/@codemirror_search@6.5.6/node_modules/@codemirror/search/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/@codemirror_state@6.3.2/node_modules/@codemirror/state/dist/index.js +0 -42
- package/dist/cjs/node_modules/.pnpm/@codemirror_state@6.3.2/node_modules/@codemirror/state/dist/index.js.map +1 -1
- package/dist/cjs/node_modules/.pnpm/@codemirror_state@6.4.1/node_modules/@codemirror/state/dist/index.js +3958 -0
- package/dist/cjs/node_modules/.pnpm/@codemirror_state@6.4.1/node_modules/@codemirror/state/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/@codemirror_view@6.22.1/node_modules/@codemirror/view/dist/index.js +3 -2161
- package/dist/cjs/node_modules/.pnpm/@codemirror_view@6.22.1/node_modules/@codemirror/view/dist/index.js.map +1 -1
- package/dist/cjs/node_modules/.pnpm/@codemirror_view@6.26.1/node_modules/@codemirror/view/dist/index.js +10580 -0
- package/dist/cjs/node_modules/.pnpm/@codemirror_view@6.26.1/node_modules/@codemirror/view/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/@lezer_common@1.2.1/node_modules/@lezer/common/dist/index.js +1668 -0
- package/dist/cjs/node_modules/.pnpm/@lezer_common@1.2.1/node_modules/@lezer/common/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/{codemirror@6.0.1_@lezer_common@1.1.1 → codemirror@6.0.1_@lezer_common@1.2.1}/node_modules/codemirror/dist/index.js +7 -7
- package/dist/cjs/node_modules/.pnpm/{codemirror@6.0.1_@lezer_common@1.1.1 → codemirror@6.0.1_@lezer_common@1.2.1}/node_modules/codemirror/dist/index.js.map +1 -1
- package/dist/cjs/node_modules/.pnpm/style-mod@4.1.2/node_modules/style-mod/src/style-mod.js +177 -0
- package/dist/cjs/node_modules/.pnpm/style-mod@4.1.2/node_modules/style-mod/src/style-mod.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/vue-codemirror@6.1.1_codemirror@6.0.1_vue@3.3.4/node_modules/vue-codemirror/dist/vue-codemirror.esm.js +1 -1
- package/dist/esm/dataview/material/material-group/MaterialGroupTree.js +1 -0
- package/dist/esm/dataview/material/material-group/MaterialGroupTree.js.map +1 -1
- package/dist/esm/dataview/member/MemberTable.js +2 -2
- package/dist/esm/dataview/member/MemberTable.js.map +1 -1
- package/dist/esm/dataview/menu/MenuTable.js +34 -1
- package/dist/esm/dataview/menu/MenuTable.js.map +1 -1
- package/dist/esm/layouts/components/header/tools.js +7 -2
- package/dist/esm/layouts/components/header/tools.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/{@codemirror_autocomplete@6.11.1_@codemirror_language@6.9.3_@codemirror_state@6.3.2_@codemirro_dop6xooh6ucho44vivbvrw3b2e → @codemirror_autocomplete@6.15.0_@codemirror_language@6.10.1_@codemirror_state@6.4.1_@codemirr_djjyqdn7bhwopzrz2h2s2bwhzm}/node_modules/@codemirror/autocomplete/dist/index.js +77 -25
- package/dist/esm/node_modules/.pnpm/@codemirror_autocomplete@6.15.0_@codemirror_language@6.10.1_@codemirror_state@6.4.1_@codemirr_djjyqdn7bhwopzrz2h2s2bwhzm/node_modules/@codemirror/autocomplete/dist/index.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/@codemirror_commands@6.3.2/node_modules/@codemirror/commands/dist/index.js +4 -1357
- package/dist/esm/node_modules/.pnpm/@codemirror_commands@6.3.2/node_modules/@codemirror/commands/dist/index.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/@codemirror_commands@6.3.3/node_modules/@codemirror/commands/dist/index.js +1408 -0
- package/dist/esm/node_modules/.pnpm/@codemirror_commands@6.3.3/node_modules/@codemirror/commands/dist/index.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/@codemirror_language@6.10.1/node_modules/@codemirror/language/dist/index.js +1715 -0
- package/dist/esm/node_modules/.pnpm/@codemirror_language@6.10.1/node_modules/@codemirror/language/dist/index.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/@codemirror_language@6.9.3/node_modules/@codemirror/language/dist/index.js +4 -1011
- package/dist/esm/node_modules/.pnpm/@codemirror_language@6.9.3/node_modules/@codemirror/language/dist/index.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/{@codemirror_lint@6.4.2 → @codemirror_lint@6.5.0}/node_modules/@codemirror/lint/dist/index.js +8 -7
- package/dist/esm/node_modules/.pnpm/@codemirror_lint@6.5.0/node_modules/@codemirror/lint/dist/index.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/{@codemirror_search@6.5.5 → @codemirror_search@6.5.6}/node_modules/@codemirror/search/dist/index.js +9 -9
- package/dist/esm/node_modules/.pnpm/@codemirror_search@6.5.6/node_modules/@codemirror/search/dist/index.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/@codemirror_state@6.3.2/node_modules/@codemirror/state/dist/index.js +1 -41
- package/dist/esm/node_modules/.pnpm/@codemirror_state@6.3.2/node_modules/@codemirror/state/dist/index.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/@codemirror_state@6.4.1/node_modules/@codemirror/state/dist/index.js +3930 -0
- package/dist/esm/node_modules/.pnpm/@codemirror_state@6.4.1/node_modules/@codemirror/state/dist/index.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/@codemirror_view@6.22.1/node_modules/@codemirror/view/dist/index.js +5 -2142
- package/dist/esm/node_modules/.pnpm/@codemirror_view@6.22.1/node_modules/@codemirror/view/dist/index.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/@codemirror_view@6.26.1/node_modules/@codemirror/view/dist/index.js +10548 -0
- package/dist/esm/node_modules/.pnpm/@codemirror_view@6.26.1/node_modules/@codemirror/view/dist/index.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/@lezer_common@1.2.1/node_modules/@lezer/common/dist/index.js +1658 -0
- package/dist/esm/node_modules/.pnpm/@lezer_common@1.2.1/node_modules/@lezer/common/dist/index.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/{codemirror@6.0.1_@lezer_common@1.1.1 → codemirror@6.0.1_@lezer_common@1.2.1}/node_modules/codemirror/dist/index.js +8 -8
- package/dist/esm/node_modules/.pnpm/{codemirror@6.0.1_@lezer_common@1.1.1 → codemirror@6.0.1_@lezer_common@1.2.1}/node_modules/codemirror/dist/index.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/style-mod@4.1.2/node_modules/style-mod/src/style-mod.js +175 -0
- package/dist/esm/node_modules/.pnpm/style-mod@4.1.2/node_modules/style-mod/src/style-mod.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/vue-codemirror@6.1.1_codemirror@6.0.1_vue@3.3.4/node_modules/vue-codemirror/dist/vue-codemirror.esm.js +1 -1
- package/dist/style/components/classify-search.css +1 -1
- package/dist/style/components/index.css +1 -1
- package/dist/style/index.css +2 -2
- package/dist/style/layouts/default/header.css +1 -1
- package/dist/style/layouts/default/index.css +1 -1
- package/dist/style/layouts/index.css +1 -1
- package/dist/style/src/components/classify-search.scss +5 -2
- package/dist/style/src/layouts/default/header.scss +4 -0
- package/package.json +3 -3
- package/src/dataview/material/material-group/MaterialGroupTree.ts +1 -0
- package/src/dataview/member/MemberTable.tsx +2 -2
- package/src/dataview/menu/MenuTable.ts +34 -1
- package/src/layouts/components/header/tools.tsx +6 -1
- package/dist/cjs/node_modules/.pnpm/@codemirror_autocomplete@6.11.1_@codemirror_language@6.9.3_@codemirror_state@6.3.2_@codemirro_dop6xooh6ucho44vivbvrw3b2e/node_modules/@codemirror/autocomplete/dist/index.js.map +0 -1
- package/dist/cjs/node_modules/.pnpm/@codemirror_lint@6.4.2/node_modules/@codemirror/lint/dist/index.js.map +0 -1
- package/dist/cjs/node_modules/.pnpm/@codemirror_search@6.5.5/node_modules/@codemirror/search/dist/index.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@codemirror_autocomplete@6.11.1_@codemirror_language@6.9.3_@codemirror_state@6.3.2_@codemirro_dop6xooh6ucho44vivbvrw3b2e/node_modules/@codemirror/autocomplete/dist/index.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@codemirror_lint@6.4.2/node_modules/@codemirror/lint/dist/index.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@codemirror_search@6.5.5/node_modules/@codemirror/search/dist/index.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('../../../../../@codemirror_view@6.
|
|
4
|
-
var index$1 = require('../../../../../@codemirror_state@6.
|
|
3
|
+
var index = require('../../../../../@codemirror_view@6.26.1/node_modules/@codemirror/view/dist/index.js');
|
|
4
|
+
var index$1 = require('../../../../../@codemirror_state@6.4.1/node_modules/@codemirror/state/dist/index.js');
|
|
5
5
|
var index$2 = require('../../../../../crelt@1.0.6/node_modules/crelt/index.js');
|
|
6
6
|
|
|
7
7
|
class SelectedDiagnostic {
|
|
@@ -22,7 +22,7 @@ class LintState {
|
|
|
22
22
|
let markedDiagnostics = diagnostics;
|
|
23
23
|
let diagnosticFilter = state.facet(lintConfig).markerFilter;
|
|
24
24
|
if (diagnosticFilter)
|
|
25
|
-
markedDiagnostics = diagnosticFilter(markedDiagnostics);
|
|
25
|
+
markedDiagnostics = diagnosticFilter(markedDiagnostics, state);
|
|
26
26
|
let ranges = index.Decoration.set(markedDiagnostics.map((d) => {
|
|
27
27
|
// For zero-length ranges or ranges covering only a line break, create a widget
|
|
28
28
|
return d.from == d.to || (d.from == d.to - 1 && state.doc.lineAt(d.from).to == d.from)
|
|
@@ -32,7 +32,8 @@ class LintState {
|
|
|
32
32
|
}).range(d.from)
|
|
33
33
|
: index.Decoration.mark({
|
|
34
34
|
attributes: { class: "cm-lintRange cm-lintRange-" + d.severity + (d.markClass ? " " + d.markClass : "") },
|
|
35
|
-
diagnostic: d
|
|
35
|
+
diagnostic: d,
|
|
36
|
+
inclusive: true
|
|
36
37
|
}).range(d.from, d.to);
|
|
37
38
|
}), true);
|
|
38
39
|
return new LintState(ranges, panel, findDiagnostic(ranges));
|
|
@@ -91,7 +92,7 @@ const lintState = /*@__PURE__*/index$1.StateField.define({
|
|
|
91
92
|
provide: f => [index.showPanel.from(f, val => val.panel),
|
|
92
93
|
index.EditorView.decorations.from(f, s => s.diagnostics)]
|
|
93
94
|
});
|
|
94
|
-
const activeMark = /*@__PURE__*/index.Decoration.mark({ class: "cm-lintRange cm-lintRange-active" });
|
|
95
|
+
const activeMark = /*@__PURE__*/index.Decoration.mark({ class: "cm-lintRange cm-lintRange-active", inclusive: true });
|
|
95
96
|
function lintTooltip(view, pos, side) {
|
|
96
97
|
let { diagnostics } = view.state.field(lintState);
|
|
97
98
|
let found = [], stackStart = 2e8, stackEnd = 0;
|
|
@@ -105,7 +106,7 @@ function lintTooltip(view, pos, side) {
|
|
|
105
106
|
});
|
|
106
107
|
let diagnosticFilter = view.state.facet(lintConfig).tooltipFilter;
|
|
107
108
|
if (diagnosticFilter)
|
|
108
|
-
found = diagnosticFilter(found);
|
|
109
|
+
found = diagnosticFilter(found, view.state);
|
|
109
110
|
if (!found.length)
|
|
110
111
|
return null;
|
|
111
112
|
return {
|
|
@@ -170,7 +171,7 @@ const lintKeymap = [
|
|
|
170
171
|
];
|
|
171
172
|
const lintConfig = /*@__PURE__*/index$1.Facet.define({
|
|
172
173
|
combine(input) {
|
|
173
|
-
return Object.assign({ sources: input.map(i => i.source) }, index$1.combineConfig(input.map(i => i.config), {
|
|
174
|
+
return Object.assign({ sources: input.map(i => i.source).filter(x => x != null) }, index$1.combineConfig(input.map(i => i.config), {
|
|
174
175
|
delay: 750,
|
|
175
176
|
markerFilter: null,
|
|
176
177
|
tooltipFilter: null,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../../../../../node_modules/.pnpm/@codemirror+lint@6.5.0/node_modules/@codemirror/lint/dist/index.js"],"sourcesContent":["import { Decoration, showPanel, EditorView, ViewPlugin, logException, gutter, showTooltip, hoverTooltip, getPanel, WidgetType, GutterMarker } from '@codemirror/view';\nimport { StateEffect, StateField, Facet, combineConfig, RangeSet } from '@codemirror/state';\nimport elt from 'crelt';\n\nclass SelectedDiagnostic {\n constructor(from, to, diagnostic) {\n this.from = from;\n this.to = to;\n this.diagnostic = diagnostic;\n }\n}\nclass LintState {\n constructor(diagnostics, panel, selected) {\n this.diagnostics = diagnostics;\n this.panel = panel;\n this.selected = selected;\n }\n static init(diagnostics, panel, state) {\n // Filter the list of diagnostics for which to create markers\n let markedDiagnostics = diagnostics;\n let diagnosticFilter = state.facet(lintConfig).markerFilter;\n if (diagnosticFilter)\n markedDiagnostics = diagnosticFilter(markedDiagnostics, state);\n let ranges = Decoration.set(markedDiagnostics.map((d) => {\n // For zero-length ranges or ranges covering only a line break, create a widget\n return d.from == d.to || (d.from == d.to - 1 && state.doc.lineAt(d.from).to == d.from)\n ? Decoration.widget({\n widget: new DiagnosticWidget(d),\n diagnostic: d\n }).range(d.from)\n : Decoration.mark({\n attributes: { class: \"cm-lintRange cm-lintRange-\" + d.severity + (d.markClass ? \" \" + d.markClass : \"\") },\n diagnostic: d,\n inclusive: true\n }).range(d.from, d.to);\n }), true);\n return new LintState(ranges, panel, findDiagnostic(ranges));\n }\n}\nfunction findDiagnostic(diagnostics, diagnostic = null, after = 0) {\n let found = null;\n diagnostics.between(after, 1e9, (from, to, { spec }) => {\n if (diagnostic && spec.diagnostic != diagnostic)\n return;\n found = new SelectedDiagnostic(from, to, spec.diagnostic);\n return false;\n });\n return found;\n}\nfunction hideTooltip(tr, tooltip) {\n let line = tr.startState.doc.lineAt(tooltip.pos);\n return !!(tr.effects.some(e => e.is(setDiagnosticsEffect)) || tr.changes.touchesRange(line.from, line.to));\n}\nfunction maybeEnableLint(state, effects) {\n return state.field(lintState, false) ? effects : effects.concat(StateEffect.appendConfig.of(lintExtensions));\n}\n/**\nReturns a transaction spec which updates the current set of\ndiagnostics, and enables the lint extension if if wasn't already\nactive.\n*/\nfunction setDiagnostics(state, diagnostics) {\n return {\n effects: maybeEnableLint(state, [setDiagnosticsEffect.of(diagnostics)])\n };\n}\n/**\nThe state effect that updates the set of active diagnostics. Can\nbe useful when writing an extension that needs to track these.\n*/\nconst setDiagnosticsEffect = /*@__PURE__*/StateEffect.define();\nconst togglePanel = /*@__PURE__*/StateEffect.define();\nconst movePanelSelection = /*@__PURE__*/StateEffect.define();\nconst lintState = /*@__PURE__*/StateField.define({\n create() {\n return new LintState(Decoration.none, null, null);\n },\n update(value, tr) {\n if (tr.docChanged) {\n let mapped = value.diagnostics.map(tr.changes), selected = null;\n if (value.selected) {\n let selPos = tr.changes.mapPos(value.selected.from, 1);\n selected = findDiagnostic(mapped, value.selected.diagnostic, selPos) || findDiagnostic(mapped, null, selPos);\n }\n value = new LintState(mapped, value.panel, selected);\n }\n for (let effect of tr.effects) {\n if (effect.is(setDiagnosticsEffect)) {\n value = LintState.init(effect.value, value.panel, tr.state);\n }\n else if (effect.is(togglePanel)) {\n value = new LintState(value.diagnostics, effect.value ? LintPanel.open : null, value.selected);\n }\n else if (effect.is(movePanelSelection)) {\n value = new LintState(value.diagnostics, value.panel, effect.value);\n }\n }\n return value;\n },\n provide: f => [showPanel.from(f, val => val.panel),\n EditorView.decorations.from(f, s => s.diagnostics)]\n});\n/**\nReturns the number of active lint diagnostics in the given state.\n*/\nfunction diagnosticCount(state) {\n let lint = state.field(lintState, false);\n return lint ? lint.diagnostics.size : 0;\n}\nconst activeMark = /*@__PURE__*/Decoration.mark({ class: \"cm-lintRange cm-lintRange-active\", inclusive: true });\nfunction lintTooltip(view, pos, side) {\n let { diagnostics } = view.state.field(lintState);\n let found = [], stackStart = 2e8, stackEnd = 0;\n diagnostics.between(pos - (side < 0 ? 1 : 0), pos + (side > 0 ? 1 : 0), (from, to, { spec }) => {\n if (pos >= from && pos <= to &&\n (from == to || ((pos > from || side > 0) && (pos < to || side < 0)))) {\n found.push(spec.diagnostic);\n stackStart = Math.min(from, stackStart);\n stackEnd = Math.max(to, stackEnd);\n }\n });\n let diagnosticFilter = view.state.facet(lintConfig).tooltipFilter;\n if (diagnosticFilter)\n found = diagnosticFilter(found, view.state);\n if (!found.length)\n return null;\n return {\n pos: stackStart,\n end: stackEnd,\n above: view.state.doc.lineAt(stackStart).to < stackEnd,\n create() {\n return { dom: diagnosticsTooltip(view, found) };\n }\n };\n}\nfunction diagnosticsTooltip(view, diagnostics) {\n return elt(\"ul\", { class: \"cm-tooltip-lint\" }, diagnostics.map(d => renderDiagnostic(view, d, false)));\n}\n/**\nCommand to open and focus the lint panel.\n*/\nconst openLintPanel = (view) => {\n let field = view.state.field(lintState, false);\n if (!field || !field.panel)\n view.dispatch({ effects: maybeEnableLint(view.state, [togglePanel.of(true)]) });\n let panel = getPanel(view, LintPanel.open);\n if (panel)\n panel.dom.querySelector(\".cm-panel-lint ul\").focus();\n return true;\n};\n/**\nCommand to close the lint panel, when open.\n*/\nconst closeLintPanel = (view) => {\n let field = view.state.field(lintState, false);\n if (!field || !field.panel)\n return false;\n view.dispatch({ effects: togglePanel.of(false) });\n return true;\n};\n/**\nMove the selection to the next diagnostic.\n*/\nconst nextDiagnostic = (view) => {\n let field = view.state.field(lintState, false);\n if (!field)\n return false;\n let sel = view.state.selection.main, next = field.diagnostics.iter(sel.to + 1);\n if (!next.value) {\n next = field.diagnostics.iter(0);\n if (!next.value || next.from == sel.from && next.to == sel.to)\n return false;\n }\n view.dispatch({ selection: { anchor: next.from, head: next.to }, scrollIntoView: true });\n return true;\n};\n/**\nMove the selection to the previous diagnostic.\n*/\nconst previousDiagnostic = (view) => {\n let { state } = view, field = state.field(lintState, false);\n if (!field)\n return false;\n let sel = state.selection.main;\n let prevFrom, prevTo, lastFrom, lastTo;\n field.diagnostics.between(0, state.doc.length, (from, to) => {\n if (to < sel.to && (prevFrom == null || prevFrom < from)) {\n prevFrom = from;\n prevTo = to;\n }\n if (lastFrom == null || from > lastFrom) {\n lastFrom = from;\n lastTo = to;\n }\n });\n if (lastFrom == null || prevFrom == null && lastFrom == sel.from)\n return false;\n view.dispatch({ selection: { anchor: prevFrom !== null && prevFrom !== void 0 ? prevFrom : lastFrom, head: prevTo !== null && prevTo !== void 0 ? prevTo : lastTo }, scrollIntoView: true });\n return true;\n};\n/**\nA set of default key bindings for the lint functionality.\n\n- Ctrl-Shift-m (Cmd-Shift-m on macOS): [`openLintPanel`](https://codemirror.net/6/docs/ref/#lint.openLintPanel)\n- F8: [`nextDiagnostic`](https://codemirror.net/6/docs/ref/#lint.nextDiagnostic)\n*/\nconst lintKeymap = [\n { key: \"Mod-Shift-m\", run: openLintPanel, preventDefault: true },\n { key: \"F8\", run: nextDiagnostic }\n];\nconst lintPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.timeout = -1;\n this.set = true;\n let { delay } = view.state.facet(lintConfig);\n this.lintTime = Date.now() + delay;\n this.run = this.run.bind(this);\n this.timeout = setTimeout(this.run, delay);\n }\n run() {\n let now = Date.now();\n if (now < this.lintTime - 10) {\n this.timeout = setTimeout(this.run, this.lintTime - now);\n }\n else {\n this.set = false;\n let { state } = this.view, { sources } = state.facet(lintConfig);\n if (sources.length)\n Promise.all(sources.map(source => Promise.resolve(source(this.view)))).then(annotations => {\n let all = annotations.reduce((a, b) => a.concat(b));\n if (this.view.state.doc == state.doc)\n this.view.dispatch(setDiagnostics(this.view.state, all));\n }, error => { logException(this.view.state, error); });\n }\n }\n update(update) {\n let config = update.state.facet(lintConfig);\n if (update.docChanged || config != update.startState.facet(lintConfig) ||\n config.needsRefresh && config.needsRefresh(update)) {\n this.lintTime = Date.now() + config.delay;\n if (!this.set) {\n this.set = true;\n this.timeout = setTimeout(this.run, config.delay);\n }\n }\n }\n force() {\n if (this.set) {\n this.lintTime = Date.now();\n this.run();\n }\n }\n destroy() {\n clearTimeout(this.timeout);\n }\n});\nconst lintConfig = /*@__PURE__*/Facet.define({\n combine(input) {\n return Object.assign({ sources: input.map(i => i.source).filter(x => x != null) }, combineConfig(input.map(i => i.config), {\n delay: 750,\n markerFilter: null,\n tooltipFilter: null,\n needsRefresh: null\n }, {\n needsRefresh: (a, b) => !a ? b : !b ? a : u => a(u) || b(u)\n }));\n }\n});\n/**\nGiven a diagnostic source, this function returns an extension that\nenables linting with that source. It will be called whenever the\neditor is idle (after its content changed). If `null` is given as\nsource, this only configures the lint extension.\n*/\nfunction linter(source, config = {}) {\n return [\n lintConfig.of({ source, config }),\n lintPlugin,\n lintExtensions\n ];\n}\n/**\nForces any linters [configured](https://codemirror.net/6/docs/ref/#lint.linter) to run when the\neditor is idle to run right away.\n*/\nfunction forceLinting(view) {\n let plugin = view.plugin(lintPlugin);\n if (plugin)\n plugin.force();\n}\nfunction assignKeys(actions) {\n let assigned = [];\n if (actions)\n actions: for (let { name } of actions) {\n for (let i = 0; i < name.length; i++) {\n let ch = name[i];\n if (/[a-zA-Z]/.test(ch) && !assigned.some(c => c.toLowerCase() == ch.toLowerCase())) {\n assigned.push(ch);\n continue actions;\n }\n }\n assigned.push(\"\");\n }\n return assigned;\n}\nfunction renderDiagnostic(view, diagnostic, inPanel) {\n var _a;\n let keys = inPanel ? assignKeys(diagnostic.actions) : [];\n return elt(\"li\", { class: \"cm-diagnostic cm-diagnostic-\" + diagnostic.severity }, elt(\"span\", { class: \"cm-diagnosticText\" }, diagnostic.renderMessage ? diagnostic.renderMessage() : diagnostic.message), (_a = diagnostic.actions) === null || _a === void 0 ? void 0 : _a.map((action, i) => {\n let fired = false, click = (e) => {\n e.preventDefault();\n if (fired)\n return;\n fired = true;\n let found = findDiagnostic(view.state.field(lintState).diagnostics, diagnostic);\n if (found)\n action.apply(view, found.from, found.to);\n };\n let { name } = action, keyIndex = keys[i] ? name.indexOf(keys[i]) : -1;\n let nameElt = keyIndex < 0 ? name : [name.slice(0, keyIndex),\n elt(\"u\", name.slice(keyIndex, keyIndex + 1)),\n name.slice(keyIndex + 1)];\n return elt(\"button\", {\n type: \"button\",\n class: \"cm-diagnosticAction\",\n onclick: click,\n onmousedown: click,\n \"aria-label\": ` Action: ${name}${keyIndex < 0 ? \"\" : ` (access key \"${keys[i]})\"`}.`\n }, nameElt);\n }), diagnostic.source && elt(\"div\", { class: \"cm-diagnosticSource\" }, diagnostic.source));\n}\nclass DiagnosticWidget extends WidgetType {\n constructor(diagnostic) {\n super();\n this.diagnostic = diagnostic;\n }\n eq(other) { return other.diagnostic == this.diagnostic; }\n toDOM() {\n return elt(\"span\", { class: \"cm-lintPoint cm-lintPoint-\" + this.diagnostic.severity });\n }\n}\nclass PanelItem {\n constructor(view, diagnostic) {\n this.diagnostic = diagnostic;\n this.id = \"item_\" + Math.floor(Math.random() * 0xffffffff).toString(16);\n this.dom = renderDiagnostic(view, diagnostic, true);\n this.dom.id = this.id;\n this.dom.setAttribute(\"role\", \"option\");\n }\n}\nclass LintPanel {\n constructor(view) {\n this.view = view;\n this.items = [];\n let onkeydown = (event) => {\n if (event.keyCode == 27) { // Escape\n closeLintPanel(this.view);\n this.view.focus();\n }\n else if (event.keyCode == 38 || event.keyCode == 33) { // ArrowUp, PageUp\n this.moveSelection((this.selectedIndex - 1 + this.items.length) % this.items.length);\n }\n else if (event.keyCode == 40 || event.keyCode == 34) { // ArrowDown, PageDown\n this.moveSelection((this.selectedIndex + 1) % this.items.length);\n }\n else if (event.keyCode == 36) { // Home\n this.moveSelection(0);\n }\n else if (event.keyCode == 35) { // End\n this.moveSelection(this.items.length - 1);\n }\n else if (event.keyCode == 13) { // Enter\n this.view.focus();\n }\n else if (event.keyCode >= 65 && event.keyCode <= 90 && this.selectedIndex >= 0) { // A-Z\n let { diagnostic } = this.items[this.selectedIndex], keys = assignKeys(diagnostic.actions);\n for (let i = 0; i < keys.length; i++)\n if (keys[i].toUpperCase().charCodeAt(0) == event.keyCode) {\n let found = findDiagnostic(this.view.state.field(lintState).diagnostics, diagnostic);\n if (found)\n diagnostic.actions[i].apply(view, found.from, found.to);\n }\n }\n else {\n return;\n }\n event.preventDefault();\n };\n let onclick = (event) => {\n for (let i = 0; i < this.items.length; i++) {\n if (this.items[i].dom.contains(event.target))\n this.moveSelection(i);\n }\n };\n this.list = elt(\"ul\", {\n tabIndex: 0,\n role: \"listbox\",\n \"aria-label\": this.view.state.phrase(\"Diagnostics\"),\n onkeydown,\n onclick\n });\n this.dom = elt(\"div\", { class: \"cm-panel-lint\" }, this.list, elt(\"button\", {\n type: \"button\",\n name: \"close\",\n \"aria-label\": this.view.state.phrase(\"close\"),\n onclick: () => closeLintPanel(this.view)\n }, \"×\"));\n this.update();\n }\n get selectedIndex() {\n let selected = this.view.state.field(lintState).selected;\n if (!selected)\n return -1;\n for (let i = 0; i < this.items.length; i++)\n if (this.items[i].diagnostic == selected.diagnostic)\n return i;\n return -1;\n }\n update() {\n let { diagnostics, selected } = this.view.state.field(lintState);\n let i = 0, needsSync = false, newSelectedItem = null;\n diagnostics.between(0, this.view.state.doc.length, (_start, _end, { spec }) => {\n let found = -1, item;\n for (let j = i; j < this.items.length; j++)\n if (this.items[j].diagnostic == spec.diagnostic) {\n found = j;\n break;\n }\n if (found < 0) {\n item = new PanelItem(this.view, spec.diagnostic);\n this.items.splice(i, 0, item);\n needsSync = true;\n }\n else {\n item = this.items[found];\n if (found > i) {\n this.items.splice(i, found - i);\n needsSync = true;\n }\n }\n if (selected && item.diagnostic == selected.diagnostic) {\n if (!item.dom.hasAttribute(\"aria-selected\")) {\n item.dom.setAttribute(\"aria-selected\", \"true\");\n newSelectedItem = item;\n }\n }\n else if (item.dom.hasAttribute(\"aria-selected\")) {\n item.dom.removeAttribute(\"aria-selected\");\n }\n i++;\n });\n while (i < this.items.length && !(this.items.length == 1 && this.items[0].diagnostic.from < 0)) {\n needsSync = true;\n this.items.pop();\n }\n if (this.items.length == 0) {\n this.items.push(new PanelItem(this.view, {\n from: -1, to: -1,\n severity: \"info\",\n message: this.view.state.phrase(\"No diagnostics\")\n }));\n needsSync = true;\n }\n if (newSelectedItem) {\n this.list.setAttribute(\"aria-activedescendant\", newSelectedItem.id);\n this.view.requestMeasure({\n key: this,\n read: () => ({ sel: newSelectedItem.dom.getBoundingClientRect(), panel: this.list.getBoundingClientRect() }),\n write: ({ sel, panel }) => {\n let scaleY = panel.height / this.list.offsetHeight;\n if (sel.top < panel.top)\n this.list.scrollTop -= (panel.top - sel.top) / scaleY;\n else if (sel.bottom > panel.bottom)\n this.list.scrollTop += (sel.bottom - panel.bottom) / scaleY;\n }\n });\n }\n else if (this.selectedIndex < 0) {\n this.list.removeAttribute(\"aria-activedescendant\");\n }\n if (needsSync)\n this.sync();\n }\n sync() {\n let domPos = this.list.firstChild;\n function rm() {\n let prev = domPos;\n domPos = prev.nextSibling;\n prev.remove();\n }\n for (let item of this.items) {\n if (item.dom.parentNode == this.list) {\n while (domPos != item.dom)\n rm();\n domPos = item.dom.nextSibling;\n }\n else {\n this.list.insertBefore(item.dom, domPos);\n }\n }\n while (domPos)\n rm();\n }\n moveSelection(selectedIndex) {\n if (this.selectedIndex < 0)\n return;\n let field = this.view.state.field(lintState);\n let selection = findDiagnostic(field.diagnostics, this.items[selectedIndex].diagnostic);\n if (!selection)\n return;\n this.view.dispatch({\n selection: { anchor: selection.from, head: selection.to },\n scrollIntoView: true,\n effects: movePanelSelection.of(selection)\n });\n }\n static open(view) { return new LintPanel(view); }\n}\nfunction svg(content, attrs = `viewBox=\"0 0 40 40\"`) {\n return `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" ${attrs}>${encodeURIComponent(content)}</svg>')`;\n}\nfunction underline(color) {\n return svg(`<path d=\"m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0\" stroke=\"${color}\" fill=\"none\" stroke-width=\".7\"/>`, `width=\"6\" height=\"3\"`);\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-diagnostic\": {\n padding: \"3px 6px 3px 8px\",\n marginLeft: \"-1px\",\n display: \"block\",\n whiteSpace: \"pre-wrap\"\n },\n \".cm-diagnostic-error\": { borderLeft: \"5px solid #d11\" },\n \".cm-diagnostic-warning\": { borderLeft: \"5px solid orange\" },\n \".cm-diagnostic-info\": { borderLeft: \"5px solid #999\" },\n \".cm-diagnostic-hint\": { borderLeft: \"5px solid #66d\" },\n \".cm-diagnosticAction\": {\n font: \"inherit\",\n border: \"none\",\n padding: \"2px 4px\",\n backgroundColor: \"#444\",\n color: \"white\",\n borderRadius: \"3px\",\n marginLeft: \"8px\",\n cursor: \"pointer\"\n },\n \".cm-diagnosticSource\": {\n fontSize: \"70%\",\n opacity: .7\n },\n \".cm-lintRange\": {\n backgroundPosition: \"left bottom\",\n backgroundRepeat: \"repeat-x\",\n paddingBottom: \"0.7px\",\n },\n \".cm-lintRange-error\": { backgroundImage: /*@__PURE__*/underline(\"#d11\") },\n \".cm-lintRange-warning\": { backgroundImage: /*@__PURE__*/underline(\"orange\") },\n \".cm-lintRange-info\": { backgroundImage: /*@__PURE__*/underline(\"#999\") },\n \".cm-lintRange-hint\": { backgroundImage: /*@__PURE__*/underline(\"#66d\") },\n \".cm-lintRange-active\": { backgroundColor: \"#ffdd9980\" },\n \".cm-tooltip-lint\": {\n padding: 0,\n margin: 0\n },\n \".cm-lintPoint\": {\n position: \"relative\",\n \"&:after\": {\n content: '\"\"',\n position: \"absolute\",\n bottom: 0,\n left: \"-2px\",\n borderLeft: \"3px solid transparent\",\n borderRight: \"3px solid transparent\",\n borderBottom: \"4px solid #d11\"\n }\n },\n \".cm-lintPoint-warning\": {\n \"&:after\": { borderBottomColor: \"orange\" }\n },\n \".cm-lintPoint-info\": {\n \"&:after\": { borderBottomColor: \"#999\" }\n },\n \".cm-lintPoint-hint\": {\n \"&:after\": { borderBottomColor: \"#66d\" }\n },\n \".cm-panel.cm-panel-lint\": {\n position: \"relative\",\n \"& ul\": {\n maxHeight: \"100px\",\n overflowY: \"auto\",\n \"& [aria-selected]\": {\n backgroundColor: \"#ddd\",\n \"& u\": { textDecoration: \"underline\" }\n },\n \"&:focus [aria-selected]\": {\n background_fallback: \"#bdf\",\n backgroundColor: \"Highlight\",\n color_fallback: \"white\",\n color: \"HighlightText\"\n },\n \"& u\": { textDecoration: \"none\" },\n padding: 0,\n margin: 0\n },\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\",\n right: \"2px\",\n background: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: 0,\n margin: 0\n }\n }\n});\nfunction severityWeight(sev) {\n return sev == \"error\" ? 4 : sev == \"warning\" ? 3 : sev == \"info\" ? 2 : 1;\n}\nclass LintGutterMarker extends GutterMarker {\n constructor(diagnostics) {\n super();\n this.diagnostics = diagnostics;\n this.severity = diagnostics.reduce((max, d) => severityWeight(max) < severityWeight(d.severity) ? d.severity : max, \"hint\");\n }\n toDOM(view) {\n let elt = document.createElement(\"div\");\n elt.className = \"cm-lint-marker cm-lint-marker-\" + this.severity;\n let diagnostics = this.diagnostics;\n let diagnosticsFilter = view.state.facet(lintGutterConfig).tooltipFilter;\n if (diagnosticsFilter)\n diagnostics = diagnosticsFilter(diagnostics, view.state);\n if (diagnostics.length)\n elt.onmouseover = () => gutterMarkerMouseOver(view, elt, diagnostics);\n return elt;\n }\n}\nfunction trackHoverOn(view, marker) {\n let mousemove = (event) => {\n let rect = marker.getBoundingClientRect();\n if (event.clientX > rect.left - 10 /* Hover.Margin */ && event.clientX < rect.right + 10 /* Hover.Margin */ &&\n event.clientY > rect.top - 10 /* Hover.Margin */ && event.clientY < rect.bottom + 10 /* Hover.Margin */)\n return;\n for (let target = event.target; target; target = target.parentNode) {\n if (target.nodeType == 1 && target.classList.contains(\"cm-tooltip-lint\"))\n return;\n }\n window.removeEventListener(\"mousemove\", mousemove);\n if (view.state.field(lintGutterTooltip))\n view.dispatch({ effects: setLintGutterTooltip.of(null) });\n };\n window.addEventListener(\"mousemove\", mousemove);\n}\nfunction gutterMarkerMouseOver(view, marker, diagnostics) {\n function hovered() {\n let line = view.elementAtHeight(marker.getBoundingClientRect().top + 5 - view.documentTop);\n const linePos = view.coordsAtPos(line.from);\n if (linePos) {\n view.dispatch({ effects: setLintGutterTooltip.of({\n pos: line.from,\n above: false,\n create() {\n return {\n dom: diagnosticsTooltip(view, diagnostics),\n getCoords: () => marker.getBoundingClientRect()\n };\n }\n }) });\n }\n marker.onmouseout = marker.onmousemove = null;\n trackHoverOn(view, marker);\n }\n let { hoverTime } = view.state.facet(lintGutterConfig);\n let hoverTimeout = setTimeout(hovered, hoverTime);\n marker.onmouseout = () => {\n clearTimeout(hoverTimeout);\n marker.onmouseout = marker.onmousemove = null;\n };\n marker.onmousemove = () => {\n clearTimeout(hoverTimeout);\n hoverTimeout = setTimeout(hovered, hoverTime);\n };\n}\nfunction markersForDiagnostics(doc, diagnostics) {\n let byLine = Object.create(null);\n for (let diagnostic of diagnostics) {\n let line = doc.lineAt(diagnostic.from);\n (byLine[line.from] || (byLine[line.from] = [])).push(diagnostic);\n }\n let markers = [];\n for (let line in byLine) {\n markers.push(new LintGutterMarker(byLine[line]).range(+line));\n }\n return RangeSet.of(markers, true);\n}\nconst lintGutterExtension = /*@__PURE__*/gutter({\n class: \"cm-gutter-lint\",\n markers: view => view.state.field(lintGutterMarkers),\n});\nconst lintGutterMarkers = /*@__PURE__*/StateField.define({\n create() {\n return RangeSet.empty;\n },\n update(markers, tr) {\n markers = markers.map(tr.changes);\n let diagnosticFilter = tr.state.facet(lintGutterConfig).markerFilter;\n for (let effect of tr.effects) {\n if (effect.is(setDiagnosticsEffect)) {\n let diagnostics = effect.value;\n if (diagnosticFilter)\n diagnostics = diagnosticFilter(diagnostics || [], tr.state);\n markers = markersForDiagnostics(tr.state.doc, diagnostics.slice(0));\n }\n }\n return markers;\n }\n});\nconst setLintGutterTooltip = /*@__PURE__*/StateEffect.define();\nconst lintGutterTooltip = /*@__PURE__*/StateField.define({\n create() { return null; },\n update(tooltip, tr) {\n if (tooltip && tr.docChanged)\n tooltip = hideTooltip(tr, tooltip) ? null : Object.assign(Object.assign({}, tooltip), { pos: tr.changes.mapPos(tooltip.pos) });\n return tr.effects.reduce((t, e) => e.is(setLintGutterTooltip) ? e.value : t, tooltip);\n },\n provide: field => showTooltip.from(field)\n});\nconst lintGutterTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-gutter-lint\": {\n width: \"1.4em\",\n \"& .cm-gutterElement\": {\n padding: \".2em\"\n }\n },\n \".cm-lint-marker\": {\n width: \"1em\",\n height: \"1em\"\n },\n \".cm-lint-marker-info\": {\n content: /*@__PURE__*/svg(`<path fill=\"#aaf\" stroke=\"#77e\" stroke-width=\"6\" stroke-linejoin=\"round\" d=\"M5 5L35 5L35 35L5 35Z\"/>`)\n },\n \".cm-lint-marker-warning\": {\n content: /*@__PURE__*/svg(`<path fill=\"#fe8\" stroke=\"#fd7\" stroke-width=\"6\" stroke-linejoin=\"round\" d=\"M20 6L37 35L3 35Z\"/>`),\n },\n \".cm-lint-marker-error\": {\n content: /*@__PURE__*/svg(`<circle cx=\"20\" cy=\"20\" r=\"15\" fill=\"#f87\" stroke=\"#f43\" stroke-width=\"6\"/>`)\n },\n});\nconst lintExtensions = [\n lintState,\n /*@__PURE__*/EditorView.decorations.compute([lintState], state => {\n let { selected, panel } = state.field(lintState);\n return !selected || !panel || selected.from == selected.to ? Decoration.none : Decoration.set([\n activeMark.range(selected.from, selected.to)\n ]);\n }),\n /*@__PURE__*/hoverTooltip(lintTooltip, { hideOn: hideTooltip }),\n baseTheme\n];\nconst lintGutterConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n hoverTime: 300 /* Hover.Time */,\n markerFilter: null,\n tooltipFilter: null\n });\n }\n});\n/**\nReturns an extension that installs a gutter showing markers for\neach line that has diagnostics, which can be hovered over to see\nthe diagnostics.\n*/\nfunction lintGutter(config = {}) {\n return [lintGutterConfig.of(config), lintGutterMarkers, lintGutterExtension, lintGutterTheme, lintGutterTooltip];\n}\n/**\nIterate over the marked diagnostics for the given editor state,\ncalling `f` for each of them. Note that, if the document changed\nsince the diagnostics were created, the `Diagnostic` object will\nhold the original outdated position, whereas the `to` and `from`\narguments hold the diagnostic's current position.\n*/\nfunction forEachDiagnostic(state, f) {\n let lState = state.field(lintState, false);\n if (lState && lState.diagnostics.size)\n for (let iter = RangeSet.iter([lState.diagnostics]); iter.value; iter.next())\n f(iter.value.spec.diagnostic, iter.from, iter.to);\n}\n\nexport { closeLintPanel, diagnosticCount, forEachDiagnostic, forceLinting, lintGutter, lintKeymap, linter, nextDiagnostic, openLintPanel, previousDiagnostic, setDiagnostics, setDiagnosticsEffect };\n"],"names":["Decoration","StateEffect","StateField","showPanel","EditorView","elt","getPanel","Facet","combineConfig","WidgetType","hoverTooltip"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('../../../../../@codemirror_view@6.
|
|
4
|
-
var index$1 = require('../../../../../@codemirror_state@6.
|
|
3
|
+
var index = require('../../../../../@codemirror_view@6.26.1/node_modules/@codemirror/view/dist/index.js');
|
|
4
|
+
var index$1 = require('../../../../../@codemirror_state@6.4.1/node_modules/@codemirror/state/dist/index.js');
|
|
5
5
|
var index$2 = require('../../../../../crelt@1.0.6/node_modules/crelt/index.js');
|
|
6
6
|
|
|
7
7
|
const basicNormalize = typeof String.prototype.normalize == "function"
|
|
@@ -83,7 +83,7 @@ class SearchCursor {
|
|
|
83
83
|
let norm = this.normalize(str);
|
|
84
84
|
for (let i = 0, pos = start;; i++) {
|
|
85
85
|
let code = norm.charCodeAt(i);
|
|
86
|
-
let match = this.match(code, pos);
|
|
86
|
+
let match = this.match(code, pos, this.bufferPos + this.bufferStart);
|
|
87
87
|
if (i == norm.length - 1) {
|
|
88
88
|
if (match) {
|
|
89
89
|
this.value = match;
|
|
@@ -96,13 +96,13 @@ class SearchCursor {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
match(code, pos) {
|
|
99
|
+
match(code, pos, end) {
|
|
100
100
|
let match = null;
|
|
101
101
|
for (let i = 0; i < this.matches.length; i += 2) {
|
|
102
102
|
let index = this.matches[i], keep = false;
|
|
103
103
|
if (this.query.charCodeAt(index) == code) {
|
|
104
104
|
if (index == this.query.length - 1) {
|
|
105
|
-
match = { from: this.matches[i + 1], to:
|
|
105
|
+
match = { from: this.matches[i + 1], to: end };
|
|
106
106
|
}
|
|
107
107
|
else {
|
|
108
108
|
this.matches[i]++;
|
|
@@ -116,7 +116,7 @@ class SearchCursor {
|
|
|
116
116
|
}
|
|
117
117
|
if (this.query.charCodeAt(0) == code) {
|
|
118
118
|
if (this.query.length == 1)
|
|
119
|
-
match = { from: pos, to:
|
|
119
|
+
match = { from: pos, to: end };
|
|
120
120
|
else
|
|
121
121
|
this.matches.push(1, pos);
|
|
122
122
|
}
|
|
@@ -464,12 +464,12 @@ const matchHighlighter = /*@__PURE__*/index.ViewPlugin.fromClass(class {
|
|
|
464
464
|
if (conf.wholeWords) {
|
|
465
465
|
query = state.sliceDoc(range.from, range.to); // TODO: allow and include leading/trailing space?
|
|
466
466
|
check = state.charCategorizer(range.head);
|
|
467
|
-
if (!(insideWordBoundaries(check, state, range.from, range.to)
|
|
468
|
-
|
|
467
|
+
if (!(insideWordBoundaries(check, state, range.from, range.to) &&
|
|
468
|
+
insideWord(check, state, range.from, range.to)))
|
|
469
469
|
return index.Decoration.none;
|
|
470
470
|
}
|
|
471
471
|
else {
|
|
472
|
-
query = state.sliceDoc(range.from, range.to)
|
|
472
|
+
query = state.sliceDoc(range.from, range.to);
|
|
473
473
|
if (!query)
|
|
474
474
|
return index.Decoration.none;
|
|
475
475
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../../../../../node_modules/.pnpm/@codemirror+search@6.5.6/node_modules/@codemirror/search/dist/index.js"],"sourcesContent":["import { showPanel, EditorView, getPanel, Decoration, ViewPlugin, runScopeHandlers } from '@codemirror/view';\nimport { codePointAt, fromCodePoint, codePointSize, StateEffect, StateField, EditorSelection, Facet, combineConfig, CharCategory, 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 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\nfunction createLineDialog(view) {\n let line = String(view.state.doc.lineAt(view.state.selection.main.head).number);\n let input = elt(\"input\", { class: \"cm-textfield\", name: \"line\", value: line });\n let dom = elt(\"form\", {\n class: \"cm-gotoLine\",\n onkeydown: (event) => {\n if (event.keyCode == 27) { // Escape\n event.preventDefault();\n view.dispatch({ effects: dialogEffect.of(false) });\n view.focus();\n }\n else if (event.keyCode == 13) { // Enter\n event.preventDefault();\n go();\n }\n },\n onsubmit: (event) => {\n event.preventDefault();\n go();\n }\n }, elt(\"label\", view.state.phrase(\"Go to line\"), \": \", input), \" \", elt(\"button\", { class: \"cm-button\", type: \"submit\" }, view.state.phrase(\"go\")));\n function go() {\n let match = /^([+-])?(\\d+)?(:\\d+)?(%)?$/.exec(input.value);\n if (!match)\n return;\n let { state } = view, 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: [dialogEffect.of(false), EditorView.scrollIntoView(selection.from, { y: 'center' })],\n selection,\n });\n view.focus();\n }\n return { dom };\n}\nconst dialogEffect = /*@__PURE__*/StateEffect.define();\nconst dialogField = /*@__PURE__*/StateField.define({\n create() { return true; },\n update(value, tr) {\n for (let e of tr.effects)\n if (e.is(dialogEffect))\n value = e.value;\n return value;\n },\n provide: f => showPanel.from(f, val => val ? createLineDialog : null)\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 panel = getPanel(view, createLineDialog);\n if (!panel) {\n let effects = [dialogEffect.of(true)];\n if (view.state.field(dialogField, false) == null)\n effects.push(StateEffect.appendConfig.of([dialogField, baseTheme$1]));\n view.dispatch({ effects });\n panel = getPanel(view, createLineDialog);\n }\n if (panel)\n panel.dom.querySelector(\"input\").select();\n return true;\n};\nconst baseTheme$1 = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panel.cm-gotoLine\": {\n padding: \"2px 6px 4px\",\n \"& label\": { fontSize: \"80%\" }\n }\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 }\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;\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 stringCursor(spec, state, from, to) {\n return new SearchCursor(state.doc, spec.unquoted, from, to, spec.caseSensitive ? undefined : x => x.toLowerCase(), spec.wholeWord ? stringWordTest(state.doc, state.charCategorizer(state.selection.main.head)) : undefined);\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 cursor = stringCursor(this.spec, state, 0, curFrom).nextOverlapping();\n return cursor.done ? 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 return this.prevMatchInRange(state, 0, curFrom) ||\n this.prevMatchInRange(state, curTo, state.doc.length);\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 regexpCursor(spec, state, from, to) {\n return new RegExpCursor(state.doc, spec.search, {\n ignoreCase: !spec.caseSensitive,\n test: spec.wholeWord ? regexpWordTest(state.charCategorizer(state.selection.main.head)) : undefined\n }, 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) => i == \"$\" ? \"$\"\n : i == \"&\" ? result.match[0]\n : i != \"0\" && +i < result.match.length ? result.match[i]\n : m);\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 next = query.nextMatch(state, from, from);\n if (!next)\n return false;\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 if (next) {\n let off = changes.length == 0 || changes[0].from >= next.to ? 0 : next.to - next.from - replacement.length;\n selection = EditorSelection.single(next.from - off, next.to - off);\n effects.push(announceMatch(view, next));\n effects.push(state.facet(searchConfigFacet).scrollToMatch(selection.main, view));\n }\n view.dispatch({\n changes, selection, 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 }, [\"×\"])\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"],"names":["codePointAt","fromCodePoint","codePointSize","elt","EditorSelection","EditorView","StateEffect","StateField","showPanel","getPanel","Facet","combineConfig","Decoration","CharCategory","ViewPlugin","EditorState","findClusterBreak","RangeSetBuilder","runScopeHandlers","Prec"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -640,17 +640,6 @@ function codePointAt(str, pos) {
|
|
|
640
640
|
return ((code0 - 0xd800) << 10) + (code1 - 0xdc00) + 0x10000;
|
|
641
641
|
}
|
|
642
642
|
/**
|
|
643
|
-
Given a Unicode codepoint, return the JavaScript string that
|
|
644
|
-
respresents it (like
|
|
645
|
-
[`String.fromCodePoint`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint)).
|
|
646
|
-
*/
|
|
647
|
-
function fromCodePoint(code) {
|
|
648
|
-
if (code <= 0xffff)
|
|
649
|
-
return String.fromCharCode(code);
|
|
650
|
-
code -= 0x10000;
|
|
651
|
-
return String.fromCharCode((code >> 10) + 0xd800, (code & 1023) + 0xdc00);
|
|
652
|
-
}
|
|
653
|
-
/**
|
|
654
643
|
The amount of positions a character takes up a JavaScript string.
|
|
655
644
|
*/
|
|
656
645
|
function codePointSize(code) { return code < 0x10000 ? 1 : 2; }
|
|
@@ -2997,35 +2986,6 @@ Extenders run _after_ filters, when both are present.
|
|
|
2997
2986
|
EditorState.transactionExtender = transactionExtender;
|
|
2998
2987
|
Compartment.reconfigure = /*@__PURE__*/StateEffect.define();
|
|
2999
2988
|
|
|
3000
|
-
/**
|
|
3001
|
-
Utility function for combining behaviors to fill in a config
|
|
3002
|
-
object from an array of provided configs. `defaults` should hold
|
|
3003
|
-
default values for all optional fields in `Config`.
|
|
3004
|
-
|
|
3005
|
-
The function will, by default, error
|
|
3006
|
-
when a field gets two values that aren't `===`-equal, but you can
|
|
3007
|
-
provide combine functions per field to do something else.
|
|
3008
|
-
*/
|
|
3009
|
-
function combineConfig(configs, defaults, // Should hold only the optional properties of Config, but I haven't managed to express that
|
|
3010
|
-
combine = {}) {
|
|
3011
|
-
let result = {};
|
|
3012
|
-
for (let config of configs)
|
|
3013
|
-
for (let key of Object.keys(config)) {
|
|
3014
|
-
let value = config[key], current = result[key];
|
|
3015
|
-
if (current === undefined)
|
|
3016
|
-
result[key] = value;
|
|
3017
|
-
else if (current === value || value === undefined) ; // No conflict
|
|
3018
|
-
else if (Object.hasOwnProperty.call(combine, key))
|
|
3019
|
-
result[key] = combine[key](current, value);
|
|
3020
|
-
else
|
|
3021
|
-
throw new Error("Config merge conflict for field " + key);
|
|
3022
|
-
}
|
|
3023
|
-
for (let key in defaults)
|
|
3024
|
-
if (result[key] === undefined)
|
|
3025
|
-
result[key] = defaults[key];
|
|
3026
|
-
return result;
|
|
3027
|
-
}
|
|
3028
|
-
|
|
3029
2989
|
/**
|
|
3030
2990
|
Each range is associated with a value, which must inherit from
|
|
3031
2991
|
this class.
|
|
@@ -3920,9 +3880,7 @@ exports.Text = Text;
|
|
|
3920
3880
|
exports.Transaction = Transaction;
|
|
3921
3881
|
exports.codePointAt = codePointAt;
|
|
3922
3882
|
exports.codePointSize = codePointSize;
|
|
3923
|
-
exports.combineConfig = combineConfig;
|
|
3924
3883
|
exports.countColumn = countColumn;
|
|
3925
3884
|
exports.findClusterBreak = findClusterBreak;
|
|
3926
3885
|
exports.findColumn = findColumn;
|
|
3927
|
-
exports.fromCodePoint = fromCodePoint;
|
|
3928
3886
|
//# sourceMappingURL=index.js.map
|