@marko/language-server 1.4.25 → 1.4.26
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/index.js +75 -57
- package/dist/index.js.map +3 -3
- package/dist/index.mjs +53 -34
- package/dist/index.mjs.map +3 -3
- package/dist/service/marko/complete/Import.d.ts +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -38,7 +38,7 @@ import_language_tools.Project.setDefaultCompilerMeta(defaultCompiler, {
|
|
|
38
38
|
});
|
|
39
39
|
|
|
40
40
|
// src/index.ts
|
|
41
|
-
var
|
|
41
|
+
var import_language_tools20 = require("@marko/language-tools");
|
|
42
42
|
var import_util2 = require("util");
|
|
43
43
|
var import_node = require("vscode-languageserver/node");
|
|
44
44
|
|
|
@@ -938,7 +938,7 @@ async function acquireMutexLock() {
|
|
|
938
938
|
var html_default = HTMLService;
|
|
939
939
|
|
|
940
940
|
// src/service/marko/complete/index.ts
|
|
941
|
-
var
|
|
941
|
+
var import_language_tools8 = require("@marko/language-tools");
|
|
942
942
|
|
|
943
943
|
// src/service/marko/complete/AttrName.ts
|
|
944
944
|
var import_vscode_languageserver2 = require("vscode-languageserver");
|
|
@@ -1180,6 +1180,7 @@ async function AttrValue({
|
|
|
1180
1180
|
}
|
|
1181
1181
|
|
|
1182
1182
|
// src/service/marko/complete/Import.ts
|
|
1183
|
+
var import_language_tools5 = require("@marko/language-tools");
|
|
1183
1184
|
var import_vscode_languageserver5 = require("vscode-languageserver");
|
|
1184
1185
|
|
|
1185
1186
|
// src/service/marko/util/get-tag-name-completion.ts
|
|
@@ -1239,12 +1240,16 @@ ${autocomplete.description}`;
|
|
|
1239
1240
|
}
|
|
1240
1241
|
|
|
1241
1242
|
// src/service/marko/complete/Import.ts
|
|
1243
|
+
var staticImportReg = /^\s*(?:static|client|server) import\b/;
|
|
1242
1244
|
var importTagReg = /(['"])<((?:[^'"\\>]|\\.)*)>?\1/;
|
|
1243
1245
|
function Import({
|
|
1244
1246
|
node,
|
|
1245
1247
|
file: { parsed, filename, lookup }
|
|
1246
1248
|
}) {
|
|
1247
1249
|
const value = parsed.read(node);
|
|
1250
|
+
if (node.type === import_language_tools5.NodeType.Static && !staticImportReg.test(value)) {
|
|
1251
|
+
return;
|
|
1252
|
+
}
|
|
1248
1253
|
const match = importTagReg.exec(value);
|
|
1249
1254
|
if (match) {
|
|
1250
1255
|
const [{ length }] = match;
|
|
@@ -1270,14 +1275,14 @@ function Import({
|
|
|
1270
1275
|
}
|
|
1271
1276
|
|
|
1272
1277
|
// src/service/marko/complete/OpenTagName.ts
|
|
1273
|
-
var
|
|
1278
|
+
var import_language_tools6 = require("@marko/language-tools");
|
|
1274
1279
|
function OpenTagName({
|
|
1275
1280
|
node,
|
|
1276
1281
|
file: { parsed, filename, lookup }
|
|
1277
1282
|
}) {
|
|
1278
1283
|
const tag = node.parent;
|
|
1279
1284
|
const range = parsed.locationAt(node);
|
|
1280
|
-
const isAttrTag = tag.type ===
|
|
1285
|
+
const isAttrTag = tag.type === import_language_tools6.NodeType.AttrTag;
|
|
1281
1286
|
const result = [];
|
|
1282
1287
|
if (isAttrTag) {
|
|
1283
1288
|
const ownerTagDef = tag.owner && tag.owner.nameText && lookup.getTag(tag.owner.nameText);
|
|
@@ -1298,7 +1303,7 @@ function OpenTagName({
|
|
|
1298
1303
|
}
|
|
1299
1304
|
}
|
|
1300
1305
|
} else {
|
|
1301
|
-
const skipStatements = !(tag.concise && tag.parent.type ===
|
|
1306
|
+
const skipStatements = !(tag.concise && tag.parent.type === import_language_tools6.NodeType.Program);
|
|
1302
1307
|
for (const tag2 of lookup.getTagsSorted()) {
|
|
1303
1308
|
if (!(tag2.name === "*" || tag2.isNestedTag || skipStatements && tag2.parseOptions?.statement || tag2.name[0] === "_" && /^@?marko[/-]|[\\/]node_modules[\\/]/.test(tag2.filePath))) {
|
|
1304
1309
|
const completion = getTagNameCompletion({
|
|
@@ -1316,7 +1321,7 @@ function OpenTagName({
|
|
|
1316
1321
|
}
|
|
1317
1322
|
|
|
1318
1323
|
// src/service/marko/complete/Tag.ts
|
|
1319
|
-
var
|
|
1324
|
+
var import_language_tools7 = require("@marko/language-tools");
|
|
1320
1325
|
var import_vscode_languageserver6 = require("vscode-languageserver");
|
|
1321
1326
|
var partialCloseTagReg = /<\/(?:[^><]*>)?/iy;
|
|
1322
1327
|
function Tag({
|
|
@@ -1324,7 +1329,7 @@ function Tag({
|
|
|
1324
1329
|
offset,
|
|
1325
1330
|
file: { parsed, code }
|
|
1326
1331
|
}) {
|
|
1327
|
-
const isClosed = node.end !==
|
|
1332
|
+
const isClosed = node.end !== import_language_tools7.UNFINISHED;
|
|
1328
1333
|
if (isClosed || node.concise) return;
|
|
1329
1334
|
const closingTagStr = `</${node.nameText || ""}>`;
|
|
1330
1335
|
if (offset === node.open.end) {
|
|
@@ -1366,14 +1371,15 @@ var handlers = {
|
|
|
1366
1371
|
OpenTagName,
|
|
1367
1372
|
AttrName,
|
|
1368
1373
|
AttrValue,
|
|
1369
|
-
Import
|
|
1374
|
+
Import,
|
|
1375
|
+
Static: Import
|
|
1370
1376
|
};
|
|
1371
1377
|
var doComplete = async (doc, params) => {
|
|
1372
1378
|
const file = getMarkoFile(doc);
|
|
1373
1379
|
const offset = doc.offsetAt(params.position);
|
|
1374
1380
|
const node = file.parsed.nodeAt(offset);
|
|
1375
1381
|
return {
|
|
1376
|
-
items: await handlers[
|
|
1382
|
+
items: await handlers[import_language_tools8.NodeType[node.type]]?.({
|
|
1377
1383
|
file,
|
|
1378
1384
|
params,
|
|
1379
1385
|
offset,
|
|
@@ -1384,10 +1390,10 @@ var doComplete = async (doc, params) => {
|
|
|
1384
1390
|
};
|
|
1385
1391
|
|
|
1386
1392
|
// src/service/marko/definition/index.ts
|
|
1387
|
-
var
|
|
1393
|
+
var import_language_tools11 = require("@marko/language-tools");
|
|
1388
1394
|
|
|
1389
1395
|
// src/service/marko/definition/AttrName.ts
|
|
1390
|
-
var
|
|
1396
|
+
var import_language_tools9 = require("@marko/language-tools");
|
|
1391
1397
|
var import_fs2 = __toESM(require("fs"));
|
|
1392
1398
|
var import_vscode_uri4 = require("vscode-uri");
|
|
1393
1399
|
|
|
@@ -1448,8 +1454,8 @@ function AttrName2({
|
|
|
1448
1454
|
tagDefSource
|
|
1449
1455
|
);
|
|
1450
1456
|
if (match && match.index) {
|
|
1451
|
-
range = (0,
|
|
1452
|
-
(0,
|
|
1457
|
+
range = (0, import_language_tools9.getLocation)(
|
|
1458
|
+
(0, import_language_tools9.getLines)(tagDefSource),
|
|
1453
1459
|
match.index,
|
|
1454
1460
|
match.index + match[0].length
|
|
1455
1461
|
);
|
|
@@ -1466,7 +1472,7 @@ function AttrName2({
|
|
|
1466
1472
|
}
|
|
1467
1473
|
|
|
1468
1474
|
// src/service/marko/definition/OpenTagName.ts
|
|
1469
|
-
var
|
|
1475
|
+
var import_language_tools10 = require("@marko/language-tools");
|
|
1470
1476
|
var import_fs3 = __toESM(require("fs"));
|
|
1471
1477
|
var import_path5 = __toESM(require("path"));
|
|
1472
1478
|
var import_vscode_uri5 = require("vscode-uri");
|
|
@@ -1477,7 +1483,7 @@ function OpenTagName2({
|
|
|
1477
1483
|
const tag = node.parent;
|
|
1478
1484
|
let tagDef;
|
|
1479
1485
|
let range = START_LOCATION;
|
|
1480
|
-
if (tag.type ===
|
|
1486
|
+
if (tag.type === import_language_tools10.NodeType.AttrTag) {
|
|
1481
1487
|
tagDef = tag.owner && tag.owner.nameText ? lookup.getTag(tag.owner.nameText) : void 0;
|
|
1482
1488
|
} else {
|
|
1483
1489
|
tagDef = tag.nameText ? lookup.getTag(tag.nameText) : void 0;
|
|
@@ -1495,8 +1501,8 @@ function OpenTagName2({
|
|
|
1495
1501
|
tagDefSource
|
|
1496
1502
|
);
|
|
1497
1503
|
if (match && match.index) {
|
|
1498
|
-
range = (0,
|
|
1499
|
-
(0,
|
|
1504
|
+
range = (0, import_language_tools10.getLocation)(
|
|
1505
|
+
(0, import_language_tools10.getLines)(tagDefSource),
|
|
1500
1506
|
match.index,
|
|
1501
1507
|
match.index + match[0].length
|
|
1502
1508
|
);
|
|
@@ -1521,7 +1527,7 @@ var findDefinition = async (doc, params) => {
|
|
|
1521
1527
|
const file = getMarkoFile(doc);
|
|
1522
1528
|
const offset = doc.offsetAt(params.position);
|
|
1523
1529
|
const node = file.parsed.nodeAt(offset);
|
|
1524
|
-
return await handlers2[
|
|
1530
|
+
return await handlers2[import_language_tools11.NodeType[node.type]]?.({
|
|
1525
1531
|
file,
|
|
1526
1532
|
params,
|
|
1527
1533
|
offset,
|
|
@@ -1530,7 +1536,7 @@ var findDefinition = async (doc, params) => {
|
|
|
1530
1536
|
};
|
|
1531
1537
|
|
|
1532
1538
|
// src/service/marko/document-links.ts
|
|
1533
|
-
var
|
|
1539
|
+
var import_language_tools12 = require("@marko/language-tools");
|
|
1534
1540
|
var importTagReg2 = /(['"])<((?:[^'"\\>]|\\.)*)>?\1/g;
|
|
1535
1541
|
var findDocumentLinks = async (doc) => {
|
|
1536
1542
|
return processDoc(doc, extractDocumentLinks);
|
|
@@ -1549,14 +1555,14 @@ function extractDocumentLinks({
|
|
|
1549
1555
|
const { program, read } = parsed;
|
|
1550
1556
|
const visit = (node) => {
|
|
1551
1557
|
switch (node.type) {
|
|
1552
|
-
case
|
|
1558
|
+
case import_language_tools12.NodeType.AttrTag:
|
|
1553
1559
|
if (node.body) {
|
|
1554
1560
|
for (const child of node.body) {
|
|
1555
1561
|
visit(child);
|
|
1556
1562
|
}
|
|
1557
1563
|
}
|
|
1558
1564
|
break;
|
|
1559
|
-
case
|
|
1565
|
+
case import_language_tools12.NodeType.Tag:
|
|
1560
1566
|
if (node.attrs && node.nameText) {
|
|
1561
1567
|
for (const attr of node.attrs) {
|
|
1562
1568
|
if (isDocumentLinkAttr(code, node, attr)) {
|
|
@@ -1582,7 +1588,7 @@ function extractDocumentLinks({
|
|
|
1582
1588
|
}
|
|
1583
1589
|
};
|
|
1584
1590
|
for (const node of program.static) {
|
|
1585
|
-
if (node.type ===
|
|
1591
|
+
if (node.type === import_language_tools12.NodeType.Import) {
|
|
1586
1592
|
importTagReg2.lastIndex = 0;
|
|
1587
1593
|
const value = parsed.read(node);
|
|
1588
1594
|
const match = importTagReg2.exec(value);
|
|
@@ -1609,7 +1615,7 @@ function extractDocumentLinks({
|
|
|
1609
1615
|
}
|
|
1610
1616
|
|
|
1611
1617
|
// src/service/marko/document-symbols.ts
|
|
1612
|
-
var
|
|
1618
|
+
var import_language_tools13 = require("@marko/language-tools");
|
|
1613
1619
|
var import_vscode_languageserver7 = require("vscode-languageserver");
|
|
1614
1620
|
var findDocumentSymbols = async (doc) => processDoc(doc, extractDocumentSymbols);
|
|
1615
1621
|
function extractDocumentSymbols({
|
|
@@ -1625,10 +1631,10 @@ function extractDocumentSymbols({
|
|
|
1625
1631
|
const { program } = parsed;
|
|
1626
1632
|
const visit = (node) => {
|
|
1627
1633
|
switch (node.type) {
|
|
1628
|
-
case
|
|
1629
|
-
case
|
|
1634
|
+
case import_language_tools13.NodeType.Tag:
|
|
1635
|
+
case import_language_tools13.NodeType.AttrTag:
|
|
1630
1636
|
symbols.push({
|
|
1631
|
-
name: (node.type ===
|
|
1637
|
+
name: (node.type === import_language_tools13.NodeType.AttrTag ? node.nameText?.slice(node.nameText.indexOf("@")) : node.nameText) || "<${...}>",
|
|
1632
1638
|
kind: node.nameText && lookup.getTag(node.nameText)?.html && import_vscode_languageserver7.SymbolKind.Property || import_vscode_languageserver7.SymbolKind.Class,
|
|
1633
1639
|
location: {
|
|
1634
1640
|
uri,
|
|
@@ -1650,7 +1656,7 @@ function extractDocumentSymbols({
|
|
|
1650
1656
|
}
|
|
1651
1657
|
|
|
1652
1658
|
// src/service/marko/format.ts
|
|
1653
|
-
var
|
|
1659
|
+
var import_language_tools14 = require("@marko/language-tools");
|
|
1654
1660
|
var prettier = __toESM(require("prettier"));
|
|
1655
1661
|
var markoPrettier = __toESM(require("prettier-plugin-marko"));
|
|
1656
1662
|
var import_vscode_languageserver8 = require("vscode-languageserver");
|
|
@@ -1697,7 +1703,7 @@ async function formatDocument(doc, formatOptions, cancel) {
|
|
|
1697
1703
|
editorconfig: true
|
|
1698
1704
|
}).catch(() => null) : null
|
|
1699
1705
|
};
|
|
1700
|
-
markoPrettier.setCompiler(
|
|
1706
|
+
markoPrettier.setCompiler(import_language_tools14.Project.getCompiler(dir), import_language_tools14.Project.getConfig(dir));
|
|
1701
1707
|
if (cancel?.isCancellationRequested) return;
|
|
1702
1708
|
return [
|
|
1703
1709
|
import_vscode_languageserver8.TextEdit.replace(
|
|
@@ -1717,7 +1723,7 @@ var format2 = async (doc, params, cancel) => {
|
|
|
1717
1723
|
};
|
|
1718
1724
|
|
|
1719
1725
|
// src/service/marko/hover/index.ts
|
|
1720
|
-
var
|
|
1726
|
+
var import_language_tools15 = require("@marko/language-tools");
|
|
1721
1727
|
|
|
1722
1728
|
// src/service/marko/hover/OpenTagName.ts
|
|
1723
1729
|
function OpenTagName3({
|
|
@@ -1750,7 +1756,7 @@ var doHover = async (doc, params) => {
|
|
|
1750
1756
|
const file = getMarkoFile(doc);
|
|
1751
1757
|
const offset = doc.offsetAt(params.position);
|
|
1752
1758
|
const node = file.parsed.nodeAt(offset);
|
|
1753
|
-
return await handlers3[
|
|
1759
|
+
return await handlers3[import_language_tools15.NodeType[node.type]]?.({
|
|
1754
1760
|
file,
|
|
1755
1761
|
params,
|
|
1756
1762
|
offset,
|
|
@@ -1760,7 +1766,7 @@ var doHover = async (doc, params) => {
|
|
|
1760
1766
|
|
|
1761
1767
|
// src/service/marko/validate.ts
|
|
1762
1768
|
var import_babel_utils = require("@marko/babel-utils");
|
|
1763
|
-
var
|
|
1769
|
+
var import_language_tools16 = require("@marko/language-tools");
|
|
1764
1770
|
var import_path6 = __toESM(require("path"));
|
|
1765
1771
|
var import_vscode_languageserver9 = require("vscode-languageserver");
|
|
1766
1772
|
var markoErrorRegExp = /^(.+?)\.marko(?:\((\d+)(?:\s*,\s*(\d+))?\))?: (.*)$/gm;
|
|
@@ -1786,7 +1792,7 @@ var doValidate = (doc) => {
|
|
|
1786
1792
|
const filename = getFSPath(doc);
|
|
1787
1793
|
const diagnostics = [];
|
|
1788
1794
|
try {
|
|
1789
|
-
const { meta } =
|
|
1795
|
+
const { meta } = import_language_tools16.Project.getCompiler(
|
|
1790
1796
|
filename && import_path6.default.dirname(filename)
|
|
1791
1797
|
).compileSync(doc.getText(), filename || "untitled.marko", compilerConfig);
|
|
1792
1798
|
if (meta.diagnostics) {
|
|
@@ -1923,7 +1929,7 @@ var marko_default = {
|
|
|
1923
1929
|
};
|
|
1924
1930
|
|
|
1925
1931
|
// src/service/script/index.ts
|
|
1926
|
-
var
|
|
1932
|
+
var import_language_tools18 = require("@marko/language-tools");
|
|
1927
1933
|
var import_path8 = __toESM(require("path"));
|
|
1928
1934
|
var prettier2 = __toESM(require("prettier"));
|
|
1929
1935
|
var import_relative_import_path = require("relative-import-path");
|
|
@@ -1932,12 +1938,13 @@ var import_vscode_languageserver10 = require("vscode-languageserver");
|
|
|
1932
1938
|
var import_vscode_uri6 = require("vscode-uri");
|
|
1933
1939
|
|
|
1934
1940
|
// src/ts-plugin/host.ts
|
|
1935
|
-
var
|
|
1941
|
+
var import_language_tools17 = require("@marko/language-tools");
|
|
1936
1942
|
var import_path7 = __toESM(require("path"));
|
|
1937
1943
|
var fsPathReg = /^(?:[./\\]|[A-Z]:)/i;
|
|
1938
1944
|
var modulePartsReg = /^((?:@(?:[^/]+)\/)?(?:[^/]+))(.*)$/;
|
|
1945
|
+
var importTagReg3 = /<([^>]+)>/;
|
|
1939
1946
|
function patch(ts2, configFile, extractCache3, resolutionCache, host, ps) {
|
|
1940
|
-
const processors =
|
|
1947
|
+
const processors = import_language_tools17.Processors.create({
|
|
1941
1948
|
ts: ts2,
|
|
1942
1949
|
host,
|
|
1943
1950
|
configFile
|
|
@@ -1999,7 +2006,7 @@ function patch(ts2, configFile, extractCache3, resolutionCache, host, ps) {
|
|
|
1999
2006
|
host.readDirectory = (path9, extensions, exclude, include, depth) => {
|
|
2000
2007
|
return readDirectory2(
|
|
2001
2008
|
path9,
|
|
2002
|
-
extensions?.concat(
|
|
2009
|
+
extensions?.concat(import_language_tools17.Processors.extensions),
|
|
2003
2010
|
exclude,
|
|
2004
2011
|
include,
|
|
2005
2012
|
depth
|
|
@@ -2013,7 +2020,18 @@ function patch(ts2, configFile, extractCache3, resolutionCache, host, ps) {
|
|
|
2013
2020
|
let resolvedModules;
|
|
2014
2021
|
for (let i = 0; i < moduleLiterals.length; i++) {
|
|
2015
2022
|
const moduleLiteral = moduleLiterals[i];
|
|
2016
|
-
|
|
2023
|
+
let moduleName = moduleLiteral.text;
|
|
2024
|
+
const tagNameMatch = importTagReg3.exec(moduleName);
|
|
2025
|
+
if (tagNameMatch) {
|
|
2026
|
+
const [, tagName] = tagNameMatch;
|
|
2027
|
+
const tagDef = import_language_tools17.Project.getTagLookup(
|
|
2028
|
+
import_path7.default.dirname(containingFile)
|
|
2029
|
+
).getTag(tagName);
|
|
2030
|
+
const tagFileName = tagDef && (tagDef.template || tagDef.renderer);
|
|
2031
|
+
if (tagFileName) {
|
|
2032
|
+
moduleName = tagFileName;
|
|
2033
|
+
}
|
|
2034
|
+
}
|
|
2017
2035
|
const processor = moduleName[0] !== "*" ? getProcessor(moduleName) : void 0;
|
|
2018
2036
|
if (processor) {
|
|
2019
2037
|
let resolvedFileName;
|
|
@@ -2046,12 +2064,12 @@ function patch(ts2, configFile, extractCache3, resolutionCache, host, ps) {
|
|
|
2046
2064
|
}
|
|
2047
2065
|
}
|
|
2048
2066
|
if (resolvedFileName) {
|
|
2049
|
-
if ((0,
|
|
2067
|
+
if ((0, import_language_tools17.isDefinitionFile)(resolvedFileName)) {
|
|
2050
2068
|
if (!host.fileExists(resolvedFileName)) {
|
|
2051
2069
|
resolvedFileName = void 0;
|
|
2052
2070
|
}
|
|
2053
2071
|
} else {
|
|
2054
|
-
const ext = (0,
|
|
2072
|
+
const ext = (0, import_language_tools17.getExt)(resolvedFileName);
|
|
2055
2073
|
const definitionFile = `${resolvedFileName.slice(
|
|
2056
2074
|
0,
|
|
2057
2075
|
-ext.length
|
|
@@ -2099,7 +2117,7 @@ function patch(ts2, configFile, extractCache3, resolutionCache, host, ps) {
|
|
|
2099
2117
|
}
|
|
2100
2118
|
return host;
|
|
2101
2119
|
function getProcessor(fileName) {
|
|
2102
|
-
const ext = (0,
|
|
2120
|
+
const ext = (0, import_language_tools17.getExt)(fileName);
|
|
2103
2121
|
return ext ? processors[ext] : void 0;
|
|
2104
2122
|
}
|
|
2105
2123
|
}
|
|
@@ -2334,7 +2352,7 @@ var ScriptService = {
|
|
|
2334
2352
|
if (!filename) return;
|
|
2335
2353
|
const tsProject = getTSProject(filename);
|
|
2336
2354
|
const extracted = processScript(doc, tsProject);
|
|
2337
|
-
const lang =
|
|
2355
|
+
const lang = import_language_tools18.Project.getScriptLang(
|
|
2338
2356
|
filename,
|
|
2339
2357
|
tsProject.markoScriptLang,
|
|
2340
2358
|
import_tsserverlibrary.default,
|
|
@@ -2342,10 +2360,10 @@ var ScriptService = {
|
|
|
2342
2360
|
);
|
|
2343
2361
|
const generated = extracted.toString();
|
|
2344
2362
|
const content = await prettier2.format(generated, {
|
|
2345
|
-
parser: lang ===
|
|
2363
|
+
parser: lang === import_language_tools18.ScriptLang.ts ? "typescript" : "babel"
|
|
2346
2364
|
}).catch(() => generated);
|
|
2347
2365
|
return {
|
|
2348
|
-
language: lang ===
|
|
2366
|
+
language: lang === import_language_tools18.ScriptLang.ts ? "typescript" : "javascript",
|
|
2349
2367
|
content
|
|
2350
2368
|
};
|
|
2351
2369
|
}
|
|
@@ -2684,13 +2702,13 @@ ${documentation}`;
|
|
|
2684
2702
|
function processScript(doc, tsProject) {
|
|
2685
2703
|
return processDoc(doc, ({ filename, parsed, lookup, dirname }) => {
|
|
2686
2704
|
const { host, markoScriptLang } = tsProject;
|
|
2687
|
-
return (0,
|
|
2705
|
+
return (0, import_language_tools18.extractScript)({
|
|
2688
2706
|
ts: import_tsserverlibrary.default,
|
|
2689
2707
|
parsed,
|
|
2690
2708
|
lookup,
|
|
2691
|
-
translator:
|
|
2692
|
-
scriptLang: filename ?
|
|
2693
|
-
runtimeTypesCode:
|
|
2709
|
+
translator: import_language_tools18.Project.getConfig(dirname).translator,
|
|
2710
|
+
scriptLang: filename ? import_language_tools18.Project.getScriptLang(filename, markoScriptLang, import_tsserverlibrary.default, host) : markoScriptLang,
|
|
2711
|
+
runtimeTypesCode: import_language_tools18.Project.getTypeLibs(tsProject.rootDir, import_tsserverlibrary.default, host)?.markoTypesCode
|
|
2694
2712
|
});
|
|
2695
2713
|
});
|
|
2696
2714
|
}
|
|
@@ -2701,9 +2719,9 @@ function getInsertModuleStatementOffset(parsed) {
|
|
|
2701
2719
|
let lastImport;
|
|
2702
2720
|
for (const node of program.static) {
|
|
2703
2721
|
switch (node.type) {
|
|
2704
|
-
case
|
|
2722
|
+
case import_language_tools18.NodeType.Export:
|
|
2705
2723
|
return node.start;
|
|
2706
|
-
case
|
|
2724
|
+
case import_language_tools18.NodeType.Import:
|
|
2707
2725
|
lastImport = node;
|
|
2708
2726
|
break;
|
|
2709
2727
|
}
|
|
@@ -2743,7 +2761,7 @@ function docLocationAtTextSpan(doc, { start, length }) {
|
|
|
2743
2761
|
function getTSConfigFile(fileName) {
|
|
2744
2762
|
let configFile;
|
|
2745
2763
|
const docFsDir = import_path8.default.dirname(fileName);
|
|
2746
|
-
const cache =
|
|
2764
|
+
const cache = import_language_tools18.Project.getCache(docFsDir);
|
|
2747
2765
|
let configFileCache = cache.get(getTSConfigFile);
|
|
2748
2766
|
if (configFileCache) {
|
|
2749
2767
|
configFile = configFileCache.get(docFsDir);
|
|
@@ -2759,15 +2777,15 @@ function getTSConfigFile(fileName) {
|
|
|
2759
2777
|
}
|
|
2760
2778
|
function getTSProject(docFsPath) {
|
|
2761
2779
|
let configFile;
|
|
2762
|
-
let markoScriptLang =
|
|
2780
|
+
let markoScriptLang = import_language_tools18.ScriptLang.js;
|
|
2763
2781
|
if (docFsPath) {
|
|
2764
2782
|
configFile = getTSConfigFile(docFsPath);
|
|
2765
2783
|
if (configFile?.endsWith("tsconfig.json")) {
|
|
2766
|
-
markoScriptLang =
|
|
2784
|
+
markoScriptLang = import_language_tools18.ScriptLang.ts;
|
|
2767
2785
|
}
|
|
2768
2786
|
}
|
|
2769
2787
|
const basePath = configFile && import_path8.default.dirname(configFile) || process.cwd();
|
|
2770
|
-
const cache =
|
|
2788
|
+
const cache = import_language_tools18.Project.getCache(configFile && basePath);
|
|
2771
2789
|
let projectCache = cache.get(getTSProject);
|
|
2772
2790
|
let cached;
|
|
2773
2791
|
if (projectCache) {
|
|
@@ -2903,7 +2921,7 @@ function filenameToURI(filename) {
|
|
|
2903
2921
|
return import_vscode_uri6.URI.file(filename).toString();
|
|
2904
2922
|
}
|
|
2905
2923
|
async function getPreferences(scriptLang) {
|
|
2906
|
-
const configName = scriptLang ===
|
|
2924
|
+
const configName = scriptLang === import_language_tools18.ScriptLang.js ? "javascript" : "typescript";
|
|
2907
2925
|
const [preferencesConfig, suggestConfig, inlayHintsConfig] = await Promise.all([
|
|
2908
2926
|
getConfig(`${configName}.preferences`),
|
|
2909
2927
|
getConfig(`${configName}.suggest`),
|
|
@@ -3055,7 +3073,7 @@ function getCanonicalFileName(fileName) {
|
|
|
3055
3073
|
}
|
|
3056
3074
|
|
|
3057
3075
|
// src/service/style/index.ts
|
|
3058
|
-
var
|
|
3076
|
+
var import_language_tools19 = require("@marko/language-tools");
|
|
3059
3077
|
var import_vscode_css_languageservice2 = require("vscode-css-languageservice");
|
|
3060
3078
|
var import_vscode_languageserver11 = require("vscode-languageserver");
|
|
3061
3079
|
var import_vscode_languageserver_textdocument2 = require("vscode-languageserver-textdocument");
|
|
@@ -3355,7 +3373,7 @@ var StyleSheetService = {
|
|
|
3355
3373
|
function processStyle(doc) {
|
|
3356
3374
|
return processDoc(doc, ({ uri, version, parsed, lookup }) => {
|
|
3357
3375
|
const result = [];
|
|
3358
|
-
for (const [ext, extracted] of (0,
|
|
3376
|
+
for (const [ext, extracted] of (0, import_language_tools19.extractStyle)({
|
|
3359
3377
|
parsed,
|
|
3360
3378
|
lookup
|
|
3361
3379
|
})) {
|
|
@@ -3885,7 +3903,7 @@ for (const command in service.commands) {
|
|
|
3885
3903
|
}
|
|
3886
3904
|
function validateDocs() {
|
|
3887
3905
|
queueDiagnostic();
|
|
3888
|
-
|
|
3906
|
+
import_language_tools20.Project.clearCaches();
|
|
3889
3907
|
}
|
|
3890
3908
|
function queueDiagnostic() {
|
|
3891
3909
|
clearTimeout(diagnosticTimeout);
|