@marko/language-server 1.0.15 → 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 +108 -45
- package/dist/index.js.map +2 -2
- package/dist/index.mjs +108 -45
- package/dist/index.mjs.map +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -748,73 +748,136 @@ 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
|
-
|
|
770
|
-
}
|
|
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
771
|
}
|
|
772
772
|
}
|
|
773
|
-
);
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
if (!message)
|
|
778
|
-
return;
|
|
779
|
-
const { loc } = err;
|
|
780
|
-
diagnostics.push({
|
|
781
|
-
range: {
|
|
773
|
+
});
|
|
774
|
+
if (meta.diagnostics) {
|
|
775
|
+
for (const diag of meta.diagnostics) {
|
|
776
|
+
const range = diag.loc ? {
|
|
782
777
|
start: {
|
|
783
|
-
line: loc.start.line - 1,
|
|
784
|
-
character: loc.start.column
|
|
778
|
+
line: diag.loc.start.line - 1,
|
|
779
|
+
character: diag.loc.start.column
|
|
785
780
|
},
|
|
786
781
|
end: {
|
|
787
|
-
line: loc.end.line - 1,
|
|
788
|
-
character: loc.end.column
|
|
782
|
+
line: diag.loc.end.line - 1,
|
|
783
|
+
character: diag.loc.end.column
|
|
789
784
|
}
|
|
790
|
-
}
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
tags: void 0,
|
|
794
|
-
severity: import_vscode_languageserver7.DiagnosticSeverity.Error,
|
|
795
|
-
message
|
|
796
|
-
});
|
|
797
|
-
} else {
|
|
798
|
-
let match;
|
|
799
|
-
while (match = markoErrorRegExp.exec(err.message)) {
|
|
800
|
-
const [, , rawLine, rawCol, message] = match;
|
|
801
|
-
const pos = {
|
|
802
|
-
line: (parseInt(rawLine, 10) || 1) - 1,
|
|
803
|
-
character: (parseInt(rawCol, 10) || 1) - 1
|
|
785
|
+
} : {
|
|
786
|
+
start: { line: 0, character: 0 },
|
|
787
|
+
end: { line: 0, character: 0 }
|
|
804
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;
|
|
801
|
+
}
|
|
805
802
|
diagnostics.push({
|
|
806
|
-
range
|
|
803
|
+
range,
|
|
807
804
|
source: "marko",
|
|
808
805
|
code: void 0,
|
|
809
806
|
tags: void 0,
|
|
810
|
-
severity
|
|
811
|
-
message
|
|
807
|
+
severity,
|
|
808
|
+
message: diag.label
|
|
812
809
|
});
|
|
813
810
|
}
|
|
814
811
|
}
|
|
812
|
+
} catch (err) {
|
|
813
|
+
addDiagnosticsForError(err, diagnostics);
|
|
815
814
|
}
|
|
816
815
|
return diagnostics;
|
|
817
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 {
|
|
857
|
+
let match;
|
|
858
|
+
while (match = markoErrorRegExp.exec(err.message)) {
|
|
859
|
+
const [, , rawLine, rawCol, message] = match;
|
|
860
|
+
const pos = {
|
|
861
|
+
line: (parseInt(rawLine, 10) || 1) - 1,
|
|
862
|
+
character: (parseInt(rawCol, 10) || 1) - 1
|
|
863
|
+
};
|
|
864
|
+
diagnostics.push({
|
|
865
|
+
range: { start: pos, end: pos },
|
|
866
|
+
source: "marko",
|
|
867
|
+
code: void 0,
|
|
868
|
+
tags: void 0,
|
|
869
|
+
severity: import_vscode_languageserver7.DiagnosticSeverity.Error,
|
|
870
|
+
message
|
|
871
|
+
});
|
|
872
|
+
}
|
|
873
|
+
}
|
|
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
|
+
}
|
|
818
881
|
function isErrorWithLoc(err) {
|
|
819
882
|
const loc = err == null ? void 0 : err.loc;
|
|
820
883
|
if (typeof loc !== "object")
|