@marko/language-server 1.1.1 → 1.1.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/dist/index.js +32 -24
- package/dist/index.js.map +3 -3
- package/dist/index.mjs +17 -9
- package/dist/index.mjs.map +3 -3
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -25,13 +25,17 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
25
25
|
// src/index.ts
|
|
26
26
|
var import_util2 = require("util");
|
|
27
27
|
var import_node = require("vscode-languageserver/node");
|
|
28
|
-
var
|
|
28
|
+
var import_language_tools18 = require("@marko/language-tools");
|
|
29
29
|
|
|
30
30
|
// src/utils/file.ts
|
|
31
31
|
var import_path = __toESM(require("path"));
|
|
32
32
|
var import_language_tools = require("@marko/language-tools");
|
|
33
33
|
var import_vscode_uri = require("vscode-uri");
|
|
34
34
|
var processorCaches = /* @__PURE__ */ new WeakMap();
|
|
35
|
+
function getFSDir(doc) {
|
|
36
|
+
const filename = getFSPath(doc);
|
|
37
|
+
return filename ? import_path.default.dirname(filename) : void 0;
|
|
38
|
+
}
|
|
35
39
|
function getFSPath(doc) {
|
|
36
40
|
return import_vscode_uri.URI.parse(doc.uri).fsPath;
|
|
37
41
|
}
|
|
@@ -1950,13 +1954,17 @@ function extractDocumentSymbols({
|
|
|
1950
1954
|
var import_vscode_languageserver9 = require("vscode-languageserver");
|
|
1951
1955
|
var prettier = __toESM(require("prettier"));
|
|
1952
1956
|
var markoPrettier = __toESM(require("prettier-plugin-marko"));
|
|
1957
|
+
var import_language_tools14 = require("@marko/language-tools");
|
|
1953
1958
|
var format2 = async (doc, params, cancel) => {
|
|
1954
1959
|
try {
|
|
1960
|
+
const dir = getFSDir(doc);
|
|
1955
1961
|
const filepath = getFSPath(doc);
|
|
1956
1962
|
const text = doc.getText();
|
|
1957
1963
|
const options = {
|
|
1958
1964
|
parser: "marko",
|
|
1959
1965
|
filepath,
|
|
1966
|
+
markoCompiler: import_language_tools14.Project.getCompiler(dir),
|
|
1967
|
+
markoCompilerConfig: import_language_tools14.Project.getConfig(dir),
|
|
1960
1968
|
plugins: [markoPrettier],
|
|
1961
1969
|
tabWidth: params.options.tabSize,
|
|
1962
1970
|
useTabs: params.options.insertSpaces === false,
|
|
@@ -1999,20 +2007,20 @@ var import_tsserverlibrary = __toESM(require("typescript/lib/tsserverlibrary"));
|
|
|
1999
2007
|
var import_vscode_languageserver10 = require("vscode-languageserver");
|
|
2000
2008
|
var import_vscode_uri6 = require("vscode-uri");
|
|
2001
2009
|
var prettier2 = __toESM(require("prettier"));
|
|
2002
|
-
var
|
|
2010
|
+
var import_language_tools16 = require("@marko/language-tools");
|
|
2003
2011
|
|
|
2004
2012
|
// src/ts-plugin/host.ts
|
|
2005
2013
|
var import_path6 = __toESM(require("path"));
|
|
2006
|
-
var
|
|
2014
|
+
var import_language_tools15 = require("@marko/language-tools");
|
|
2007
2015
|
var fsPathReg = /^(?:[./\\]|[A-Z]:)/i;
|
|
2008
2016
|
var modulePartsReg = /^((?:@(?:[^/]+)\/)?(?:[^/]+))(.*)$/;
|
|
2009
|
-
|
|
2017
|
+
import_language_tools15.Project.setDefaultTypePaths({
|
|
2010
2018
|
internalTypesFile: import_path6.default.join(__dirname, "marko.internal.d.ts"),
|
|
2011
2019
|
markoTypesFile: import_path6.default.join(__dirname, "marko.runtime.d.ts")
|
|
2012
2020
|
});
|
|
2013
2021
|
function patch(ts2, configFile, extractCache3, resolutionCache, host, ps) {
|
|
2014
2022
|
var _a, _b, _c;
|
|
2015
|
-
const processors =
|
|
2023
|
+
const processors = import_language_tools15.Processors.create({
|
|
2016
2024
|
ts: ts2,
|
|
2017
2025
|
host,
|
|
2018
2026
|
configFile
|
|
@@ -2079,7 +2087,7 @@ function patch(ts2, configFile, extractCache3, resolutionCache, host, ps) {
|
|
|
2079
2087
|
host.readDirectory = (path8, extensions, exclude, include, depth) => {
|
|
2080
2088
|
return readDirectory2(
|
|
2081
2089
|
path8,
|
|
2082
|
-
extensions == null ? void 0 : extensions.concat(
|
|
2090
|
+
extensions == null ? void 0 : extensions.concat(import_language_tools15.Processors.extensions),
|
|
2083
2091
|
exclude,
|
|
2084
2092
|
include,
|
|
2085
2093
|
depth
|
|
@@ -2126,12 +2134,12 @@ function patch(ts2, configFile, extractCache3, resolutionCache, host, ps) {
|
|
|
2126
2134
|
}
|
|
2127
2135
|
}
|
|
2128
2136
|
if (resolvedFileName) {
|
|
2129
|
-
if ((0,
|
|
2137
|
+
if ((0, import_language_tools15.isDefinitionFile)(resolvedFileName)) {
|
|
2130
2138
|
if (!host.fileExists(resolvedFileName)) {
|
|
2131
2139
|
resolvedFileName = void 0;
|
|
2132
2140
|
}
|
|
2133
2141
|
} else {
|
|
2134
|
-
const ext = (0,
|
|
2142
|
+
const ext = (0, import_language_tools15.getExt)(resolvedFileName);
|
|
2135
2143
|
const definitionFile = `${resolvedFileName.slice(
|
|
2136
2144
|
0,
|
|
2137
2145
|
-ext.length
|
|
@@ -2179,7 +2187,7 @@ function patch(ts2, configFile, extractCache3, resolutionCache, host, ps) {
|
|
|
2179
2187
|
}
|
|
2180
2188
|
return host;
|
|
2181
2189
|
function getProcessor(fileName) {
|
|
2182
|
-
const ext = (0,
|
|
2190
|
+
const ext = (0, import_language_tools15.getExt)(fileName);
|
|
2183
2191
|
return ext ? processors[ext] : void 0;
|
|
2184
2192
|
}
|
|
2185
2193
|
}
|
|
@@ -2385,7 +2393,7 @@ var ScriptService = {
|
|
|
2385
2393
|
return;
|
|
2386
2394
|
const tsProject = getTSProject(filename);
|
|
2387
2395
|
const extracted = processScript(doc, tsProject);
|
|
2388
|
-
const lang =
|
|
2396
|
+
const lang = import_language_tools16.Project.getScriptLang(
|
|
2389
2397
|
filename,
|
|
2390
2398
|
tsProject.markoScriptLang,
|
|
2391
2399
|
import_tsserverlibrary.default,
|
|
@@ -2395,14 +2403,14 @@ var ScriptService = {
|
|
|
2395
2403
|
const content = (() => {
|
|
2396
2404
|
try {
|
|
2397
2405
|
return prettier2.format(generated, {
|
|
2398
|
-
parser: lang ===
|
|
2406
|
+
parser: lang === import_language_tools16.ScriptLang.ts ? "typescript" : "babel"
|
|
2399
2407
|
});
|
|
2400
2408
|
} catch {
|
|
2401
2409
|
return generated;
|
|
2402
2410
|
}
|
|
2403
2411
|
})();
|
|
2404
2412
|
return {
|
|
2405
|
-
language: lang ===
|
|
2413
|
+
language: lang === import_language_tools16.ScriptLang.ts ? "typescript" : "javascript",
|
|
2406
2414
|
content
|
|
2407
2415
|
};
|
|
2408
2416
|
}
|
|
@@ -2765,12 +2773,12 @@ function processScript(doc, tsProject) {
|
|
|
2765
2773
|
return processDoc(doc, ({ filename, parsed, lookup }) => {
|
|
2766
2774
|
var _a;
|
|
2767
2775
|
const { host, markoScriptLang } = tsProject;
|
|
2768
|
-
return (0,
|
|
2776
|
+
return (0, import_language_tools16.extractScript)({
|
|
2769
2777
|
ts: import_tsserverlibrary.default,
|
|
2770
2778
|
parsed,
|
|
2771
2779
|
lookup,
|
|
2772
|
-
scriptLang:
|
|
2773
|
-
runtimeTypesCode: (_a =
|
|
2780
|
+
scriptLang: import_language_tools16.Project.getScriptLang(filename, markoScriptLang, import_tsserverlibrary.default, host),
|
|
2781
|
+
runtimeTypesCode: (_a = import_language_tools16.Project.getTypeLibs(tsProject.rootDir, import_tsserverlibrary.default, host)) == null ? void 0 : _a.markoTypesCode
|
|
2774
2782
|
});
|
|
2775
2783
|
});
|
|
2776
2784
|
}
|
|
@@ -2781,9 +2789,9 @@ function getInsertModuleStatementOffset(parsed) {
|
|
|
2781
2789
|
let lastImport;
|
|
2782
2790
|
for (const node of program.static) {
|
|
2783
2791
|
switch (node.type) {
|
|
2784
|
-
case
|
|
2792
|
+
case import_language_tools16.NodeType.Export:
|
|
2785
2793
|
return node.start;
|
|
2786
|
-
case
|
|
2794
|
+
case import_language_tools16.NodeType.Import:
|
|
2787
2795
|
lastImport = node;
|
|
2788
2796
|
break;
|
|
2789
2797
|
}
|
|
@@ -2824,7 +2832,7 @@ function docLocationAtTextSpan(doc, { start, length }) {
|
|
|
2824
2832
|
function getTSProject(docFsPath) {
|
|
2825
2833
|
var _a;
|
|
2826
2834
|
let configFile;
|
|
2827
|
-
let markoScriptLang =
|
|
2835
|
+
let markoScriptLang = import_language_tools16.ScriptLang.js;
|
|
2828
2836
|
if (docFsPath) {
|
|
2829
2837
|
configFile = import_tsserverlibrary.default.findConfigFile(
|
|
2830
2838
|
docFsPath,
|
|
@@ -2832,7 +2840,7 @@ function getTSProject(docFsPath) {
|
|
|
2832
2840
|
"tsconfig.json"
|
|
2833
2841
|
);
|
|
2834
2842
|
if (configFile) {
|
|
2835
|
-
markoScriptLang =
|
|
2843
|
+
markoScriptLang = import_language_tools16.ScriptLang.ts;
|
|
2836
2844
|
} else {
|
|
2837
2845
|
configFile = import_tsserverlibrary.default.findConfigFile(
|
|
2838
2846
|
docFsPath,
|
|
@@ -2842,7 +2850,7 @@ function getTSProject(docFsPath) {
|
|
|
2842
2850
|
}
|
|
2843
2851
|
}
|
|
2844
2852
|
const rootDir = configFile && import_path7.default.dirname(configFile) || process.cwd();
|
|
2845
|
-
const cache =
|
|
2853
|
+
const cache = import_language_tools16.Project.getCache(configFile && rootDir);
|
|
2846
2854
|
let projectCache = cache.get(getTSProject);
|
|
2847
2855
|
let cached;
|
|
2848
2856
|
if (projectCache) {
|
|
@@ -2981,7 +2989,7 @@ function filenameToURI(filename) {
|
|
|
2981
2989
|
}
|
|
2982
2990
|
async function getPreferences(scriptLang) {
|
|
2983
2991
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
2984
|
-
const configName = scriptLang ===
|
|
2992
|
+
const configName = scriptLang === import_language_tools16.ScriptLang.js ? "javascript" : "typescript";
|
|
2985
2993
|
const [preferencesConfig, suggestConfig, inlayHintsConfig] = await Promise.all([
|
|
2986
2994
|
getConfig(`${configName}.preferences`),
|
|
2987
2995
|
getConfig(`${configName}.suggest`),
|
|
@@ -3138,7 +3146,7 @@ function getCanonicalFileName(fileName) {
|
|
|
3138
3146
|
var import_vscode_css_languageservice2 = require("vscode-css-languageservice");
|
|
3139
3147
|
var import_vscode_languageserver11 = require("vscode-languageserver");
|
|
3140
3148
|
var import_vscode_languageserver_textdocument2 = require("vscode-languageserver-textdocument");
|
|
3141
|
-
var
|
|
3149
|
+
var import_language_tools17 = require("@marko/language-tools");
|
|
3142
3150
|
var services = {
|
|
3143
3151
|
".css": import_vscode_css_languageservice2.getCSSLanguageService,
|
|
3144
3152
|
".less": import_vscode_css_languageservice2.getLESSLanguageService,
|
|
@@ -3445,7 +3453,7 @@ function processStyle(doc) {
|
|
|
3445
3453
|
return processDoc(doc, ({ uri, version, parsed, lookup }) => {
|
|
3446
3454
|
var _a;
|
|
3447
3455
|
const result = [];
|
|
3448
|
-
for (const [ext, extracted] of (0,
|
|
3456
|
+
for (const [ext, extracted] of (0, import_language_tools17.extractStyle)({
|
|
3449
3457
|
parsed,
|
|
3450
3458
|
lookup
|
|
3451
3459
|
})) {
|
|
@@ -4029,7 +4037,7 @@ for (const command in service.commands) {
|
|
|
4029
4037
|
}
|
|
4030
4038
|
function validateDocs() {
|
|
4031
4039
|
queueDiagnostic();
|
|
4032
|
-
|
|
4040
|
+
import_language_tools18.Project.clearCaches();
|
|
4033
4041
|
}
|
|
4034
4042
|
function queueDiagnostic() {
|
|
4035
4043
|
clearTimeout(diagnosticTimeout);
|