wikiparser-node 1.17.0 → 1.18.0
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/README.md +20 -0
- package/bin/config.js +3 -0
- package/bundle/{bundle.es7.js → bundle-es7.min.js} +19 -19
- package/bundle/bundle-lsp.min.js +38 -0
- package/bundle/bundle.min.js +19 -19
- package/config/.schema.json +7 -3
- package/config/default.json +86 -23
- package/config/enwiki.json +20 -13
- package/config/llwiki.json +99 -7
- package/config/minimum.json +6 -3
- package/config/moegirl.json +12 -12
- package/config/zhwiki.json +52 -21
- package/data/.schema.json +7 -0
- package/data/ext/mapframe.json +4 -0
- package/data/ext/maplink.json +4 -0
- package/data/ext/score.json +1033 -0
- package/data/ext/templatedata.json +184 -0
- package/dist/addon/table.js +16 -10
- package/dist/addon/token.js +13 -9
- package/dist/addon/transclude.js +6 -3
- package/dist/base.d.mts +4 -2
- package/dist/base.d.ts +4 -2
- package/dist/base.js +2 -0
- package/dist/base.mjs +3 -1
- package/dist/bin/config.js +112 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +33 -21
- package/dist/lib/document.d.ts +54 -0
- package/dist/lib/document.js +126 -0
- package/dist/lib/element.js +6 -3
- package/dist/lib/lsp.d.ts +7 -7
- package/dist/lib/lsp.js +314 -47
- package/dist/lib/node.js +19 -9
- package/dist/lib/text.js +4 -1
- package/dist/lib/title.js +9 -6
- package/dist/mixin/attributesParent.d.ts +8 -0
- package/dist/mixin/attributesParent.js +4 -0
- package/dist/parser/links.js +4 -1
- package/dist/parser/redirect.js +4 -1
- package/dist/src/arg.js +10 -3
- package/dist/src/attribute.d.ts +12 -1
- package/dist/src/attribute.js +69 -1
- package/dist/src/attributes.d.ts +8 -0
- package/dist/src/attributes.js +14 -1
- package/dist/src/converter.d.ts +62 -3
- package/dist/src/converter.js +162 -129
- package/dist/src/converterFlags.js +2 -2
- package/dist/src/converterRule.js +4 -1
- package/dist/src/extLink.d.ts +19 -3
- package/dist/src/extLink.js +177 -194
- package/dist/src/gallery.js +7 -3
- package/dist/src/heading.js +9 -4
- package/dist/src/html.js +4 -1
- package/dist/src/imageParameter.js +9 -3
- package/dist/src/imagemap.js +4 -1
- package/dist/src/index.js +34 -4
- package/dist/src/link/base.js +8 -2
- package/dist/src/link/file.js +11 -2
- package/dist/src/link/galleryImage.d.ts +1 -0
- package/dist/src/link/galleryImage.js +15 -1
- package/dist/src/magicLink.js +4 -1
- package/dist/src/nested.js +4 -1
- package/dist/src/nowiki/comment.js +4 -1
- package/dist/src/nowiki/index.js +4 -1
- package/dist/src/nowiki/quote.js +4 -1
- package/dist/src/onlyinclude.js +4 -1
- package/dist/src/paramTag/index.js +5 -1
- package/dist/src/paramTag/inputbox.js +4 -1
- package/dist/src/parameter.js +4 -1
- package/dist/src/pre.js +4 -1
- package/dist/src/redirect.js +3 -1
- package/dist/src/table/base.js +4 -1
- package/dist/src/table/index.js +10 -3
- package/dist/src/table/td.js +4 -1
- package/dist/src/tagPair/ext.js +17 -5
- package/dist/src/tagPair/include.js +4 -1
- package/dist/src/tagPair/index.js +4 -1
- package/dist/src/transclude.js +16 -7
- package/dist/util/debug.js +1 -13
- package/dist/util/diff.js +20 -6
- package/dist/util/lint.js +4 -1
- package/dist/util/string.js +5 -2
- package/extensions/dist/base.js +30 -18
- package/extensions/dist/lsp.js +30 -22
- package/extensions/es7/base.js +30 -18
- package/extensions/typings.d.ts +6 -2
- package/package.json +27 -16
- package/bundle/bundle.lsp.js +0 -38
- package/dist/mixin/flagsParent.d.ts +0 -69
- package/dist/mixin/flagsParent.js +0 -64
- package/dist/mixin/magicLinkParent.d.ts +0 -25
- package/dist/mixin/magicLinkParent.js +0 -43
- package/dist/util/sharable.d.ts +0 -1
package/dist/index.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
/* eslint n/exports-style: 0 */
|
|
3
6
|
const base_1 = require("./base");
|
|
4
7
|
const debug_1 = require("./util/debug");
|
|
5
8
|
const constants_1 = require("./util/constants");
|
|
6
9
|
const string_1 = require("./util/string");
|
|
7
|
-
/* NOT FOR BROWSER */
|
|
8
|
-
const chalk = require("chalk");
|
|
9
10
|
/* NOT FOR BROWSER END */
|
|
10
11
|
/* NOT FOR BROWSER ONLY */
|
|
11
|
-
const
|
|
12
|
-
const
|
|
12
|
+
const fs_1 = __importDefault(require("fs"));
|
|
13
|
+
const path_1 = __importDefault(require("path"));
|
|
13
14
|
const diff_1 = require("./util/diff");
|
|
14
15
|
/* NOT FOR BROWSER ONLY */
|
|
15
16
|
/**
|
|
@@ -17,9 +18,9 @@ const diff_1 = require("./util/diff");
|
|
|
17
18
|
* @param file 文件名
|
|
18
19
|
* @param dir 子路径
|
|
19
20
|
*/
|
|
20
|
-
const rootRequire = (file, dir) => require(
|
|
21
|
+
const rootRequire = (file, dir) => require(path_1.default.isAbsolute(file)
|
|
21
22
|
? /* istanbul ignore next */ file
|
|
22
|
-
:
|
|
23
|
+
: path_1.default.join('..', file.includes('/') ? '' : dir, file));
|
|
23
24
|
/* NOT FOR BROWSER ONLY END */
|
|
24
25
|
/* NOT FOR BROWSER */
|
|
25
26
|
/**
|
|
@@ -79,7 +80,7 @@ const Parser = {
|
|
|
79
80
|
this.config = rootRequire(this.config, 'config');
|
|
80
81
|
/* istanbul ignore if */
|
|
81
82
|
if (this.config.doubleUnderscore.length < 3 || Array.isArray(this.config.parserFunction[1])) {
|
|
82
|
-
(0, diff_1.error)(`The schema (${
|
|
83
|
+
(0, diff_1.error)(`The schema (${path_1.default.resolve(__dirname, '..', 'config', '.schema.json')}) of parser configuration is updated.`);
|
|
83
84
|
}
|
|
84
85
|
/* NOT FOR BROWSER */
|
|
85
86
|
const { config: { conversionTable, redirects } } = this;
|
|
@@ -168,15 +169,15 @@ const Parser = {
|
|
|
168
169
|
}
|
|
169
170
|
catch (e) /* istanbul ignore next */ {
|
|
170
171
|
if (e instanceof Error) {
|
|
171
|
-
const file =
|
|
172
|
+
const file = path_1.default.join(__dirname, '..', 'errors', new Date().toISOString()), stage = token.getAttribute('stage');
|
|
172
173
|
for (const k in config) {
|
|
173
174
|
if (k.startsWith('regex') || config[k] instanceof Set) {
|
|
174
175
|
delete config[k];
|
|
175
176
|
}
|
|
176
177
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
178
|
+
fs_1.default.writeFileSync(file, stage === constants_1.MAX_STAGE ? wikitext : token.toString());
|
|
179
|
+
fs_1.default.writeFileSync(`${file}.err`, e.stack);
|
|
180
|
+
fs_1.default.writeFileSync(`${file}.json`, JSON.stringify({ stage, include, config }, null, '\t'));
|
|
180
181
|
}
|
|
181
182
|
throw e;
|
|
182
183
|
}
|
|
@@ -250,14 +251,26 @@ const Parser = {
|
|
|
250
251
|
warn(msg, ...args) {
|
|
251
252
|
/* istanbul ignore if */
|
|
252
253
|
if (this.warning) {
|
|
253
|
-
|
|
254
|
+
try {
|
|
255
|
+
const chalk = require('chalk');
|
|
256
|
+
console.warn(chalk.yellow(msg), ...args);
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
console.warn(msg, ...args);
|
|
260
|
+
}
|
|
254
261
|
}
|
|
255
262
|
},
|
|
256
263
|
/** @implements */
|
|
257
264
|
debug(msg, ...args) {
|
|
258
265
|
/* istanbul ignore if */
|
|
259
266
|
if (this.debugging) {
|
|
260
|
-
|
|
267
|
+
try {
|
|
268
|
+
const chalk = require('chalk');
|
|
269
|
+
console.debug(chalk.blue(msg), ...args);
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
console.debug(msg, ...args);
|
|
273
|
+
}
|
|
261
274
|
}
|
|
262
275
|
},
|
|
263
276
|
error: diff_1.error,
|
|
@@ -273,12 +286,12 @@ const Parser = {
|
|
|
273
286
|
/** @implements */
|
|
274
287
|
require(name) {
|
|
275
288
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
276
|
-
return Object.hasOwn(constants_1.classes, name) ? require(constants_1.classes[name])[name] : require(
|
|
289
|
+
return Object.hasOwn(constants_1.classes, name) ? require(constants_1.classes[name])[name] : require(path_1.default.join(__dirname, name));
|
|
277
290
|
},
|
|
278
291
|
/* istanbul ignore next */
|
|
279
292
|
/** @implements */
|
|
280
293
|
async clearCache() {
|
|
281
|
-
await (0, diff_1.cmd)('npm', ['--prefix',
|
|
294
|
+
await (0, diff_1.cmd)('npm', ['--prefix', path_1.default.join(__dirname, '..'), 'run', 'build:core']);
|
|
282
295
|
const entries = Object.entries(constants_1.classes);
|
|
283
296
|
for (const [, filePath] of entries) {
|
|
284
297
|
try {
|
|
@@ -306,12 +319,12 @@ const Parser = {
|
|
|
306
319
|
/* istanbul ignore next */
|
|
307
320
|
/** @implements */
|
|
308
321
|
reparse(date = '') {
|
|
309
|
-
const main =
|
|
322
|
+
const main = fs_1.default.readdirSync(path_1.default.join(__dirname, '..', 'errors'))
|
|
310
323
|
.find(name => name.startsWith(date) && name.endsWith('Z'));
|
|
311
324
|
if (!main) {
|
|
312
325
|
throw new RangeError(`找不到对应时间戳的错误记录:${date}`);
|
|
313
326
|
}
|
|
314
|
-
const file =
|
|
327
|
+
const file = path_1.default.join(__dirname, '..', 'errors', main), wikitext = fs_1.default.readFileSync(file, 'utf8');
|
|
315
328
|
const { stage, include, config } = require(`${file}.json`), { Token } = require('./src/index');
|
|
316
329
|
debug_1.Shadow.run(() => {
|
|
317
330
|
const halfParsed = stage < constants_1.MAX_STAGE, token = new Token(halfParsed ? wikitext : (0, string_1.tidy)(wikitext), config);
|
|
@@ -323,9 +336,9 @@ const Parser = {
|
|
|
323
336
|
else {
|
|
324
337
|
token.parse(undefined, include);
|
|
325
338
|
}
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
339
|
+
fs_1.default.unlinkSync(file);
|
|
340
|
+
fs_1.default.unlinkSync(`${file}.err`);
|
|
341
|
+
fs_1.default.unlinkSync(`${file}.json`);
|
|
329
342
|
});
|
|
330
343
|
},
|
|
331
344
|
};
|
|
@@ -336,7 +349,6 @@ const def = {
|
|
|
336
349
|
'parse',
|
|
337
350
|
'createLanguageService',
|
|
338
351
|
/* NOT FOR BROWSER */
|
|
339
|
-
'conversionTable',
|
|
340
352
|
'warning',
|
|
341
353
|
'debugging',
|
|
342
354
|
'isInterwiki',
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { Position } from 'vscode-languageserver-types';
|
|
2
|
+
import type { TextDocument } from 'vscode-languageserver-textdocument';
|
|
3
|
+
import type { LanguageService as JSONLanguageService, JSONDocument } from 'vscode-json-languageservice';
|
|
4
|
+
import type { LanguageService as CSSLanguageService, Stylesheet } from 'vscode-css-languageservice';
|
|
5
|
+
import type { PublicApi } from 'stylelint';
|
|
6
|
+
import type { Token } from '../internal';
|
|
7
|
+
export declare const jsonTags: string[];
|
|
8
|
+
declare let jsonLSP: JSONLanguageService | undefined, cssLSP: CSSLanguageService | undefined;
|
|
9
|
+
declare const stylelint: Promise<PublicApi | undefined>;
|
|
10
|
+
export { jsonLSP, cssLSP, stylelint };
|
|
11
|
+
/** embedded document */
|
|
12
|
+
declare class EmbeddedDocument implements TextDocument {
|
|
13
|
+
#private;
|
|
14
|
+
languageId: string;
|
|
15
|
+
lineCount: number;
|
|
16
|
+
pre: string;
|
|
17
|
+
uri: string;
|
|
18
|
+
version: number;
|
|
19
|
+
/**
|
|
20
|
+
* @param id language ID
|
|
21
|
+
* @param root root token
|
|
22
|
+
* @param token current token
|
|
23
|
+
* @param pre padding before the content
|
|
24
|
+
* @param post padding after the content
|
|
25
|
+
*/
|
|
26
|
+
constructor(id: string, root: Token, token: Token, pre?: string, post?: string);
|
|
27
|
+
/** 原始文本 */
|
|
28
|
+
getContent(): string;
|
|
29
|
+
/** @implements */
|
|
30
|
+
getText(): string;
|
|
31
|
+
/** @implements */
|
|
32
|
+
positionAt(offset: number): Position;
|
|
33
|
+
/** @implements */
|
|
34
|
+
offsetAt({ line, character }: Position): number;
|
|
35
|
+
}
|
|
36
|
+
/** embedded JSON document */
|
|
37
|
+
export declare class EmbeddedJSONDocument extends EmbeddedDocument {
|
|
38
|
+
jsonDoc: JSONDocument;
|
|
39
|
+
/**
|
|
40
|
+
* @param root root token
|
|
41
|
+
* @param token current token
|
|
42
|
+
*/
|
|
43
|
+
constructor(root: Token, token: Token);
|
|
44
|
+
}
|
|
45
|
+
/** embedded CSS document */
|
|
46
|
+
export declare class EmbeddedCSSDocument extends EmbeddedDocument {
|
|
47
|
+
styleSheet: Stylesheet;
|
|
48
|
+
/**
|
|
49
|
+
* @param root root token
|
|
50
|
+
* @param token current token
|
|
51
|
+
*/
|
|
52
|
+
constructor(root: Token, token: Token);
|
|
53
|
+
getContent(): string;
|
|
54
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EmbeddedCSSDocument = exports.EmbeddedJSONDocument = exports.stylelint = exports.cssLSP = exports.jsonLSP = exports.jsonTags = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const common_1 = require("@bhsd/common");
|
|
9
|
+
/* NOT FOR BROWSER */
|
|
10
|
+
const constants_1 = require("../util/constants");
|
|
11
|
+
/* NOT FOR BROWSER END */
|
|
12
|
+
exports.jsonTags = ['templatedata', 'mapframe', 'maplink'];
|
|
13
|
+
let jsonLSP, cssLSP;
|
|
14
|
+
try {
|
|
15
|
+
exports.jsonLSP = jsonLSP = require('vscode-json-languageservice')
|
|
16
|
+
.getLanguageService({
|
|
17
|
+
/** @implements */
|
|
18
|
+
async schemaRequestService(uri) {
|
|
19
|
+
return (await fetch(uri)).text();
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
jsonLSP.configure({
|
|
23
|
+
schemas: exports.jsonTags.map((tag) => {
|
|
24
|
+
const uri = path_1.default.join('..', '..', 'data', 'ext', tag);
|
|
25
|
+
try {
|
|
26
|
+
const schema = require(uri);
|
|
27
|
+
return {
|
|
28
|
+
uri,
|
|
29
|
+
fileMatch: [tag],
|
|
30
|
+
schema,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}).filter(Boolean),
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
catch { }
|
|
40
|
+
try {
|
|
41
|
+
exports.cssLSP = cssLSP = require('vscode-css-languageservice')
|
|
42
|
+
.getCSSLanguageService();
|
|
43
|
+
}
|
|
44
|
+
catch { }
|
|
45
|
+
const stylelint = (async () => {
|
|
46
|
+
try {
|
|
47
|
+
return (await import('stylelint')).default;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
})();
|
|
53
|
+
exports.stylelint = stylelint;
|
|
54
|
+
/** embedded document */
|
|
55
|
+
class EmbeddedDocument {
|
|
56
|
+
uri = '';
|
|
57
|
+
version = 0;
|
|
58
|
+
#root;
|
|
59
|
+
#content;
|
|
60
|
+
#offset;
|
|
61
|
+
#post;
|
|
62
|
+
/**
|
|
63
|
+
* @param id language ID
|
|
64
|
+
* @param root root token
|
|
65
|
+
* @param token current token
|
|
66
|
+
* @param pre padding before the content
|
|
67
|
+
* @param post padding after the content
|
|
68
|
+
*/
|
|
69
|
+
constructor(id, root, token, pre = '', post = '') {
|
|
70
|
+
this.languageId = id;
|
|
71
|
+
this.lineCount = root.getLines().length;
|
|
72
|
+
this.#root = root;
|
|
73
|
+
this.#content = String(token);
|
|
74
|
+
this.#offset = token.getAbsoluteIndex();
|
|
75
|
+
this.pre = pre;
|
|
76
|
+
this.#post = post;
|
|
77
|
+
}
|
|
78
|
+
/** 原始文本 */
|
|
79
|
+
getContent() {
|
|
80
|
+
return this.#content;
|
|
81
|
+
}
|
|
82
|
+
/** @implements */
|
|
83
|
+
getText() {
|
|
84
|
+
return this.pre + this.getContent() + this.#post;
|
|
85
|
+
}
|
|
86
|
+
/** @implements */
|
|
87
|
+
positionAt(offset) {
|
|
88
|
+
const { top, left } = this.#root.posFromIndex(this.#offset + Math.max(Math.min(offset - this.pre.length, this.#content.length), 0));
|
|
89
|
+
return { line: top, character: left };
|
|
90
|
+
}
|
|
91
|
+
/** @implements */
|
|
92
|
+
offsetAt({ line, character }) {
|
|
93
|
+
return Math.min(Math.max(this.#root.indexFromPos(line, character) - this.#offset, 0), this.#content.length)
|
|
94
|
+
+ this.pre.length;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** embedded JSON document */
|
|
98
|
+
class EmbeddedJSONDocument extends EmbeddedDocument {
|
|
99
|
+
/**
|
|
100
|
+
* @param root root token
|
|
101
|
+
* @param token current token
|
|
102
|
+
*/
|
|
103
|
+
constructor(root, token) {
|
|
104
|
+
super('json', root, token);
|
|
105
|
+
this.uri = token.name;
|
|
106
|
+
this.jsonDoc = jsonLSP.parseJSONDocument(this);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.EmbeddedJSONDocument = EmbeddedJSONDocument;
|
|
110
|
+
/** embedded CSS document */
|
|
111
|
+
class EmbeddedCSSDocument extends EmbeddedDocument {
|
|
112
|
+
/**
|
|
113
|
+
* @param root root token
|
|
114
|
+
* @param token current token
|
|
115
|
+
*/
|
|
116
|
+
constructor(root, token) {
|
|
117
|
+
const { type, tag } = token.parentNode;
|
|
118
|
+
super('css', root, token, `${type === 'ext-attr' ? 'div' : tag}{`, '}');
|
|
119
|
+
this.styleSheet = cssLSP.parseStylesheet(this);
|
|
120
|
+
}
|
|
121
|
+
getContent() {
|
|
122
|
+
return (0, common_1.sanitizeInlineStyle)(super.getContent());
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.EmbeddedCSSDocument = EmbeddedCSSDocument;
|
|
126
|
+
constants_1.classes['EmbeddedCSSDocument'] = __filename;
|
package/dist/lib/element.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.AstElement = void 0;
|
|
4
7
|
const string_1 = require("../util/string");
|
|
@@ -6,8 +9,8 @@ const debug_1 = require("../util/debug");
|
|
|
6
9
|
const selector_1 = require("../parser/selector");
|
|
7
10
|
const node_1 = require("./node");
|
|
8
11
|
/* NOT FOR BROWSER */
|
|
9
|
-
const
|
|
10
|
-
const
|
|
12
|
+
const fs_1 = __importDefault(require("fs"));
|
|
13
|
+
const path_1 = __importDefault(require("path"));
|
|
11
14
|
const constants_1 = require("../util/constants");
|
|
12
15
|
/**
|
|
13
16
|
* HTMLElement-like
|
|
@@ -392,7 +395,7 @@ class AstElement extends node_1.AstNode {
|
|
|
392
395
|
/* NOT FOR BROWSER */
|
|
393
396
|
/* istanbul ignore if */
|
|
394
397
|
if (typeof file === 'string') {
|
|
395
|
-
|
|
398
|
+
fs_1.default.writeFileSync(path_1.default.join(__dirname, '..', '..', 'printed', file + (file.endsWith('.json') ? '' : '.json')), JSON.stringify(json, null, 2));
|
|
396
399
|
}
|
|
397
400
|
/* NOT FOR BROWSER END */
|
|
398
401
|
return json;
|
package/dist/lib/lsp.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import Parser from '../index';
|
|
2
2
|
import type { Range, Position, ColorInformation, ColorPresentation, FoldingRange, DocumentLink, Location, WorkspaceEdit, Diagnostic as DiagnosticBase, TextEdit, Hover, SignatureHelp, InlayHint, CodeAction, DocumentSymbol } from 'vscode-languageserver-types';
|
|
3
3
|
import type { LanguageService as LanguageServiceBase, CompletionItem, SignatureData } from '../base';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
declare interface QuickFixData extends TextEdit {
|
|
4
|
+
import type { AttributeToken } from '../internal';
|
|
5
|
+
export interface QuickFixData extends TextEdit {
|
|
8
6
|
title: string;
|
|
9
7
|
fix: boolean;
|
|
10
8
|
}
|
|
@@ -12,6 +10,9 @@ export declare const tasks: WeakMap<object, Parser.LanguageService>;
|
|
|
12
10
|
/** VSCode-style language service */
|
|
13
11
|
export declare class LanguageService implements LanguageServiceBase {
|
|
14
12
|
#private;
|
|
13
|
+
include: boolean;
|
|
14
|
+
lilypond: string;
|
|
15
|
+
lilypondData: string[];
|
|
15
16
|
/** @param uri 任务标识 */
|
|
16
17
|
constructor(uri: object);
|
|
17
18
|
/** @implements */
|
|
@@ -47,7 +48,7 @@ export declare class LanguageService implements LanguageServiceBase {
|
|
|
47
48
|
* @param text source Wikitext / 源代码
|
|
48
49
|
* @param warning whether to include warnings / 是否包含警告
|
|
49
50
|
*/
|
|
50
|
-
provideDiagnostics(text: string, warning?: boolean): Promise<
|
|
51
|
+
provideDiagnostics(text: string, warning?: boolean): Promise<DiagnosticBase[]>;
|
|
51
52
|
/**
|
|
52
53
|
* Provide folding ranges
|
|
53
54
|
*
|
|
@@ -124,7 +125,7 @@ export declare class LanguageService implements LanguageServiceBase {
|
|
|
124
125
|
* 提供快速修复建议
|
|
125
126
|
* @param diagnostics grammar diagnostics / 语法诊断信息
|
|
126
127
|
*/
|
|
127
|
-
provideCodeAction(diagnostics:
|
|
128
|
+
provideCodeAction(diagnostics: DiagnosticBase[]): CodeAction[];
|
|
128
129
|
/**
|
|
129
130
|
* Provide document sections
|
|
130
131
|
*
|
|
@@ -133,4 +134,3 @@ export declare class LanguageService implements LanguageServiceBase {
|
|
|
133
134
|
*/
|
|
134
135
|
provideDocumentSymbols(text: string): Promise<DocumentSymbol[]>;
|
|
135
136
|
}
|
|
136
|
-
export {};
|