private async formatNotice()

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;
  }