generate constructor: do not insert new line if member would be generated in another place (IDEA-151327)

This commit is contained in:
Anna Kozlova
2016-02-09 12:41:01 +01:00
parent 9d94739b66
commit 2c18695de0
4 changed files with 16 additions and 1 deletions
@@ -124,7 +124,9 @@ public abstract class GenerateMembersHandlerBase implements CodeInsightActionHan
CharSequence docText = document.getCharsSequence();
String textBeforeCaret = docText.subSequence(lineStartOffset, offset).toString();
final String afterCaret = docText.subSequence(offset, document.getLineEndOffset(line)).toString();
if (textBeforeCaret.trim().length() > 0 && StringUtil.isEmptyOrSpaces(afterCaret) && !editor.getSelectionModel().hasSelection()) {
final PsiElement lBrace = aClass.getLBrace();
if (textBeforeCaret.trim().length() > 0 && StringUtil.isEmptyOrSpaces(afterCaret) &&
(lBrace == null || lBrace.getTextOffset() < offset) && !editor.getSelectionModel().hasSelection()) {
EnterAction.insertNewLineAtCaret(editor);
PsiDocumentManager.getInstance(project).commitDocument(document);
offset = editor.getCaretModel().getOffset();
@@ -0,0 +1,8 @@
class Test
{
private int i;
public Test(int i) {
this.i = i;
}
}
@@ -0,0 +1,4 @@
class Test <caret>
{
private int i;
}
@@ -46,6 +46,7 @@ public class GenerateConstructorTest extends LightCodeInsightFixtureTestCase {
}
public void testAbstractClass() { doTest(); }
public void testNewLine() { doTest(); }
public void testPackageLocalClass() { doTest(); }
public void testPrivateClass() { doTest(); }
public void testBoundComments() { doTest(); }