Quellcode durchsuchen

Provide related information to diagnostics (#48)

Provide related information to diagnostics
Alexandru Dima vor 5 Jahren
Ursprung
Commit
2bbb4ed4b9
1 geänderte Dateien mit 22 neuen und 1 gelöschten Zeilen
  1. 22 1
      src/languageFeatures.ts

+ 22 - 1
src/languageFeatures.ts

@@ -202,10 +202,31 @@ export class DiagnosticsAdapter extends Adapter {
 			endColumn,
 			message: flattenDiagnosticMessageText(diag.messageText, '\n'),
 			code: diag.code.toString(),
-			tags: diag.reportsUnnecessary ? [monaco.MarkerTag.Unnecessary] : []
+			tags: diag.reportsUnnecessary ? [monaco.MarkerTag.Unnecessary] : [],
+			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 {
 		switch (category) {
 			case ts.DiagnosticCategory.Error: return monaco.MarkerSeverity.Error