< prev index next >

src/jdk.jshell/share/classes/jdk/internal/jshell/tool/JShellTool.java

Print this page




1340      */
1341     List<Diag> errorsOnly(List<Diag> diagnostics) {
1342         return diagnostics.stream()
1343                 .filter(d -> d.isError())
1344                 .collect(toList());
1345     }
1346 
1347     void printDiagnostics(String source, List<Diag> diagnostics, boolean embed) {
1348         String padding = embed? "    " : "";
1349         for (Diag diag : diagnostics) {
1350             //assert diag.getSource().equals(source);
1351 
1352             if (!embed) {
1353                 if (diag.isError()) {
1354                     hard("Error:");
1355                 } else {
1356                     hard("Warning:");
1357                 }
1358             }
1359 
1360             for (String line : diag.getMessage(null).split("\\r?\\n")) {
1361                 if (!line.trim().startsWith("location:")) {
1362                     hard("%s%s", padding, line);
1363                 }
1364             }
1365 
1366             int pstart = (int) diag.getStartPosition();
1367             int pend = (int) diag.getEndPosition();
1368             Matcher m = LINEBREAK.matcher(source);
1369             int pstartl = 0;
1370             int pendl = -2;
1371             while (m.find(pstartl)) {
1372                 pendl = m.start();
1373                 if (pendl >= pstart) {
1374                     break;
1375                 } else {
1376                     pstartl = m.end();
1377                 }
1378             }
1379             if (pendl < pstart) {
1380                 pendl = source.length();




1340      */
1341     List<Diag> errorsOnly(List<Diag> diagnostics) {
1342         return diagnostics.stream()
1343                 .filter(d -> d.isError())
1344                 .collect(toList());
1345     }
1346 
1347     void printDiagnostics(String source, List<Diag> diagnostics, boolean embed) {
1348         String padding = embed? "    " : "";
1349         for (Diag diag : diagnostics) {
1350             //assert diag.getSource().equals(source);
1351 
1352             if (!embed) {
1353                 if (diag.isError()) {
1354                     hard("Error:");
1355                 } else {
1356                     hard("Warning:");
1357                 }
1358             }
1359 
1360             for (String line : diag.getMessage(null).split("\\r?\\n")) { // TODO: Internationalize
1361                 if (!line.trim().startsWith("location:")) {
1362                     hard("%s%s", padding, line);
1363                 }
1364             }
1365 
1366             int pstart = (int) diag.getStartPosition();
1367             int pend = (int) diag.getEndPosition();
1368             Matcher m = LINEBREAK.matcher(source);
1369             int pstartl = 0;
1370             int pendl = -2;
1371             while (m.find(pstartl)) {
1372                 pendl = m.start();
1373                 if (pendl >= pstart) {
1374                     break;
1375                 } else {
1376                     pstartl = m.end();
1377                 }
1378             }
1379             if (pendl < pstart) {
1380                 pendl = source.length();


< prev index next >