From 279c952a119f61465b3b97559f6bdb30c4643464 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Thu, 19 Apr 2018 14:37:09 +0700 Subject: [PATCH] IDEA-138747 Joining line with EOL comment --- .../testData/codeInsight/joinLines/ConvertComment2.java | 7 +++++++ .../codeInsight/joinLines/ConvertComment2_after.java | 6 ++++++ .../com/intellij/java/codeInsight/JoinLinesTest.java | 5 ++--- .../codeInsight/editorActions/JoinLinesHandler.java | 5 +++++ 4 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/joinLines/ConvertComment2.java create mode 100644 java/java-tests/testData/codeInsight/joinLines/ConvertComment2_after.java diff --git a/java/java-tests/testData/codeInsight/joinLines/ConvertComment2.java b/java/java-tests/testData/codeInsight/joinLines/ConvertComment2.java new file mode 100644 index 000000000000..ec5dd9cba6aa --- /dev/null +++ b/java/java-tests/testData/codeInsight/joinLines/ConvertComment2.java @@ -0,0 +1,7 @@ +class A { + // IDEA-138747 + void myMethod() { + // int myOldCodeCommentedOut; */ with an old comment (only closure) + int somecode; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/joinLines/ConvertComment2_after.java b/java/java-tests/testData/codeInsight/joinLines/ConvertComment2_after.java new file mode 100644 index 000000000000..8f28a2a35645 --- /dev/null +++ b/java/java-tests/testData/codeInsight/joinLines/ConvertComment2_after.java @@ -0,0 +1,6 @@ +class A { + // IDEA-138747 + void myMethod() { + /* int myOldCodeCommentedOut; * / with an old comment (only closure)*/int somecode; + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/JoinLinesTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/JoinLinesTest.java index bb2f2e4ecae9..3de35e91ed28 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/JoinLinesTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/JoinLinesTest.java @@ -223,9 +223,8 @@ public class JoinLinesTest extends LightCodeInsightTestCase { public void testLeaveTrailingComment() { doTest(); } - public void testConvertComment() { - doTest(); - } + public void testConvertComment() { doTest();} + public void testConvertComment2() { doTest();} public void testJoiningMethodCallWhenItDoesntFit() { CommonCodeStyleSettings settings = getJavaSettings(); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/editorActions/JoinLinesHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/editorActions/JoinLinesHandler.java index ae614e34c2ad..10f041c920f6 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/editorActions/JoinLinesHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/editorActions/JoinLinesHandler.java @@ -295,6 +295,11 @@ public class JoinLinesHandler extends EditorActionHandler { if (commentElement.getNode().getElementType() == docCommenter.getLineCommentTokenType() && blockCommentPrefix != null && blockCommentSuffix != null && lineCommentPrefix != null) { String commentText = StringUtil.trimStart(commentElement.getText(), lineCommentPrefix); + String suffix = docCommenter.getBlockCommentSuffix(); + if (suffix != null && suffix.length() > 1) { + String fixedSuffix = suffix.charAt(0)+" "+suffix.substring(1); + commentText = commentText.replace(suffix, fixedSuffix); + } try { Project project = commentElement.getProject(); PsiParserFacade parserFacade = PsiParserFacade.SERVICE.getInstance(project);