コード例 #1
0
 public void run() {
   Context ctx = new Context();
   Options options = Options.instance(ctx);
   outputKind.init(options);
   multiPolicy.init(options);
   xdiagsSource.init(options);
   xdiagsCompact.init(options);
   caretKind.init(options);
   sourceLineKind.init(options);
   String indentString = "";
   indentString = (summaryIndent == IndentKind.CUSTOM) ? "3" : "0";
   indentString += (detailsIndent == IndentKind.CUSTOM) ? "|3" : "|0";
   indentString += (sourceIndent == IndentKind.CUSTOM) ? "|3" : "|0";
   indentString += (subdiagsIndent == IndentKind.CUSTOM) ? "|3" : "|0";
   options.put("diagsIndentation", indentString);
   MyLog log = new MyLog(ctx);
   JavacMessages messages = JavacMessages.instance(ctx);
   messages.add("tester");
   JCDiagnostic.Factory diags = JCDiagnostic.Factory.instance(ctx);
   log.useSource(new MyFileObject("This is a source line"));
   JCDiagnostic d =
       diags.error(null, log.currentSource(), posKind.pos(), errorKind.key(), "Hello!");
   if (multiKind != MultilineKind.NONE) {
     JCDiagnostic sub = diags.fragment(errorKind.key(), "Hello!");
     if (multiKind.isNested()) sub = new JCDiagnostic.MultilineDiagnostic(sub, List.of(sub));
     List<JCDiagnostic> subdiags = multiKind.isDouble() ? List.of(sub, sub) : List.of(sub);
     d = new JCDiagnostic.MultilineDiagnostic(d, subdiags);
   }
   String diag = log.getDiagnosticFormatter().format(d, messages.getCurrentLocale());
   checkOutput(diag);
 }
コード例 #2
0
 void printInfo(String msg, String errorLine) {
   String sep = "*********************************************************";
   String desc =
       "raw="
           + outputKind
           + " pos="
           + posKind
           + " key="
           + errorKind.key()
           + " multiline="
           + multiKind
           + " multiPolicy="
           + multiPolicy.value
           + " diags= "
           + java.util.Arrays.asList(xdiagsSource.flag, xdiagsCompact.flag)
           + " caret="
           + caretKind
           + " sourcePosition="
           + sourceLineKind
           + " summaryIndent="
           + summaryIndent
           + " detailsIndent="
           + detailsIndent
           + " sourceIndent="
           + sourceIndent
           + " subdiagsIndent="
           + subdiagsIndent;
   System.err.println(sep);
   System.err.println(desc);
   System.err.println(sep);
   System.err.println(msg);
   System.err.println("Diagnostic formatting problem - expected diagnostic...\n" + errorLine);
 }