@marko/language-server 0.11.0 → 0.12.2
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/LICENSE +1 -1
- package/bin.js +2 -0
- package/dist/index.js +744 -139
- package/dist/index.js.map +7 -1
- package/dist/index.mjs +822 -0
- package/dist/index.mjs.map +7 -0
- package/dist/utils/compiler.d.ts +5 -61
- package/dist/utils/completions/types/attributeModifier.d.ts +5 -5
- package/dist/utils/completions/types/attributeName.d.ts +5 -5
- package/dist/utils/completions/types/closeTag.d.ts +5 -5
- package/dist/utils/completions/types/openTag.d.ts +5 -5
- package/dist/utils/completions/types/openTagName.d.ts +5 -5
- package/dist/utils/completions/types/styleContent.d.ts +4 -4
- package/dist/utils/definitions/types/attributeName.d.ts +5 -5
- package/dist/utils/definitions/types/openTagName.d.ts +5 -5
- package/dist/utils/htmljs-parser.d.ts +2 -2
- package/dist/utils/utils.d.ts +2 -2
- package/package.json +30 -16
- package/dist/bin.js +0 -5
- package/dist/bin.js.map +0 -1
- package/dist/utils/compiler.js +0 -54
- package/dist/utils/compiler.js.map +0 -1
- package/dist/utils/completions/index.js +0 -10
- package/dist/utils/completions/index.js.map +0 -1
- package/dist/utils/completions/types/attributeModifier.js +0 -20
- package/dist/utils/completions/types/attributeModifier.js.map +0 -1
- package/dist/utils/completions/types/attributeName.js +0 -84
- package/dist/utils/completions/types/attributeName.js.map +0 -1
- package/dist/utils/completions/types/closeTag.js +0 -21
- package/dist/utils/completions/types/closeTag.js.map +0 -1
- package/dist/utils/completions/types/openTag.js +0 -21
- package/dist/utils/completions/types/openTag.js.map +0 -1
- package/dist/utils/completions/types/openTagName.js +0 -75
- package/dist/utils/completions/types/openTagName.js.map +0 -1
- package/dist/utils/completions/types/styleContent.js +0 -22
- package/dist/utils/completions/types/styleContent.js.map +0 -1
- package/dist/utils/definitions/index.js +0 -6
- package/dist/utils/definitions/index.js.map +0 -1
- package/dist/utils/definitions/types/attributeName.js +0 -31
- package/dist/utils/definitions/types/attributeName.js.map +0 -1
- package/dist/utils/definitions/types/openTagName.js +0 -38
- package/dist/utils/definitions/types/openTagName.js.map +0 -1
- package/dist/utils/htmljs-parser.js +0 -179
- package/dist/utils/htmljs-parser.js.map +0 -1
- package/dist/utils/regexp-builder.js +0 -27
- package/dist/utils/regexp-builder.js.map +0 -1
- package/dist/utils/utils.js +0 -68
- package/dist/utils/utils.js.map +0 -1
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.closeTag = void 0;
|
|
4
|
-
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
5
|
-
const utils_1 = require("../../utils");
|
|
6
|
-
function closeTag(taglib, document, params, event) {
|
|
7
|
-
if (event.tagName[0] === "$") {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
const closingTagStr = `</${event.tagName}>`;
|
|
11
|
-
return vscode_languageserver_1.CompletionList.create([
|
|
12
|
-
{
|
|
13
|
-
label: closingTagStr,
|
|
14
|
-
kind: vscode_languageserver_1.CompletionItemKind.Class,
|
|
15
|
-
insertTextFormat: vscode_languageserver_1.InsertTextFormat.Snippet,
|
|
16
|
-
textEdit: vscode_languageserver_1.TextEdit.replace((0, utils_1.rangeFromEvent)(document, event), closingTagStr),
|
|
17
|
-
},
|
|
18
|
-
], true);
|
|
19
|
-
}
|
|
20
|
-
exports.closeTag = closeTag;
|
|
21
|
-
//# sourceMappingURL=closeTag.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"closeTag.js","sourceRoot":"","sources":["../../../../src/utils/completions/types/closeTag.ts"],"names":[],"mappings":";;;AAAA,iEAM+B;AAI/B,uCAA6C;AAE7C,SAAgB,QAAQ,CACtB,MAAoB,EACpB,QAAsB,EACtB,MAAwB,EACxB,KAA4B;IAE5B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QAC5B,OAAO;KACR;IAED,MAAM,aAAa,GAAG,KAAK,KAAK,CAAC,OAAO,GAAG,CAAC;IAE5C,OAAO,sCAAc,CAAC,MAAM,CAC1B;QACE;YACE,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,0CAAkB,CAAC,KAAK;YAC9B,gBAAgB,EAAE,wCAAgB,CAAC,OAAO;YAC1C,QAAQ,EAAE,gCAAQ,CAAC,OAAO,CACxB,IAAA,sBAAc,EAAC,QAAQ,EAAE,KAAK,CAAC,EAC/B,aAAa,CACd;SACF;KACF,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AA1BD,4BA0BC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.openTag = void 0;
|
|
4
|
-
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
5
|
-
function openTag(taglib, document, params, event) {
|
|
6
|
-
const triggerCharacter = params.context && params.context.triggerCharacter;
|
|
7
|
-
if (triggerCharacter !== ">" || event.openTagOnly || event.selfClosed) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
const closingTagStr = `</${event.tagName[0] === "$" ? "" : event.tagName}>`;
|
|
11
|
-
return vscode_languageserver_1.CompletionList.create([
|
|
12
|
-
{
|
|
13
|
-
label: closingTagStr,
|
|
14
|
-
kind: vscode_languageserver_1.CompletionItemKind.Class,
|
|
15
|
-
insertTextFormat: vscode_languageserver_1.InsertTextFormat.Snippet,
|
|
16
|
-
insertText: `\n\t$0\n${closingTagStr}`,
|
|
17
|
-
},
|
|
18
|
-
], true);
|
|
19
|
-
}
|
|
20
|
-
exports.openTag = openTag;
|
|
21
|
-
//# sourceMappingURL=openTag.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openTag.js","sourceRoot":"","sources":["../../../../src/utils/completions/types/openTag.ts"],"names":[],"mappings":";;;AAAA,iEAK+B;AAK/B,SAAgB,OAAO,CACrB,MAAoB,EACpB,QAAsB,EACtB,MAAwB,EACxB,KAA2B;IAE3B,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAC3E,IAAI,gBAAgB,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,EAAE;QACrE,OAAO;KACR;IAED,MAAM,aAAa,GAAG,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC;IAE5E,OAAO,sCAAc,CAAC,MAAM,CAC1B;QACE;YACE,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,0CAAkB,CAAC,KAAK;YAC9B,gBAAgB,EAAE,wCAAgB,CAAC,OAAO;YAC1C,UAAU,EAAE,WAAW,aAAa,EAAE;SACvC;KACF,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AAxBD,0BAwBC"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.openTagName = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const path_1 = (0, tslib_1.__importDefault)(require("path"));
|
|
6
|
-
const vscode_uri_1 = require("vscode-uri");
|
|
7
|
-
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
8
|
-
const utils_1 = require("../../utils");
|
|
9
|
-
function openTagName(taglib, document, params, event) {
|
|
10
|
-
const { fsPath: currentTemplateFilePath } = vscode_uri_1.URI.parse(document.uri);
|
|
11
|
-
let tags;
|
|
12
|
-
const triggerCharacter = (params.context && params.context.triggerCharacter) || event.tagName[0];
|
|
13
|
-
const isAttributeTag = triggerCharacter === "@";
|
|
14
|
-
const tagNameRange = (0, utils_1.rangeFromEvent)(document, event);
|
|
15
|
-
if (isAttributeTag) {
|
|
16
|
-
const parentTag = (0, utils_1.findNonControlFlowParent)(event);
|
|
17
|
-
const parentTagDef = parentTag &&
|
|
18
|
-
!parentTag.tagNameExpression &&
|
|
19
|
-
taglib.getTag(parentTag.tagName);
|
|
20
|
-
tags =
|
|
21
|
-
(parentTagDef &&
|
|
22
|
-
parentTagDef.nestedTags &&
|
|
23
|
-
Object.values(parentTagDef.nestedTags)) ||
|
|
24
|
-
[];
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
tags = taglib.getTagsSorted().filter((it) => !it.isNestedTag);
|
|
28
|
-
}
|
|
29
|
-
return vscode_languageserver_1.CompletionList.create(tags
|
|
30
|
-
.filter((it) => !it.deprecated)
|
|
31
|
-
.filter((it) => it.name !== "*")
|
|
32
|
-
.filter((it) => /^[^_]/.test(it.name) || !/\/node_modules\//.test(it.filePath))
|
|
33
|
-
.map((it) => {
|
|
34
|
-
let label = it.isNestedTag ? `@${it.name}` : it.name;
|
|
35
|
-
const fileForTag = it.template || it.renderer || it.filePath;
|
|
36
|
-
const fileURIForTag = vscode_uri_1.URI.file(fileForTag).toString();
|
|
37
|
-
const nodeModuleMatch = /\/node_modules\/((?:\@[^/]+\/)?[^/]+)/.exec(fileForTag);
|
|
38
|
-
const nodeModuleName = nodeModuleMatch && nodeModuleMatch[1];
|
|
39
|
-
const isCoreTag = nodeModuleName === "marko";
|
|
40
|
-
const documentation = {
|
|
41
|
-
kind: vscode_languageserver_1.MarkupKind.Markdown,
|
|
42
|
-
value: it.html
|
|
43
|
-
? `Built in [<${it.name}>](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/${it.name}) HTML tag.`
|
|
44
|
-
: nodeModuleName
|
|
45
|
-
? isCoreTag
|
|
46
|
-
? `Core Marko [<${it.name}>](${fileURIForTag}) tag.`
|
|
47
|
-
: `Custom Marko tag discovered from the ["${nodeModuleName}"](${fileURIForTag}) npm package.`
|
|
48
|
-
: `Custom Marko tag discovered from:\n\n[${path_1.default.relative(currentTemplateFilePath, fileForTag)}](${fileURIForTag})`,
|
|
49
|
-
};
|
|
50
|
-
if (it.description) {
|
|
51
|
-
documentation.value += `\n\n${it.description}`;
|
|
52
|
-
}
|
|
53
|
-
const autocomplete = it.autocomplete && it.autocomplete[0];
|
|
54
|
-
if (autocomplete) {
|
|
55
|
-
if (autocomplete.displayText) {
|
|
56
|
-
label = autocomplete.displayText;
|
|
57
|
-
}
|
|
58
|
-
if (autocomplete.description) {
|
|
59
|
-
documentation.value += `\n\n${autocomplete.description}`;
|
|
60
|
-
}
|
|
61
|
-
if (autocomplete.descriptionMoreURL) {
|
|
62
|
-
documentation.value += `\n\n[More Info](${autocomplete.descriptionMoreURL})`;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return {
|
|
66
|
-
label,
|
|
67
|
-
documentation,
|
|
68
|
-
kind: vscode_languageserver_1.CompletionItemKind.Class,
|
|
69
|
-
insertTextFormat: vscode_languageserver_1.InsertTextFormat.Snippet,
|
|
70
|
-
textEdit: vscode_languageserver_1.TextEdit.replace(tagNameRange, (autocomplete && autocomplete.snippet) || label),
|
|
71
|
-
};
|
|
72
|
-
}), true);
|
|
73
|
-
}
|
|
74
|
-
exports.openTagName = openTagName;
|
|
75
|
-
//# sourceMappingURL=openTagName.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openTagName.js","sourceRoot":"","sources":["../../../../src/utils/completions/types/openTagName.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.styleContent = void 0;
|
|
4
|
-
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
5
|
-
const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
|
|
6
|
-
const vscode_css_languageservice_1 = require("vscode-css-languageservice");
|
|
7
|
-
const utils_1 = require("../../utils");
|
|
8
|
-
const services = {
|
|
9
|
-
css: vscode_css_languageservice_1.getCSSLanguageService,
|
|
10
|
-
scss: vscode_css_languageservice_1.getSCSSLanguageService,
|
|
11
|
-
less: vscode_css_languageservice_1.getLESSLanguageService,
|
|
12
|
-
};
|
|
13
|
-
function styleContent(taglib, document, params, event) {
|
|
14
|
-
const service = services[event.language]();
|
|
15
|
-
const startPos = document.positionAt(event.pos);
|
|
16
|
-
const relativePos = (0, utils_1.shiftPosition)(params.position, vscode_languageserver_1.Position.create(startPos.line * -1, startPos.character * -1));
|
|
17
|
-
const contentDocument = vscode_languageserver_textdocument_1.TextDocument.create(document.uri, event.language, document.version, event.content);
|
|
18
|
-
const completions = service.doComplete(contentDocument, relativePos, service.parseStylesheet(contentDocument));
|
|
19
|
-
return (0, utils_1.shiftCompletionRanges)(completions, startPos);
|
|
20
|
-
}
|
|
21
|
-
exports.styleContent = styleContent;
|
|
22
|
-
//# sourceMappingURL=styleContent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"styleContent.js","sourceRoot":"","sources":["../../../../src/utils/completions/types/styleContent.ts"],"names":[],"mappings":";;;AAAA,iEAAmE;AACnE,2FAAkE;AAClE,2EAIoC;AAIpC,uCAAmE;AAEnE,MAAM,QAAQ,GAAG;IACf,GAAG,EAAE,kDAAqB;IAC1B,IAAI,EAAE,mDAAsB;IAC5B,IAAI,EAAE,mDAAsB;CAC7B,CAAC;AAEF,SAAgB,YAAY,CAC1B,MAAoB,EACpB,QAAsB,EACtB,MAAwB,EACxB,KAAgC;IAEhC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,IAAA,qBAAa,EAC/B,MAAM,CAAC,QAAQ,EACf,gCAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAC7D,CAAC;IACF,MAAM,eAAe,GAAG,iDAAY,CAAC,MAAM,CACzC,QAAQ,CAAC,GAAG,EACZ,KAAK,CAAC,QAAQ,EACd,QAAQ,CAAC,OAAO,EAChB,KAAK,CAAC,OAAO,CACd,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CACpC,eAAe,EACf,WAAW,EACX,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CACzC,CAAC;IAEF,OAAO,IAAA,6BAAqB,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AA1BD,oCA0BC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
(0, tslib_1.__exportStar)(require("./types/attributeName"), exports);
|
|
5
|
-
(0, tslib_1.__exportStar)(require("./types/openTagName"), exports);
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/definitions/index.ts"],"names":[],"mappings":";;;AAAA,qEAAsC;AACtC,mEAAoC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.attributeName = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const vscode_uri_1 = require("vscode-uri");
|
|
6
|
-
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
7
|
-
const regexp_builder_1 = (0, tslib_1.__importDefault)(require("../../regexp-builder"));
|
|
8
|
-
const utils_1 = require("../../utils");
|
|
9
|
-
function attributeName(taglib, document, params, event) {
|
|
10
|
-
const tagName = event.tag.tagNameExpression ? undefined : event.tag.tagName;
|
|
11
|
-
const tagDef = tagName && taglib.getTag(tagName);
|
|
12
|
-
const attrDef = taglib.getAttribute(tagName || "*", event.name);
|
|
13
|
-
let range = utils_1.START_OF_FILE;
|
|
14
|
-
if (!attrDef) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const attrEntryFile = attrDef.filePath || (tagDef && tagDef.filePath);
|
|
18
|
-
if (!attrEntryFile) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
if (/\/marko(?:-tag)?\.json$/.test(attrEntryFile)) {
|
|
22
|
-
const tagDefDoc = (0, utils_1.createTextDocument)(attrEntryFile);
|
|
23
|
-
const match = (0, regexp_builder_1.default) `/"@${event.name}"\s*:\s*[^\r\n,]+/g`.exec(tagDefDoc.getText());
|
|
24
|
-
if (match && match.index) {
|
|
25
|
-
range = vscode_languageserver_1.Range.create(tagDefDoc.positionAt(match.index), tagDefDoc.positionAt(match.index + match[0].length));
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return vscode_languageserver_1.LocationLink.create(vscode_uri_1.URI.file(attrEntryFile).toString(), range, range, (0, utils_1.rangeFromEvent)(document, event));
|
|
29
|
-
}
|
|
30
|
-
exports.attributeName = attributeName;
|
|
31
|
-
//# sourceMappingURL=attributeName.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attributeName.js","sourceRoot":"","sources":["../../../../src/utils/definitions/types/attributeName.ts"],"names":[],"mappings":";;;;AAAA,2CAAiC;AACjC,iEAI+B;AAI/B,uFAAiD;AACjD,uCAAgF;AAEhF,SAAgB,aAAa,CAC3B,MAAoB,EACpB,QAAsB,EACtB,MAAkC,EAClC,KAAiC;IAEjC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAC5E,MAAM,MAAM,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,IAAI,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAChE,IAAI,KAAK,GAAG,qBAAa,CAAC;IAE1B,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO;KACR;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEtE,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO;KACR;IAED,IAAI,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;QACjD,MAAM,SAAS,GAAG,IAAA,0BAAkB,EAAC,aAAa,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,IAAA,wBAAa,EAAA,MAAM,KAAK,CAAC,IAAI,qBAAqB,CAAC,IAAI,CACnE,SAAS,CAAC,OAAO,EAAE,CACpB,CAAC;QAEF,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;YACxB,KAAK,GAAG,6BAAK,CAAC,MAAM,CAClB,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EACjC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CACpD,CAAC;SACH;KACF;IAED,OAAO,oCAAY,CAAC,MAAM,CACxB,gBAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,EAClC,KAAK,EACL,KAAK,EACL,IAAA,sBAAc,EAAC,QAAQ,EAAE,KAAK,CAAC,CAChC,CAAC;AACJ,CAAC;AAzCD,sCAyCC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.openTagName = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const vscode_uri_1 = require("vscode-uri");
|
|
6
|
-
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
7
|
-
const regexp_builder_1 = (0, tslib_1.__importDefault)(require("../../regexp-builder"));
|
|
8
|
-
const utils_1 = require("../../utils");
|
|
9
|
-
function openTagName(taglib, document, params, event) {
|
|
10
|
-
let tagDef;
|
|
11
|
-
let range = utils_1.START_OF_FILE;
|
|
12
|
-
const isAttributeTag = event.tagName[0] === "@";
|
|
13
|
-
if (isAttributeTag) {
|
|
14
|
-
const parentTag = (0, utils_1.findNonControlFlowParent)(event);
|
|
15
|
-
tagDef =
|
|
16
|
-
parentTag &&
|
|
17
|
-
(parentTag.tagNameExpression
|
|
18
|
-
? undefined
|
|
19
|
-
: taglib.getTag(parentTag.tagName));
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
tagDef = taglib.getTag(event.tagName);
|
|
23
|
-
}
|
|
24
|
-
if (!tagDef) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
const tagEntryFile = tagDef.template || tagDef.renderer || tagDef.filePath;
|
|
28
|
-
if (/\/marko(?:-tag)?\.json$/.test(tagEntryFile)) {
|
|
29
|
-
const tagDefDoc = (0, utils_1.createTextDocument)(tagEntryFile);
|
|
30
|
-
const match = (0, regexp_builder_1.default) `/"<${event.tagName}>"\s*:\s*[^\r\n,]+/g`.exec(tagDefDoc.getText());
|
|
31
|
-
if (match && match.index) {
|
|
32
|
-
range = vscode_languageserver_1.Range.create(tagDefDoc.positionAt(match.index), tagDefDoc.positionAt(match.index + match[0].length));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return vscode_languageserver_1.LocationLink.create(vscode_uri_1.URI.file(tagEntryFile).toString(), range, range, (0, utils_1.rangeFromEvent)(document, event));
|
|
36
|
-
}
|
|
37
|
-
exports.openTagName = openTagName;
|
|
38
|
-
//# sourceMappingURL=openTagName.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openTagName.js","sourceRoot":"","sources":["../../../../src/utils/definitions/types/openTagName.ts"],"names":[],"mappings":";;;;AAAA,2CAAiC;AACjC,iEAI+B;AAI/B,uFAAiD;AACjD,uCAKqB;AAErB,SAAgB,WAAW,CACzB,MAAoB,EACpB,QAAsB,EACtB,MAAkC,EAClC,KAA+B;IAE/B,IAAI,MAAwC,CAAC;IAC7C,IAAI,KAAK,GAAG,qBAAa,CAAC;IAC1B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IAEhD,IAAI,cAAc,EAAE;QAClB,MAAM,SAAS,GAAG,IAAA,gCAAwB,EAAC,KAAK,CAAC,CAAC;QAClD,MAAM;YACJ,SAAS;gBACT,CAAC,SAAS,CAAC,iBAAiB;oBAC1B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;KACzC;SAAM;QACL,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACvC;IAED,IAAI,CAAC,MAAM,EAAE;QACX,OAAO;KACR;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;IAE3E,IAAI,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QAChD,MAAM,SAAS,GAAG,IAAA,0BAAkB,EAAC,YAAY,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,IAAA,wBAAa,EAAA,MAAM,KAAK,CAAC,OAAO,sBAAsB,CAAC,IAAI,CACvE,SAAS,CAAC,OAAO,EAAE,CACpB,CAAC;QAEF,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;YACxB,KAAK,GAAG,6BAAK,CAAC,MAAM,CAClB,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EACjC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CACpD,CAAC;SACH;KACF;IAED,OAAO,oCAAY,CAAC,MAAM,CACxB,gBAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,EACjC,KAAK,EACL,KAAK,EACL,IAAA,sBAAc,EAAC,QAAQ,EAAE,KAAK,CAAC,CAChC,CAAC;AACJ,CAAC;AA/CD,kCA+CC"}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseUntilOffset = void 0;
|
|
4
|
-
const htmljs_parser_1 = require("htmljs-parser");
|
|
5
|
-
const SUPPORTED_STYLE_LANGS = {
|
|
6
|
-
css: true,
|
|
7
|
-
scss: true,
|
|
8
|
-
less: true,
|
|
9
|
-
};
|
|
10
|
-
function parseUntilOffset(options) {
|
|
11
|
-
const { offset, text, taglib, includeErrors } = options;
|
|
12
|
-
let result = null;
|
|
13
|
-
let parentTag = null;
|
|
14
|
-
const parser = (0, htmljs_parser_1.createParser)({
|
|
15
|
-
onError: includeErrors && finish,
|
|
16
|
-
onScriptlet: finish,
|
|
17
|
-
onPlaceholder: finish,
|
|
18
|
-
onOpenTagName(ev) {
|
|
19
|
-
if (parentTag) {
|
|
20
|
-
ev.parent = parentTag;
|
|
21
|
-
}
|
|
22
|
-
// Currently the parser has the wrong end position here with tag params :\
|
|
23
|
-
if (!ev.concise) {
|
|
24
|
-
ev.pos += 1;
|
|
25
|
-
}
|
|
26
|
-
ev.endPos = ev.pos + ev.tagName.length;
|
|
27
|
-
parentTag = ev;
|
|
28
|
-
finish(ev);
|
|
29
|
-
},
|
|
30
|
-
onOpenTag(ev) {
|
|
31
|
-
ev.parent = parentTag.parent;
|
|
32
|
-
parentTag = ev;
|
|
33
|
-
if (ev.tagName === "style") {
|
|
34
|
-
const firstAttr = ev.attributes[0];
|
|
35
|
-
const isBlock = firstAttr && firstAttr.name.startsWith("{");
|
|
36
|
-
if (isBlock) {
|
|
37
|
-
const content = firstAttr.name.slice(1, -1);
|
|
38
|
-
const pos = text.indexOf(content, ev.tagNameEndPos);
|
|
39
|
-
const endPos = pos + content.length;
|
|
40
|
-
const requestedLanguage = ev.shorthandClassNames &&
|
|
41
|
-
ev.shorthandClassNames[0].rawParts[0] &&
|
|
42
|
-
ev.shorthandClassNames[0].rawParts[0].text;
|
|
43
|
-
const language = requestedLanguage && SUPPORTED_STYLE_LANGS[requestedLanguage]
|
|
44
|
-
? requestedLanguage
|
|
45
|
-
: "css";
|
|
46
|
-
finish({
|
|
47
|
-
type: "styleContent",
|
|
48
|
-
language,
|
|
49
|
-
block: true,
|
|
50
|
-
content: text.slice(pos, endPos),
|
|
51
|
-
pos,
|
|
52
|
-
endPos,
|
|
53
|
-
});
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
let attrEndPos = ev.tagNameEndPos;
|
|
58
|
-
for (const attr of ev.attributes) {
|
|
59
|
-
if (!attr.name) {
|
|
60
|
-
// Legacy dynamic attrs.
|
|
61
|
-
if (attr.value !== undefined) {
|
|
62
|
-
attrEndPos += attr.value.length;
|
|
63
|
-
}
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
if (attr.name.slice(0, 3) === "...") {
|
|
67
|
-
attrEndPos = attr.argument ? attr.argument.endPos + 1 : attr.endPos;
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
const attrStartPos = text.indexOf(attr.name, attrEndPos);
|
|
71
|
-
const match = /:(.*)$/.exec(attr.name);
|
|
72
|
-
const modifier = match && match[1];
|
|
73
|
-
let name = attr.name;
|
|
74
|
-
if (modifier) {
|
|
75
|
-
name = name.slice(0, name.length - modifier.length - 1);
|
|
76
|
-
const modifierStartPos = attrStartPos + name.length;
|
|
77
|
-
const modifierEndPos = modifierStartPos + modifier.length + 1;
|
|
78
|
-
if (finish({
|
|
79
|
-
type: "attributeModifier",
|
|
80
|
-
tag: ev,
|
|
81
|
-
name,
|
|
82
|
-
modifier,
|
|
83
|
-
pos: modifierStartPos,
|
|
84
|
-
endPos: modifierEndPos,
|
|
85
|
-
})) {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
const attrNameEndPos = attrStartPos + name.length;
|
|
90
|
-
if (finish({
|
|
91
|
-
type: "attributeName",
|
|
92
|
-
tag: ev,
|
|
93
|
-
name,
|
|
94
|
-
pos: attrStartPos,
|
|
95
|
-
endPos: attrNameEndPos,
|
|
96
|
-
})) {
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
if (attr.value) {
|
|
100
|
-
attrEndPos = attr.endPos;
|
|
101
|
-
const valueStartPos = attr.pos + 1; // Add one to account for "=".
|
|
102
|
-
if (finish({
|
|
103
|
-
type: "attributeValue",
|
|
104
|
-
tag: ev,
|
|
105
|
-
name,
|
|
106
|
-
value: text.slice(valueStartPos, attrEndPos),
|
|
107
|
-
pos: valueStartPos,
|
|
108
|
-
endPos: attr.endPos,
|
|
109
|
-
})) {
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
attrEndPos = attr.argument ? attr.argument.endPos + 1 : attr.endPos;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
finish(ev);
|
|
118
|
-
},
|
|
119
|
-
onText(ev) {
|
|
120
|
-
ev.endPos = parser.pos;
|
|
121
|
-
ev.pos = ev.endPos - ev.value.length;
|
|
122
|
-
if (parentTag) {
|
|
123
|
-
ev.parent = parentTag;
|
|
124
|
-
if (parentTag.tagName === "style") {
|
|
125
|
-
finish({
|
|
126
|
-
type: "styleContent",
|
|
127
|
-
language: "css",
|
|
128
|
-
block: false,
|
|
129
|
-
content: ev.value,
|
|
130
|
-
pos: ev.pos,
|
|
131
|
-
endPos: ev.endPos,
|
|
132
|
-
});
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
finish(ev);
|
|
137
|
-
},
|
|
138
|
-
onCloseTag(ev) {
|
|
139
|
-
parentTag = parentTag && parentTag.parent;
|
|
140
|
-
finish(ev);
|
|
141
|
-
},
|
|
142
|
-
}, {
|
|
143
|
-
isOpenTagOnly(ev) {
|
|
144
|
-
const tagDef = taglib.getTag(ev);
|
|
145
|
-
return tagDef && tagDef.openTagOnly;
|
|
146
|
-
},
|
|
147
|
-
});
|
|
148
|
-
try {
|
|
149
|
-
// We only parse up to the end of the line the user is currently looking for.
|
|
150
|
-
const nextLine = text.indexOf("\n", offset);
|
|
151
|
-
const parseText = nextLine === -1 ? `${text}\n` : text.slice(0, nextLine + 1);
|
|
152
|
-
parser.parse(parseText);
|
|
153
|
-
}
|
|
154
|
-
catch (err) {
|
|
155
|
-
return includeErrors
|
|
156
|
-
? {
|
|
157
|
-
type: "error",
|
|
158
|
-
code: "UNEXPECTED_TOKEN",
|
|
159
|
-
message: err.message,
|
|
160
|
-
pos: parser.pos,
|
|
161
|
-
endPos: parser.pos,
|
|
162
|
-
}
|
|
163
|
-
: null;
|
|
164
|
-
}
|
|
165
|
-
return result;
|
|
166
|
-
function finish(event) {
|
|
167
|
-
const { type, pos, endPos } = event;
|
|
168
|
-
if (!result &&
|
|
169
|
-
(type === "error" ||
|
|
170
|
-
(pos != null && pos <= offset && endPos != null && endPos >= offset))) {
|
|
171
|
-
result = event;
|
|
172
|
-
parser.end();
|
|
173
|
-
return true;
|
|
174
|
-
}
|
|
175
|
-
return false;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
exports.parseUntilOffset = parseUntilOffset;
|
|
179
|
-
//# sourceMappingURL=htmljs-parser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"htmljs-parser.js","sourceRoot":"","sources":["../../src/utils/htmljs-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
function RegExpBuilder(strings, ...expressions) {
|
|
4
|
-
let i = 0;
|
|
5
|
-
let src = strings[0].slice(strings[0].indexOf("/") + 1);
|
|
6
|
-
const secondLastExprIndex = strings.length - 2;
|
|
7
|
-
for (; i < secondLastExprIndex; i++) {
|
|
8
|
-
src += escape(expressions[i]) + strings[i + 1];
|
|
9
|
-
}
|
|
10
|
-
src += escape(expressions[i]);
|
|
11
|
-
const lastStr = strings[i + 1];
|
|
12
|
-
const lastSlashIndex = lastStr.lastIndexOf("/");
|
|
13
|
-
let flags = "";
|
|
14
|
-
if (lastSlashIndex === -1) {
|
|
15
|
-
src += lastStr;
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
flags = lastStr.slice(lastSlashIndex + 1);
|
|
19
|
-
src += lastStr.slice(0, lastSlashIndex);
|
|
20
|
-
}
|
|
21
|
-
return new RegExp(src, flags);
|
|
22
|
-
}
|
|
23
|
-
exports.default = RegExpBuilder;
|
|
24
|
-
function escape(val) {
|
|
25
|
-
return String(val).replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&");
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=regexp-builder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regexp-builder.js","sourceRoot":"","sources":["../../src/utils/regexp-builder.ts"],"names":[],"mappings":";;AAAA,SAAwB,aAAa,CACnC,OAA6B,EAC7B,GAAG,WAAoC;IAEvC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAE/C,OAAO,CAAC,GAAG,mBAAmB,EAAE,CAAC,EAAE,EAAE;QACnC,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAChD;IAED,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9B,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;QACzB,GAAG,IAAI,OAAO,CAAC;KAChB;SAAM;QACL,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QAC1C,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;KACzC;IAED,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AA1BD,gCA0BC;AAED,SAAS,MAAM,CAAC,GAAY;IAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC"}
|
package/dist/utils/utils.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.shiftPosition = exports.shiftRange = exports.shiftEdit = exports.shiftCompletionRanges = exports.createTextDocument = exports.rangeFromEvent = exports.findNonControlFlowParent = exports.START_OF_FILE = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const fs_1 = (0, tslib_1.__importDefault)(require("fs"));
|
|
6
|
-
const vscode_uri_1 = require("vscode-uri");
|
|
7
|
-
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
8
|
-
const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
|
|
9
|
-
exports.START_OF_FILE = vscode_languageserver_1.Range.create(vscode_languageserver_1.Position.create(0, 0), vscode_languageserver_1.Position.create(0, 0));
|
|
10
|
-
function findNonControlFlowParent(tag) {
|
|
11
|
-
let parent = tag.parent;
|
|
12
|
-
while (parent) {
|
|
13
|
-
if (!/^(?:else-)?if|else|for|while$/.test(parent.tagName)) {
|
|
14
|
-
return parent;
|
|
15
|
-
}
|
|
16
|
-
parent = parent.parent;
|
|
17
|
-
}
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
exports.findNonControlFlowParent = findNonControlFlowParent;
|
|
21
|
-
function rangeFromEvent(document, event) {
|
|
22
|
-
return vscode_languageserver_1.Range.create(document.positionAt(event.pos), document.positionAt(event.endPos));
|
|
23
|
-
}
|
|
24
|
-
exports.rangeFromEvent = rangeFromEvent;
|
|
25
|
-
function createTextDocument(filename) {
|
|
26
|
-
const uri = vscode_uri_1.URI.file(filename).toString();
|
|
27
|
-
const content = fs_1.default.readFileSync(filename, "utf-8");
|
|
28
|
-
return vscode_languageserver_textdocument_1.TextDocument.create(uri, "plaintext", 0, content);
|
|
29
|
-
}
|
|
30
|
-
exports.createTextDocument = createTextDocument;
|
|
31
|
-
function shiftCompletionRanges(list, offset) {
|
|
32
|
-
list.items.forEach((item) => {
|
|
33
|
-
if (item.additionalTextEdits) {
|
|
34
|
-
item.additionalTextEdits.forEach((edit) => shiftRange(edit.range, offset));
|
|
35
|
-
}
|
|
36
|
-
if (item.textEdit) {
|
|
37
|
-
shiftEdit(item.textEdit, offset);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
return list;
|
|
41
|
-
}
|
|
42
|
-
exports.shiftCompletionRanges = shiftCompletionRanges;
|
|
43
|
-
function shiftEdit(edit, offset) {
|
|
44
|
-
if (vscode_languageserver_1.TextEdit.is(edit)) {
|
|
45
|
-
shiftRange(edit.range, offset);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
shiftRange(edit.insert, offset);
|
|
49
|
-
shiftRange(edit.replace, offset);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
exports.shiftEdit = shiftEdit;
|
|
53
|
-
function shiftRange(range, offset) {
|
|
54
|
-
if (range) {
|
|
55
|
-
shiftPosition(range.start, offset);
|
|
56
|
-
shiftPosition(range.end, offset);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
exports.shiftRange = shiftRange;
|
|
60
|
-
function shiftPosition(pos, offset) {
|
|
61
|
-
if (pos.line === 0) {
|
|
62
|
-
pos.character += offset.character;
|
|
63
|
-
}
|
|
64
|
-
pos.line += offset.line;
|
|
65
|
-
return pos;
|
|
66
|
-
}
|
|
67
|
-
exports.shiftPosition = shiftPosition;
|
|
68
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/utils/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":";;;;AAAA,yDAAoB;AACpB,2CAAiC;AACjC,iEAM+B;AAC/B,2FAAkE;AAGrD,QAAA,aAAa,GAAG,6BAAK,CAAC,MAAM,CACvC,gCAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACrB,gCAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CACtB,CAAC;AAEF,SAAgB,wBAAwB,CAAC,GAA6B;IACpE,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAExB,OAAO,MAAM,EAAE;QACb,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACzD,OAAO,MAAM,CAAC;SACf;QAED,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;KACxB;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAZD,4DAYC;AAED,SAAgB,cAAc,CAC5B,QAAsB,EACtB,KAAuB;IAEvB,OAAO,6BAAK,CAAC,MAAM,CACjB,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAC9B,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAClC,CAAC;AACJ,CAAC;AARD,wCAQC;AAED,SAAgB,kBAAkB,CAAC,QAAgB;IACjD,MAAM,GAAG,GAAG,gBAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO,iDAAY,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAJD,gDAIC;AAED,SAAgB,qBAAqB,CAAC,IAAoB,EAAE,MAAgB;IAC1E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACxC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAC/B,CAAC;SACH;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SAClC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC;AAdD,sDAcC;AAED,SAAgB,SAAS,CACvB,IAAkC,EAClC,MAAgB;IAEhB,IAAI,gCAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;QACrB,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KAChC;SAAM;QACL,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KAClC;AACH,CAAC;AAVD,8BAUC;AAED,SAAgB,UAAU,CAAC,KAAwB,EAAE,MAAgB;IACnE,IAAI,KAAK,EAAE;QACT,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;KAClC;AACH,CAAC;AALD,gCAKC;AAED,SAAgB,aAAa,CAAC,GAAa,EAAE,MAAgB;IAC3D,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE;QAClB,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;KACnC;IAED,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;IACxB,OAAO,GAAG,CAAC;AACb,CAAC;AAPD,sCAOC"}
|