1
0
Эх сурвалжийг харах

Provide related information to diagnostics

Sebastian Pahnke 5 жил өмнө
parent
commit
8b18d160db

+ 22 - 1
src/languageFeatures.ts

@@ -200,10 +200,31 @@ export class DiagnosticsAdapter extends Adapter {
 			endLineNumber,
 			endLineNumber,
 			endColumn,
 			endColumn,
 			message: flattenDiagnosticMessageText(diag.messageText, '\n'),
 			message: flattenDiagnosticMessageText(diag.messageText, '\n'),
-			code: diag.code.toString()
+			code: diag.code.toString(),
+			relatedInformation: this._convertRelatedInformation(resource, diag.relatedInformation)
 		};
 		};
 	}
 	}
 
 
+	private _convertRelatedInformation(resource: Uri, relatedInformation?: ts.DiagnosticRelatedInformation[]): monaco.editor.IRelatedInformation[] {
+		if (relatedInformation === undefined)
+			return undefined;
+
+		return relatedInformation.map(info => {
+			const relatedResource = info.file === undefined ? resource : monaco.Uri.parse(info.file.fileName);
+			const { lineNumber: startLineNumber, column: startColumn } = this._offsetToPosition(relatedResource, info.start);
+			const { lineNumber: endLineNumber, column: endColumn } = this._offsetToPosition(relatedResource, info.start + info.length);
+
+			return {
+				resource: relatedResource,
+				startLineNumber,
+				startColumn,
+				endLineNumber,
+				endColumn,
+				message: flattenDiagnosticMessageText(info.messageText, '\n')
+			};
+		});
+	}
+
 	private _tsDiagnosticCategoryToMarkerSeverity(category: ts.DiagnosticCategory): monaco.MarkerSeverity {
 	private _tsDiagnosticCategoryToMarkerSeverity(category: ts.DiagnosticCategory): monaco.MarkerSeverity {
 		switch (category) {
 		switch (category) {
 			case ts.DiagnosticCategory.Error: return monaco.MarkerSeverity.Error
 			case ts.DiagnosticCategory.Error: return monaco.MarkerSeverity.Error