in src/controller/lintController.ts [191:224]
private async formatNotice(versionPath: string, notice: Message) {
const typeToSeverity = (type: MessageType) => {
switch (type) {
case "error":
return vscode.DiagnosticSeverity.Error;
case "notice":
return vscode.DiagnosticSeverity.Information;
case "warning":
return vscode.DiagnosticSeverity.Warning;
}
};
const fileUri = this.getUriFromVersionPath(versionPath, notice.file);
const buffer = await this.directoryController.readFile(fileUri);
const fileText = buffer?.toString()?.split("\n");
const lineNumber = notice.line ? notice.line - 1 : 0;
const lineText = fileText?.at(lineNumber);
const startChar = notice.line ? lineText?.match(/\S/)?.index : 0;
const endChar = notice.line ? lineText?.length : 0;
const startPosition = new vscode.Position(lineNumber, startChar ?? 0);
const endPosition = new vscode.Position(lineNumber, endChar ?? 0);
const range = new vscode.Range(startPosition, endPosition);
const diagnostic: vscode.Diagnostic = {
range,
severity: typeToSeverity(notice.type),
message: notice.message,
source: "Assay",
code: notice.code,
};
return diagnostic;
}