aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjean pierre Lerbscher <jean-pierre.lerbscher@jperf.com>2020-10-03 09:49:39 +0200
committerGitHub <noreply@github.com>2020-10-03 09:49:39 +0200
commitc6bdfc65da81ee2e55b0e0c426e9cf8690e02fc3 (patch)
treebc2b6412675ea982dc5f0d80961646c74e788cbb
parentef778f88394fc4f4213de109a167d15cb8d6130f (diff)
parenta5011a1502abef71b648da04506ab6229076fde3 (diff)
downloadplatform_external_javaparser-c6bdfc65da81ee2e55b0e0c426e9cf8690e02fc3.tar.gz
platform_external_javaparser-c6bdfc65da81ee2e55b0e0c426e9cf8690e02fc3.tar.bz2
platform_external_javaparser-c6bdfc65da81ee2e55b0e0c426e9cf8690e02fc3.zip
Merge pull request #1 from javaparser/master
Updating my fork with changes
-rw-r--r--.github/workflows/maven_tests.yml2
-rwxr-xr-xjavaparser-core-testing/src/test/java/com/github/javaparser/printer/lexicalpreservation/Issue2806Test.java59
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java4
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Difference.java3
-rw-r--r--pom.xml4
5 files changed, 67 insertions, 5 deletions
diff --git a/.github/workflows/maven_tests.yml b/.github/workflows/maven_tests.yml
index e6ee788f6..51e6d7800 100644
--- a/.github/workflows/maven_tests.yml
+++ b/.github/workflows/maven_tests.yml
@@ -27,7 +27,7 @@ jobs:
## Different JDK versions have different implementations etc. -- test on all combinations (ideally 8 to latest).
### exclude pre-8 (min development version jdk8)
### exclude post-12 (changes to jdk causes reflection tests to fail due to added methods #1701 )
- jdk: [8,9,10,11,12,13,14] # [8,9,10,11,12,13,14,15-ea]
+ jdk: [8,9,10,11,12,13,14,15]
runs-on: ${{ matrix.os }}
diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/printer/lexicalpreservation/Issue2806Test.java b/javaparser-core-testing/src/test/java/com/github/javaparser/printer/lexicalpreservation/Issue2806Test.java
new file mode 100755
index 000000000..bf21707e7
--- /dev/null
+++ b/javaparser-core-testing/src/test/java/com/github/javaparser/printer/lexicalpreservation/Issue2806Test.java
@@ -0,0 +1,59 @@
+
+/*
+ * Copyright (C) 2015-2016 Federico Tomassetti
+ * Copyright (C) 2017-2019 The JavaParser Team.
+ *
+ * This file is part of JavaParser.
+ *
+ * JavaParser can be used either under the terms of
+ * a) the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * b) the terms of the Apache License
+ *
+ * You should have received a copy of both licenses in LICENCE.LGPL and
+ * LICENCE.APACHE. Please refer to those files for details.
+ *
+ * JavaParser is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ */
+
+package com.github.javaparser.printer.lexicalpreservation;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import org.junit.jupiter.api.Test;
+
+import com.github.javaparser.JavaParser;
+import com.github.javaparser.ParserConfiguration;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.ImportDeclaration;
+
+class Issue2806Test {
+
+ private JavaParser javaParser;
+
+ @Test
+ void importIsAddedOnTheSameLine() {
+ String junit4 = "import java.lang.IllegalArgumentException;\n" +
+ "\n" +
+ "public class A {\n" +
+ "}";
+ String junit5 = "import java.lang.IllegalArgumentException;\n" +
+ "import java.nio.file.Paths;\n" +
+ "\n" +
+ "public class A {\n" +
+ "}";
+ JavaParser parser = new JavaParser(new ParserConfiguration().setLexicalPreservationEnabled(true));
+ CompilationUnit cu = parser.parse(junit4).getResult().get();
+ LexicalPreservingPrinter.setup(cu);
+ ImportDeclaration importDeclaration = new ImportDeclaration("java.nio.file.Paths", false, false);
+ CompilationUnit compilationUnit = cu.addImport(importDeclaration);
+ String out = LexicalPreservingPrinter.print(compilationUnit);
+ assertThat(out, equalTo(junit5));
+ }
+
+}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java
index e19ef7834..678b821d4 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/TreeVisitor.java
@@ -46,7 +46,7 @@ public abstract class TreeVisitor {
* is called for further processing.
*
* @param node The node at which the traversal begins.
- * @see <a href="https://en.wikipedia.org/wiki/Pre-order">Pre-order traversal</a>
+ * @see <a href="https://en.wikipedia.org/wiki/Depth-first_search#Vertex_orderings">Pre-order traversal</a>
*/
public void visitPreOrder(Node node) {
process(node);
@@ -58,7 +58,7 @@ public abstract class TreeVisitor {
* #process(Node)} is called for further processing.
*
* @param node The node at which the traversal begins.
- * @see <a href="https://en.wikipedia.org/wiki/Post-order">Post-order traversal</a>
+ * @see <a href="https://en.wikipedia.org/wiki/Depth-first_search#Vertex_orderings">Post-order traversal</a>
*/
public void visitPostOrder(Node node) {
new ArrayList<>(node.getChildNodes()).forEach(this::visitPostOrder);
diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Difference.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Difference.java
index 82ff44171..6dc320c91 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Difference.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/Difference.java
@@ -506,6 +506,9 @@ public class Difference {
if (kept.getTokenType() == originalTextToken.getTokenKind()) {
originalIndex++;
diffIndex++;
+ } else if (kept.isNewLine() && originalTextToken.isNewline()) {
+ originalIndex++;
+ diffIndex++;
} else if (kept.isNewLine() && originalTextToken.isSpaceOrTab()) {
originalIndex++;
diffIndex++;
diff --git a/pom.xml b/pom.xml
index 77b8f33c0..34f0246b0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -236,7 +236,7 @@
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
- <version>0.8.5</version>
+ <version>0.8.6</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -262,7 +262,7 @@
<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-maven-plugin</artifactId>
- <version>5.0.1</version>
+ <version>5.1.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>