From 3585f66c1af2235681678db35f377696e1c63f30 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 12 Oct 2010 16:10:43 +0400 Subject: [PATCH] cs: all javadoc tags but the last contains tailing \n, delete child remove \n as well -> then delete last tag add new tag leads to \n removal (IDEA-59501) --- .../intellij/refactoring/util/RefactoringUtil.java | 8 ++++---- .../refactoring/changeSignature/ParamJavadoc.java | 14 ++++++++++++++ .../changeSignature/ParamJavadoc_after.java | 14 ++++++++++++++ .../intellij/refactoring/ChangeSignatureTest.java | 7 +++++++ .../refactoring/IntroduceParameterObjectTest.java | 2 -- 5 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 java/java-tests/testData/refactoring/changeSignature/ParamJavadoc.java create mode 100644 java/java-tests/testData/refactoring/changeSignature/ParamJavadoc_after.java diff --git a/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java b/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java index ca14ee175c2c..4cc683a1a5d5 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/util/RefactoringUtil.java @@ -1070,13 +1070,13 @@ public class RefactoringUtil { newTags.add(JavaPsiFacade.getInstance(method.getProject()).getElementFactory().createParamTag(parameter.getName(), "")); } } - PsiDocTag anchor = paramTags.length > 0 ? paramTags[paramTags.length - 1] : null; - for (PsiDocTag psiDocTag : newTags) { - anchor = (PsiDocTag)docComment.addAfter(psiDocTag, anchor); - } + PsiElement anchor = paramTags.length > 0 ? paramTags[0].getPrevSibling() : null; for (PsiDocTag paramTag : paramTags) { paramTag.delete(); } + for (PsiDocTag psiDocTag : newTags) { + anchor = docComment.addAfter(psiDocTag, anchor); + } } public static PsiDirectory createPackageDirectoryInSourceRoot(PackageWrapper aPackage, final VirtualFile sourceRoot) diff --git a/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc.java b/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc.java new file mode 100644 index 000000000000..c1e56881daf5 --- /dev/null +++ b/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc.java @@ -0,0 +1,14 @@ +class X { + + /** + * Has a method called {@link #mymethod(int, int)}. + */ + public class TestRefactorLink { + /** + * @return nothing + * @param y yparam + * @param z zparam + */ + public void mymethod(int y, int z) { } + } +} diff --git a/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc_after.java b/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc_after.java new file mode 100644 index 000000000000..6e97d8010abf --- /dev/null +++ b/java/java-tests/testData/refactoring/changeSignature/ParamJavadoc_after.java @@ -0,0 +1,14 @@ +class X { + + /** + * Has a method called {@link #mymethod(int, int)}. + */ + public class TestRefactorLink { + /** + * @return nothing + * @param z zparam + * @param y yparam + */ + public void mymethod(int z, int y) { } + } +} diff --git a/java/java-tests/testSrc/com/intellij/refactoring/ChangeSignatureTest.java b/java/java-tests/testSrc/com/intellij/refactoring/ChangeSignatureTest.java index b5d377c93ef3..941b0f60700c 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/ChangeSignatureTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/ChangeSignatureTest.java @@ -116,6 +116,13 @@ public class ChangeSignatureTest extends LightCodeInsightTestCase { }, false); } + public void testParamJavadoc() throws Exception { + doTest(null, new ParameterInfoImpl[] { + new ParameterInfoImpl(1, "z", PsiType.INT), + new ParameterInfoImpl(0, "y", PsiType.INT) + }, false); + } + public void testSuperCallFromOtherMethod() throws Exception { doTest(null, new ParameterInfoImpl[] { new ParameterInfoImpl(-1, "nnn", PsiType.INT, "-222"), diff --git a/java/java-tests/testSrc/com/intellij/refactoring/IntroduceParameterObjectTest.java b/java/java-tests/testSrc/com/intellij/refactoring/IntroduceParameterObjectTest.java index eef941824027..8c18910bf254 100644 --- a/java/java-tests/testSrc/com/intellij/refactoring/IntroduceParameterObjectTest.java +++ b/java/java-tests/testSrc/com/intellij/refactoring/IntroduceParameterObjectTest.java @@ -54,8 +54,6 @@ public class IntroduceParameterObjectTest extends MultiFileTestCase{ IntroduceParameterObjectProcessor processor = new IntroduceParameterObjectProcessor("Param", "", method, datas, delegate, false, createInner, null, false); processor.run(); - LocalFileSystem.getInstance().refresh(false); - FileDocumentManager.getInstance().saveAllDocuments(); } }); }