diff options
author | jean pierre Lerbscher <jean-pierre.lerbscher@jperf.com> | 2020-10-03 09:49:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-03 09:49:39 +0200 |
commit | c6bdfc65da81ee2e55b0e0c426e9cf8690e02fc3 (patch) | |
tree | bc2b6412675ea982dc5f0d80961646c74e788cbb | |
parent | ef778f88394fc4f4213de109a167d15cb8d6130f (diff) | |
parent | a5011a1502abef71b648da04506ab6229076fde3 (diff) | |
download | platform_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
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++; @@ -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> |