@marko/language-server 1.0.14 → 1.0.16
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 +112 -19
- package/dist/index.js.map +2 -2
- package/dist/index.mjs +112 -19
- package/dist/index.mjs.map +2 -2
- package/package.json +12 -12
package/dist/index.js
CHANGED
|
@@ -748,32 +748,114 @@ var doComplete = async (doc, params) => {
|
|
|
748
748
|
var import_path4 = __toESM(require("path"));
|
|
749
749
|
var import_language_tools6 = require("@marko/language-tools");
|
|
750
750
|
var import_vscode_languageserver7 = require("vscode-languageserver");
|
|
751
|
+
var import_babel_utils = require("@marko/babel-utils");
|
|
751
752
|
var markoErrorRegExp = /^(.+?)\.marko(?:\((\d+)(?:\s*,\s*(\d+))?\))?: (.*)$/gm;
|
|
752
753
|
var doValidate = (doc) => {
|
|
753
754
|
const filename = getFSPath(doc);
|
|
754
755
|
const diagnostics = [];
|
|
755
756
|
try {
|
|
756
|
-
import_language_tools6.Project.getCompiler(
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
757
|
+
const { meta } = import_language_tools6.Project.getCompiler(
|
|
758
|
+
filename && import_path4.default.dirname(filename)
|
|
759
|
+
).compileSync(doc.getText(), filename || "untitled.marko", {
|
|
760
|
+
code: false,
|
|
761
|
+
output: "migrate",
|
|
762
|
+
sourceMaps: false,
|
|
763
|
+
errorRecovery: true,
|
|
764
|
+
babelConfig: {
|
|
765
|
+
caller: {
|
|
766
|
+
name: "@marko/language-server",
|
|
767
|
+
supportsStaticESM: true,
|
|
768
|
+
supportsDynamicImport: true,
|
|
769
|
+
supportsTopLevelAwait: true,
|
|
770
|
+
supportsExportNamespaceFrom: true
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
});
|
|
774
|
+
if (meta.diagnostics) {
|
|
775
|
+
for (const diag of meta.diagnostics) {
|
|
776
|
+
const range = diag.loc ? {
|
|
777
|
+
start: {
|
|
778
|
+
line: diag.loc.start.line - 1,
|
|
779
|
+
character: diag.loc.start.column
|
|
780
|
+
},
|
|
781
|
+
end: {
|
|
782
|
+
line: diag.loc.end.line - 1,
|
|
783
|
+
character: diag.loc.end.column
|
|
770
784
|
}
|
|
785
|
+
} : {
|
|
786
|
+
start: { line: 0, character: 0 },
|
|
787
|
+
end: { line: 0, character: 0 }
|
|
788
|
+
};
|
|
789
|
+
let severity;
|
|
790
|
+
switch (diag.type) {
|
|
791
|
+
case import_babel_utils.DiagnosticType.Warning:
|
|
792
|
+
case import_babel_utils.DiagnosticType.Deprecation:
|
|
793
|
+
severity = import_vscode_languageserver7.DiagnosticSeverity.Warning;
|
|
794
|
+
break;
|
|
795
|
+
case import_babel_utils.DiagnosticType.Suggestion:
|
|
796
|
+
severity = import_vscode_languageserver7.DiagnosticSeverity.Hint;
|
|
797
|
+
break;
|
|
798
|
+
default:
|
|
799
|
+
severity = import_vscode_languageserver7.DiagnosticSeverity.Error;
|
|
800
|
+
break;
|
|
771
801
|
}
|
|
802
|
+
diagnostics.push({
|
|
803
|
+
range,
|
|
804
|
+
source: "marko",
|
|
805
|
+
code: void 0,
|
|
806
|
+
tags: void 0,
|
|
807
|
+
severity,
|
|
808
|
+
message: diag.label
|
|
809
|
+
});
|
|
772
810
|
}
|
|
773
|
-
|
|
774
|
-
} catch (
|
|
811
|
+
}
|
|
812
|
+
} catch (err) {
|
|
813
|
+
addDiagnosticsForError(err, diagnostics);
|
|
814
|
+
}
|
|
815
|
+
return diagnostics;
|
|
816
|
+
};
|
|
817
|
+
function addDiagnosticsForError(err, diagnostics) {
|
|
818
|
+
if (!isError(err)) {
|
|
819
|
+
diagnostics.push({
|
|
820
|
+
range: {
|
|
821
|
+
start: { line: 0, character: 0 },
|
|
822
|
+
end: { line: 0, character: 0 }
|
|
823
|
+
},
|
|
824
|
+
source: "marko",
|
|
825
|
+
code: void 0,
|
|
826
|
+
tags: void 0,
|
|
827
|
+
severity: import_vscode_languageserver7.DiagnosticSeverity.Error,
|
|
828
|
+
message: String(err)
|
|
829
|
+
});
|
|
830
|
+
} else if (isAggregateError(err)) {
|
|
831
|
+
for (const nestedError of err.errors) {
|
|
832
|
+
addDiagnosticsForError(nestedError, diagnostics);
|
|
833
|
+
}
|
|
834
|
+
} else if (isErrorWithLoc(err)) {
|
|
835
|
+
const message = err.label || err.message || err.stack;
|
|
836
|
+
if (!message)
|
|
837
|
+
return;
|
|
838
|
+
const { loc } = err;
|
|
839
|
+
diagnostics.push({
|
|
840
|
+
range: {
|
|
841
|
+
start: {
|
|
842
|
+
line: loc.start.line - 1,
|
|
843
|
+
character: loc.start.column
|
|
844
|
+
},
|
|
845
|
+
end: {
|
|
846
|
+
line: loc.end.line - 1,
|
|
847
|
+
character: loc.end.column
|
|
848
|
+
}
|
|
849
|
+
},
|
|
850
|
+
source: "marko",
|
|
851
|
+
code: void 0,
|
|
852
|
+
tags: void 0,
|
|
853
|
+
severity: import_vscode_languageserver7.DiagnosticSeverity.Error,
|
|
854
|
+
message
|
|
855
|
+
});
|
|
856
|
+
} else {
|
|
775
857
|
let match;
|
|
776
|
-
while (match = markoErrorRegExp.exec(
|
|
858
|
+
while (match = markoErrorRegExp.exec(err.message)) {
|
|
777
859
|
const [, , rawLine, rawCol, message] = match;
|
|
778
860
|
const pos = {
|
|
779
861
|
line: (parseInt(rawLine, 10) || 1) - 1,
|
|
@@ -789,8 +871,19 @@ var doValidate = (doc) => {
|
|
|
789
871
|
});
|
|
790
872
|
}
|
|
791
873
|
}
|
|
792
|
-
|
|
793
|
-
|
|
874
|
+
}
|
|
875
|
+
function isError(err) {
|
|
876
|
+
return err != null && typeof err === "object" && typeof err.message === "string";
|
|
877
|
+
}
|
|
878
|
+
function isAggregateError(err) {
|
|
879
|
+
return Array.isArray(err == null ? void 0 : err.errors);
|
|
880
|
+
}
|
|
881
|
+
function isErrorWithLoc(err) {
|
|
882
|
+
const loc = err == null ? void 0 : err.loc;
|
|
883
|
+
if (typeof loc !== "object")
|
|
884
|
+
return false;
|
|
885
|
+
return loc !== null && typeof loc === "object" && typeof loc.start === "object" && typeof loc.end === "object" && typeof loc.start.line === "number" && typeof loc.start.column === "number" && typeof loc.end.line === "number" && typeof loc.end.column === "number";
|
|
886
|
+
}
|
|
794
887
|
|
|
795
888
|
// src/service/marko/hover/index.ts
|
|
796
889
|
var import_language_tools7 = require("@marko/language-tools");
|