Files
NapCatQQ/.pnpm-store/v3/files/af/af7aad1d7810ba8ad66fe0e4f677119721f0262a71445e011c2cff533aa7501c7b578fa2fa4819a59e4f4b5cbeec6815d29a09e87202d3281534541cdefd4d
TanTan e311ca3275
Build NapCat Artifacts / Windows Loader Test (push) Canceled after 0s
Build NapCat Artifacts / Type Check & Test (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Framework (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Shell (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

69 lines
1.8 KiB
Plaintext

'use strict';
var json$1 = require('@lezer/json');
var language = require('@codemirror/language');
/**
Calls
[`JSON.parse`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse)
on the document and, if that throws an error, reports it as a
single diagnostic.
*/
const jsonParseLinter = () => (view) => {
try {
JSON.parse(view.state.doc.toString());
}
catch (e) {
if (!(e instanceof SyntaxError))
throw e;
const pos = getErrorPosition(e, view.state.doc);
return [{
from: pos,
message: e.message,
severity: 'error',
to: pos
}];
}
return [];
};
function getErrorPosition(error, doc) {
let m;
if (m = error.message.match(/at position (\d+)/))
return Math.min(+m[1], doc.length);
if (m = error.message.match(/at line (\d+) column (\d+)/))
return Math.min(doc.line(+m[1]).from + (+m[2]) - 1, doc.length);
return 0;
}
/**
A language provider that provides JSON parsing.
*/
const jsonLanguage = language.LRLanguage.define({
name: "json",
parser: json$1.parser.configure({
props: [
language.indentNodeProp.add({
Object: language.continuedIndent({ except: /^\s*\}/ }),
Array: language.continuedIndent({ except: /^\s*\]/ })
}),
language.foldNodeProp.add({
"Object Array": language.foldInside
})
]
}),
languageData: {
closeBrackets: { brackets: ["[", "{", '"'] },
indentOnInput: /^\s*[\}\]]$/
}
});
/**
JSON language support.
*/
function json() {
return new language.LanguageSupport(jsonLanguage);
}
exports.json = json;
exports.jsonLanguage = jsonLanguage;
exports.jsonParseLinter = jsonParseLinter;