public async updateDiagnostics()

in src/buildifier/buildifier_diagnostics_manager.ts [77:106]


  public async updateDiagnostics(document: vscode.TextDocument) {
    if (document.languageId === "starlark") {
      const warnings = await buildifierLint(
        document.getText(),
        getBuildifierFileType(document.uri.fsPath),
        "warn",
      );

      this.diagnosticsCollection.set(
        document.uri,
        warnings.map((warning) => {
          // Buildifier returns 1-based line numbers, but VS Code is 0-based.
          const range = new vscode.Range(
            warning.start.line - 1,
            warning.start.column - 1,
            warning.end.line - 1,
            warning.end.column - 1,
          );
          const diagnostic = new vscode.Diagnostic(
            range,
            warning.message,
            vscode.DiagnosticSeverity.Warning,
          );
          diagnostic.source = "buildifier";
          diagnostic.code = warning.category;
          return diagnostic;
        }),
      );
    }
  }