mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-05 10:49:36 +02:00
Update npm
This commit is contained in:
parent
8341712d58
commit
1bd85100b9
5320 changed files with 58396 additions and 344722 deletions
24
node_modules/@codemirror/lint/CHANGELOG.md
generated
vendored
24
node_modules/@codemirror/lint/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,27 @@
|
|||
## 6.5.0 (2024-01-30)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Make lint mark decorations inclusive, so that they are applied even if the marked content is replaced by a widget decoration.
|
||||
|
||||
### New features
|
||||
|
||||
`linter` can now be called with null as source to only provide a configuration.
|
||||
|
||||
`markerFilter` and `tooltipFilter` function now get passed the current editor state.
|
||||
|
||||
## 6.4.2 (2023-09-14)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Make sure scrolling diagnostic into view in the panel works when the editor is scaled.
|
||||
|
||||
## 6.4.1 (2023-08-26)
|
||||
|
||||
### Bug fixes
|
||||
|
||||
Fix a crash that could occur when a view was reconfigured in a way that removed the lint extension.
|
||||
|
||||
## 6.4.0 (2023-07-03)
|
||||
|
||||
### New features
|
||||
|
|
64
node_modules/@codemirror/lint/dist/index.cjs
generated
vendored
64
node_modules/@codemirror/lint/dist/index.cjs
generated
vendored
|
@ -1,15 +1,9 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
var view = require('@codemirror/view');
|
||||
var state = require('@codemirror/state');
|
||||
var elt = require('crelt');
|
||||
|
||||
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
||||
|
||||
var elt__default = /*#__PURE__*/_interopDefaultLegacy(elt);
|
||||
|
||||
class SelectedDiagnostic {
|
||||
constructor(from, to, diagnostic) {
|
||||
this.from = from;
|
||||
|
@ -28,7 +22,7 @@ class LintState {
|
|||
let markedDiagnostics = diagnostics;
|
||||
let diagnosticFilter = state.facet(lintConfig).markerFilter;
|
||||
if (diagnosticFilter)
|
||||
markedDiagnostics = diagnosticFilter(markedDiagnostics);
|
||||
markedDiagnostics = diagnosticFilter(markedDiagnostics, state);
|
||||
let ranges = view.Decoration.set(markedDiagnostics.map((d) => {
|
||||
// For zero-length ranges or ranges covering only a line break, create a widget
|
||||
return d.from == d.to || (d.from == d.to - 1 && state.doc.lineAt(d.from).to == d.from)
|
||||
|
@ -38,7 +32,8 @@ class LintState {
|
|||
}).range(d.from)
|
||||
: view.Decoration.mark({
|
||||
attributes: { class: "cm-lintRange cm-lintRange-" + d.severity + (d.markClass ? " " + d.markClass : "") },
|
||||
diagnostic: d
|
||||
diagnostic: d,
|
||||
inclusive: true
|
||||
}).range(d.from, d.to);
|
||||
}), true);
|
||||
return new LintState(ranges, panel, findDiagnostic(ranges));
|
||||
|
@ -114,7 +109,7 @@ function diagnosticCount(state) {
|
|||
let lint = state.field(lintState, false);
|
||||
return lint ? lint.diagnostics.size : 0;
|
||||
}
|
||||
const activeMark = view.Decoration.mark({ class: "cm-lintRange cm-lintRange-active" });
|
||||
const activeMark = view.Decoration.mark({ class: "cm-lintRange cm-lintRange-active", inclusive: true });
|
||||
function lintTooltip(view, pos, side) {
|
||||
let { diagnostics } = view.state.field(lintState);
|
||||
let found = [], stackStart = 2e8, stackEnd = 0;
|
||||
|
@ -128,7 +123,7 @@ function lintTooltip(view, pos, side) {
|
|||
});
|
||||
let diagnosticFilter = view.state.facet(lintConfig).tooltipFilter;
|
||||
if (diagnosticFilter)
|
||||
found = diagnosticFilter(found);
|
||||
found = diagnosticFilter(found, view.state);
|
||||
if (!found.length)
|
||||
return null;
|
||||
return {
|
||||
|
@ -141,7 +136,7 @@ function lintTooltip(view, pos, side) {
|
|||
};
|
||||
}
|
||||
function diagnosticsTooltip(view, diagnostics) {
|
||||
return elt__default["default"]("ul", { class: "cm-tooltip-lint" }, diagnostics.map(d => renderDiagnostic(view, d, false)));
|
||||
return elt("ul", { class: "cm-tooltip-lint" }, diagnostics.map(d => renderDiagnostic(view, d, false)));
|
||||
}
|
||||
/**
|
||||
Command to open and focus the lint panel.
|
||||
|
@ -228,16 +223,17 @@ const lintPlugin = view.ViewPlugin.fromClass(class {
|
|||
run() {
|
||||
let now = Date.now();
|
||||
if (now < this.lintTime - 10) {
|
||||
setTimeout(this.run, this.lintTime - now);
|
||||
this.timeout = setTimeout(this.run, this.lintTime - now);
|
||||
}
|
||||
else {
|
||||
this.set = false;
|
||||
let { state } = this.view, { sources } = state.facet(lintConfig);
|
||||
Promise.all(sources.map(source => Promise.resolve(source(this.view)))).then(annotations => {
|
||||
let all = annotations.reduce((a, b) => a.concat(b));
|
||||
if (this.view.state.doc == state.doc)
|
||||
this.view.dispatch(setDiagnostics(this.view.state, all));
|
||||
}, error => { view.logException(this.view.state, error); });
|
||||
if (sources.length)
|
||||
Promise.all(sources.map(source => Promise.resolve(source(this.view)))).then(annotations => {
|
||||
let all = annotations.reduce((a, b) => a.concat(b));
|
||||
if (this.view.state.doc == state.doc)
|
||||
this.view.dispatch(setDiagnostics(this.view.state, all));
|
||||
}, error => { view.logException(this.view.state, error); });
|
||||
}
|
||||
}
|
||||
update(update) {
|
||||
|
@ -263,7 +259,7 @@ const lintPlugin = view.ViewPlugin.fromClass(class {
|
|||
});
|
||||
const lintConfig = state.Facet.define({
|
||||
combine(input) {
|
||||
return Object.assign({ sources: input.map(i => i.source) }, state.combineConfig(input.map(i => i.config), {
|
||||
return Object.assign({ sources: input.map(i => i.source).filter(x => x != null) }, state.combineConfig(input.map(i => i.config), {
|
||||
delay: 750,
|
||||
markerFilter: null,
|
||||
tooltipFilter: null,
|
||||
|
@ -276,7 +272,8 @@ const lintConfig = state.Facet.define({
|
|||
/**
|
||||
Given a diagnostic source, this function returns an extension that
|
||||
enables linting with that source. It will be called whenever the
|
||||
editor is idle (after its content changed).
|
||||
editor is idle (after its content changed). If `null` is given as
|
||||
source, this only configures the lint extension.
|
||||
*/
|
||||
function linter(source, config = {}) {
|
||||
return [
|
||||
|
@ -312,7 +309,7 @@ function assignKeys(actions) {
|
|||
function renderDiagnostic(view, diagnostic, inPanel) {
|
||||
var _a;
|
||||
let keys = inPanel ? assignKeys(diagnostic.actions) : [];
|
||||
return elt__default["default"]("li", { class: "cm-diagnostic cm-diagnostic-" + diagnostic.severity }, elt__default["default"]("span", { class: "cm-diagnosticText" }, diagnostic.renderMessage ? diagnostic.renderMessage() : diagnostic.message), (_a = diagnostic.actions) === null || _a === void 0 ? void 0 : _a.map((action, i) => {
|
||||
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) => {
|
||||
let fired = false, click = (e) => {
|
||||
e.preventDefault();
|
||||
if (fired)
|
||||
|
@ -324,16 +321,16 @@ function renderDiagnostic(view, diagnostic, inPanel) {
|
|||
};
|
||||
let { name } = action, keyIndex = keys[i] ? name.indexOf(keys[i]) : -1;
|
||||
let nameElt = keyIndex < 0 ? name : [name.slice(0, keyIndex),
|
||||
elt__default["default"]("u", name.slice(keyIndex, keyIndex + 1)),
|
||||
elt("u", name.slice(keyIndex, keyIndex + 1)),
|
||||
name.slice(keyIndex + 1)];
|
||||
return elt__default["default"]("button", {
|
||||
return elt("button", {
|
||||
type: "button",
|
||||
class: "cm-diagnosticAction",
|
||||
onclick: click,
|
||||
onmousedown: click,
|
||||
"aria-label": ` Action: ${name}${keyIndex < 0 ? "" : ` (access key "${keys[i]})"`}.`
|
||||
}, nameElt);
|
||||
}), diagnostic.source && elt__default["default"]("div", { class: "cm-diagnosticSource" }, diagnostic.source));
|
||||
}), diagnostic.source && elt("div", { class: "cm-diagnosticSource" }, diagnostic.source));
|
||||
}
|
||||
class DiagnosticWidget extends view.WidgetType {
|
||||
constructor(diagnostic) {
|
||||
|
@ -342,7 +339,7 @@ class DiagnosticWidget extends view.WidgetType {
|
|||
}
|
||||
eq(other) { return other.diagnostic == this.diagnostic; }
|
||||
toDOM() {
|
||||
return elt__default["default"]("span", { class: "cm-lintPoint cm-lintPoint-" + this.diagnostic.severity });
|
||||
return elt("span", { class: "cm-lintPoint cm-lintPoint-" + this.diagnostic.severity });
|
||||
}
|
||||
}
|
||||
class PanelItem {
|
||||
|
@ -398,14 +395,14 @@ class LintPanel {
|
|||
this.moveSelection(i);
|
||||
}
|
||||
};
|
||||
this.list = elt__default["default"]("ul", {
|
||||
this.list = elt("ul", {
|
||||
tabIndex: 0,
|
||||
role: "listbox",
|
||||
"aria-label": this.view.state.phrase("Diagnostics"),
|
||||
onkeydown,
|
||||
onclick
|
||||
});
|
||||
this.dom = elt__default["default"]("div", { class: "cm-panel-lint" }, this.list, elt__default["default"]("button", {
|
||||
this.dom = elt("div", { class: "cm-panel-lint" }, this.list, elt("button", {
|
||||
type: "button",
|
||||
name: "close",
|
||||
"aria-label": this.view.state.phrase("close"),
|
||||
|
@ -473,10 +470,11 @@ class LintPanel {
|
|||
key: this,
|
||||
read: () => ({ sel: newSelectedItem.dom.getBoundingClientRect(), panel: this.list.getBoundingClientRect() }),
|
||||
write: ({ sel, panel }) => {
|
||||
let scaleY = panel.height / this.list.offsetHeight;
|
||||
if (sel.top < panel.top)
|
||||
this.list.scrollTop -= panel.top - sel.top;
|
||||
this.list.scrollTop -= (panel.top - sel.top) / scaleY;
|
||||
else if (sel.bottom > panel.bottom)
|
||||
this.list.scrollTop += sel.bottom - panel.bottom;
|
||||
this.list.scrollTop += (sel.bottom - panel.bottom) / scaleY;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -633,7 +631,7 @@ class LintGutterMarker extends view.GutterMarker {
|
|||
let diagnostics = this.diagnostics;
|
||||
let diagnosticsFilter = view.state.facet(lintGutterConfig).tooltipFilter;
|
||||
if (diagnosticsFilter)
|
||||
diagnostics = diagnosticsFilter(diagnostics);
|
||||
diagnostics = diagnosticsFilter(diagnostics, view.state);
|
||||
if (diagnostics.length)
|
||||
elt.onmouseover = () => gutterMarkerMouseOver(view, elt, diagnostics);
|
||||
return elt;
|
||||
|
@ -642,8 +640,8 @@ class LintGutterMarker extends view.GutterMarker {
|
|||
function trackHoverOn(view, marker) {
|
||||
let mousemove = (event) => {
|
||||
let rect = marker.getBoundingClientRect();
|
||||
if (event.clientX > rect.left - 10 /* Margin */ && event.clientX < rect.right + 10 /* Margin */ &&
|
||||
event.clientY > rect.top - 10 /* Margin */ && event.clientY < rect.bottom + 10 /* Margin */)
|
||||
if (event.clientX > rect.left - 10 /* Hover.Margin */ && event.clientX < rect.right + 10 /* Hover.Margin */ &&
|
||||
event.clientY > rect.top - 10 /* Hover.Margin */ && event.clientY < rect.bottom + 10 /* Hover.Margin */)
|
||||
return;
|
||||
for (let target = event.target; target; target = target.parentNode) {
|
||||
if (target.nodeType == 1 && target.classList.contains("cm-tooltip-lint"))
|
||||
|
@ -712,7 +710,7 @@ const lintGutterMarkers = state.StateField.define({
|
|||
if (effect.is(setDiagnosticsEffect)) {
|
||||
let diagnostics = effect.value;
|
||||
if (diagnosticFilter)
|
||||
diagnostics = diagnosticFilter(diagnostics || []);
|
||||
diagnostics = diagnosticFilter(diagnostics || [], tr.state);
|
||||
markers = markersForDiagnostics(tr.state.doc, diagnostics.slice(0));
|
||||
}
|
||||
}
|
||||
|
@ -764,7 +762,7 @@ const lintExtensions = [
|
|||
const lintGutterConfig = state.Facet.define({
|
||||
combine(configs) {
|
||||
return state.combineConfig(configs, {
|
||||
hoverTime: 300 /* Time */,
|
||||
hoverTime: 300 /* Hover.Time */,
|
||||
markerFilter: null,
|
||||
tooltipFilter: null
|
||||
});
|
||||
|
|
13
node_modules/@codemirror/lint/dist/index.d.cts
generated
vendored
13
node_modules/@codemirror/lint/dist/index.d.cts
generated
vendored
|
@ -2,7 +2,7 @@ import * as _codemirror_state from '@codemirror/state';
|
|||
import { EditorState, TransactionSpec, Extension } from '@codemirror/state';
|
||||
import { EditorView, Command, KeyBinding, ViewUpdate } from '@codemirror/view';
|
||||
|
||||
declare type Severity = "hint" | "info" | "warning" | "error";
|
||||
type Severity = "hint" | "info" | "warning" | "error";
|
||||
/**
|
||||
Describes a problem or hint for a piece of code.
|
||||
*/
|
||||
|
@ -62,7 +62,7 @@ interface Action {
|
|||
*/
|
||||
apply: (view: EditorView, from: number, to: number) => void;
|
||||
}
|
||||
declare type DiagnosticFilter = (diagnostics: readonly Diagnostic[]) => Diagnostic[];
|
||||
type DiagnosticFilter = (diagnostics: readonly Diagnostic[], state: EditorState) => Diagnostic[];
|
||||
interface LintConfig {
|
||||
/**
|
||||
Time to wait (in milliseconds) after a change before running
|
||||
|
@ -143,13 +143,14 @@ declare const lintKeymap: readonly KeyBinding[];
|
|||
/**
|
||||
The type of a function that produces diagnostics.
|
||||
*/
|
||||
declare type LintSource = (view: EditorView) => readonly Diagnostic[] | Promise<readonly Diagnostic[]>;
|
||||
type LintSource = (view: EditorView) => readonly Diagnostic[] | Promise<readonly Diagnostic[]>;
|
||||
/**
|
||||
Given a diagnostic source, this function returns an extension that
|
||||
enables linting with that source. It will be called whenever the
|
||||
editor is idle (after its content changed).
|
||||
editor is idle (after its content changed). If `null` is given as
|
||||
source, this only configures the lint extension.
|
||||
*/
|
||||
declare function linter(source: LintSource, config?: LintConfig): Extension;
|
||||
declare function linter(source: LintSource | null, config?: LintConfig): Extension;
|
||||
/**
|
||||
Forces any linters [configured](https://codemirror.net/6/docs/ref/#lint.linter) to run when the
|
||||
editor is idle to run right away.
|
||||
|
@ -170,4 +171,4 @@ arguments hold the diagnostic's current position.
|
|||
*/
|
||||
declare function forEachDiagnostic(state: EditorState, f: (d: Diagnostic, from: number, to: number) => void): void;
|
||||
|
||||
export { Action, Diagnostic, LintSource, closeLintPanel, diagnosticCount, forEachDiagnostic, forceLinting, lintGutter, lintKeymap, linter, nextDiagnostic, openLintPanel, previousDiagnostic, setDiagnostics, setDiagnosticsEffect };
|
||||
export { type Action, type Diagnostic, type LintSource, closeLintPanel, diagnosticCount, forEachDiagnostic, forceLinting, lintGutter, lintKeymap, linter, nextDiagnostic, openLintPanel, previousDiagnostic, setDiagnostics, setDiagnosticsEffect };
|
||||
|
|
13
node_modules/@codemirror/lint/dist/index.d.ts
generated
vendored
13
node_modules/@codemirror/lint/dist/index.d.ts
generated
vendored
|
@ -2,7 +2,7 @@ import * as _codemirror_state from '@codemirror/state';
|
|||
import { EditorState, TransactionSpec, Extension } from '@codemirror/state';
|
||||
import { EditorView, Command, KeyBinding, ViewUpdate } from '@codemirror/view';
|
||||
|
||||
declare type Severity = "hint" | "info" | "warning" | "error";
|
||||
type Severity = "hint" | "info" | "warning" | "error";
|
||||
/**
|
||||
Describes a problem or hint for a piece of code.
|
||||
*/
|
||||
|
@ -62,7 +62,7 @@ interface Action {
|
|||
*/
|
||||
apply: (view: EditorView, from: number, to: number) => void;
|
||||
}
|
||||
declare type DiagnosticFilter = (diagnostics: readonly Diagnostic[]) => Diagnostic[];
|
||||
type DiagnosticFilter = (diagnostics: readonly Diagnostic[], state: EditorState) => Diagnostic[];
|
||||
interface LintConfig {
|
||||
/**
|
||||
Time to wait (in milliseconds) after a change before running
|
||||
|
@ -143,13 +143,14 @@ declare const lintKeymap: readonly KeyBinding[];
|
|||
/**
|
||||
The type of a function that produces diagnostics.
|
||||
*/
|
||||
declare type LintSource = (view: EditorView) => readonly Diagnostic[] | Promise<readonly Diagnostic[]>;
|
||||
type LintSource = (view: EditorView) => readonly Diagnostic[] | Promise<readonly Diagnostic[]>;
|
||||
/**
|
||||
Given a diagnostic source, this function returns an extension that
|
||||
enables linting with that source. It will be called whenever the
|
||||
editor is idle (after its content changed).
|
||||
editor is idle (after its content changed). If `null` is given as
|
||||
source, this only configures the lint extension.
|
||||
*/
|
||||
declare function linter(source: LintSource, config?: LintConfig): Extension;
|
||||
declare function linter(source: LintSource | null, config?: LintConfig): Extension;
|
||||
/**
|
||||
Forces any linters [configured](https://codemirror.net/6/docs/ref/#lint.linter) to run when the
|
||||
editor is idle to run right away.
|
||||
|
@ -170,4 +171,4 @@ arguments hold the diagnostic's current position.
|
|||
*/
|
||||
declare function forEachDiagnostic(state: EditorState, f: (d: Diagnostic, from: number, to: number) => void): void;
|
||||
|
||||
export { Action, Diagnostic, LintSource, closeLintPanel, diagnosticCount, forEachDiagnostic, forceLinting, lintGutter, lintKeymap, linter, nextDiagnostic, openLintPanel, previousDiagnostic, setDiagnostics, setDiagnosticsEffect };
|
||||
export { type Action, type Diagnostic, type LintSource, closeLintPanel, diagnosticCount, forEachDiagnostic, forceLinting, lintGutter, lintKeymap, linter, nextDiagnostic, openLintPanel, previousDiagnostic, setDiagnostics, setDiagnosticsEffect };
|
||||
|
|
42
node_modules/@codemirror/lint/dist/index.js
generated
vendored
42
node_modules/@codemirror/lint/dist/index.js
generated
vendored
|
@ -20,7 +20,7 @@ class LintState {
|
|||
let markedDiagnostics = diagnostics;
|
||||
let diagnosticFilter = state.facet(lintConfig).markerFilter;
|
||||
if (diagnosticFilter)
|
||||
markedDiagnostics = diagnosticFilter(markedDiagnostics);
|
||||
markedDiagnostics = diagnosticFilter(markedDiagnostics, state);
|
||||
let ranges = Decoration.set(markedDiagnostics.map((d) => {
|
||||
// For zero-length ranges or ranges covering only a line break, create a widget
|
||||
return d.from == d.to || (d.from == d.to - 1 && state.doc.lineAt(d.from).to == d.from)
|
||||
|
@ -30,7 +30,8 @@ class LintState {
|
|||
}).range(d.from)
|
||||
: Decoration.mark({
|
||||
attributes: { class: "cm-lintRange cm-lintRange-" + d.severity + (d.markClass ? " " + d.markClass : "") },
|
||||
diagnostic: d
|
||||
diagnostic: d,
|
||||
inclusive: true
|
||||
}).range(d.from, d.to);
|
||||
}), true);
|
||||
return new LintState(ranges, panel, findDiagnostic(ranges));
|
||||
|
@ -106,7 +107,7 @@ function diagnosticCount(state) {
|
|||
let lint = state.field(lintState, false);
|
||||
return lint ? lint.diagnostics.size : 0;
|
||||
}
|
||||
const activeMark = /*@__PURE__*/Decoration.mark({ class: "cm-lintRange cm-lintRange-active" });
|
||||
const activeMark = /*@__PURE__*/Decoration.mark({ class: "cm-lintRange cm-lintRange-active", inclusive: true });
|
||||
function lintTooltip(view, pos, side) {
|
||||
let { diagnostics } = view.state.field(lintState);
|
||||
let found = [], stackStart = 2e8, stackEnd = 0;
|
||||
|
@ -120,7 +121,7 @@ function lintTooltip(view, pos, side) {
|
|||
});
|
||||
let diagnosticFilter = view.state.facet(lintConfig).tooltipFilter;
|
||||
if (diagnosticFilter)
|
||||
found = diagnosticFilter(found);
|
||||
found = diagnosticFilter(found, view.state);
|
||||
if (!found.length)
|
||||
return null;
|
||||
return {
|
||||
|
@ -220,16 +221,17 @@ const lintPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {
|
|||
run() {
|
||||
let now = Date.now();
|
||||
if (now < this.lintTime - 10) {
|
||||
setTimeout(this.run, this.lintTime - now);
|
||||
this.timeout = setTimeout(this.run, this.lintTime - now);
|
||||
}
|
||||
else {
|
||||
this.set = false;
|
||||
let { state } = this.view, { sources } = state.facet(lintConfig);
|
||||
Promise.all(sources.map(source => Promise.resolve(source(this.view)))).then(annotations => {
|
||||
let all = annotations.reduce((a, b) => a.concat(b));
|
||||
if (this.view.state.doc == state.doc)
|
||||
this.view.dispatch(setDiagnostics(this.view.state, all));
|
||||
}, error => { logException(this.view.state, error); });
|
||||
if (sources.length)
|
||||
Promise.all(sources.map(source => Promise.resolve(source(this.view)))).then(annotations => {
|
||||
let all = annotations.reduce((a, b) => a.concat(b));
|
||||
if (this.view.state.doc == state.doc)
|
||||
this.view.dispatch(setDiagnostics(this.view.state, all));
|
||||
}, error => { logException(this.view.state, error); });
|
||||
}
|
||||
}
|
||||
update(update) {
|
||||
|
@ -255,7 +257,7 @@ const lintPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {
|
|||
});
|
||||
const lintConfig = /*@__PURE__*/Facet.define({
|
||||
combine(input) {
|
||||
return Object.assign({ sources: input.map(i => i.source) }, combineConfig(input.map(i => i.config), {
|
||||
return Object.assign({ sources: input.map(i => i.source).filter(x => x != null) }, combineConfig(input.map(i => i.config), {
|
||||
delay: 750,
|
||||
markerFilter: null,
|
||||
tooltipFilter: null,
|
||||
|
@ -268,7 +270,8 @@ const lintConfig = /*@__PURE__*/Facet.define({
|
|||
/**
|
||||
Given a diagnostic source, this function returns an extension that
|
||||
enables linting with that source. It will be called whenever the
|
||||
editor is idle (after its content changed).
|
||||
editor is idle (after its content changed). If `null` is given as
|
||||
source, this only configures the lint extension.
|
||||
*/
|
||||
function linter(source, config = {}) {
|
||||
return [
|
||||
|
@ -465,10 +468,11 @@ class LintPanel {
|
|||
key: this,
|
||||
read: () => ({ sel: newSelectedItem.dom.getBoundingClientRect(), panel: this.list.getBoundingClientRect() }),
|
||||
write: ({ sel, panel }) => {
|
||||
let scaleY = panel.height / this.list.offsetHeight;
|
||||
if (sel.top < panel.top)
|
||||
this.list.scrollTop -= panel.top - sel.top;
|
||||
this.list.scrollTop -= (panel.top - sel.top) / scaleY;
|
||||
else if (sel.bottom > panel.bottom)
|
||||
this.list.scrollTop += sel.bottom - panel.bottom;
|
||||
this.list.scrollTop += (sel.bottom - panel.bottom) / scaleY;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -625,7 +629,7 @@ class LintGutterMarker extends GutterMarker {
|
|||
let diagnostics = this.diagnostics;
|
||||
let diagnosticsFilter = view.state.facet(lintGutterConfig).tooltipFilter;
|
||||
if (diagnosticsFilter)
|
||||
diagnostics = diagnosticsFilter(diagnostics);
|
||||
diagnostics = diagnosticsFilter(diagnostics, view.state);
|
||||
if (diagnostics.length)
|
||||
elt.onmouseover = () => gutterMarkerMouseOver(view, elt, diagnostics);
|
||||
return elt;
|
||||
|
@ -634,8 +638,8 @@ class LintGutterMarker extends GutterMarker {
|
|||
function trackHoverOn(view, marker) {
|
||||
let mousemove = (event) => {
|
||||
let rect = marker.getBoundingClientRect();
|
||||
if (event.clientX > rect.left - 10 /* Margin */ && event.clientX < rect.right + 10 /* Margin */ &&
|
||||
event.clientY > rect.top - 10 /* Margin */ && event.clientY < rect.bottom + 10 /* Margin */)
|
||||
if (event.clientX > rect.left - 10 /* Hover.Margin */ && event.clientX < rect.right + 10 /* Hover.Margin */ &&
|
||||
event.clientY > rect.top - 10 /* Hover.Margin */ && event.clientY < rect.bottom + 10 /* Hover.Margin */)
|
||||
return;
|
||||
for (let target = event.target; target; target = target.parentNode) {
|
||||
if (target.nodeType == 1 && target.classList.contains("cm-tooltip-lint"))
|
||||
|
@ -704,7 +708,7 @@ const lintGutterMarkers = /*@__PURE__*/StateField.define({
|
|||
if (effect.is(setDiagnosticsEffect)) {
|
||||
let diagnostics = effect.value;
|
||||
if (diagnosticFilter)
|
||||
diagnostics = diagnosticFilter(diagnostics || []);
|
||||
diagnostics = diagnosticFilter(diagnostics || [], tr.state);
|
||||
markers = markersForDiagnostics(tr.state.doc, diagnostics.slice(0));
|
||||
}
|
||||
}
|
||||
|
@ -756,7 +760,7 @@ const lintExtensions = [
|
|||
const lintGutterConfig = /*@__PURE__*/Facet.define({
|
||||
combine(configs) {
|
||||
return combineConfig(configs, {
|
||||
hoverTime: 300 /* Time */,
|
||||
hoverTime: 300 /* Hover.Time */,
|
||||
markerFilter: null,
|
||||
tooltipFilter: null
|
||||
});
|
||||
|
|
2
node_modules/@codemirror/lint/package.json
generated
vendored
2
node_modules/@codemirror/lint/package.json
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@codemirror/lint",
|
||||
"version": "6.4.0",
|
||||
"version": "6.5.0",
|
||||
"description": "Linting support for the CodeMirror code editor",
|
||||
"scripts": {
|
||||
"test": "cm-runtests",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue