smart enter during completion inside synchronized expression should put the caret...
authorpeter <peter@jetbrains.com>
Fri, 29 Apr 2016 18:01:16 +0000 (20:01 +0200)
committerpeter <peter@jetbrains.com>
Fri, 29 Apr 2016 20:56:19 +0000 (22:56 +0200)
java/java-impl/src/com/intellij/codeInsight/editorActions/smartEnter/PlainEnterProcessor.java
java/java-tests/testData/codeInsight/completion/normal/SynchronizedArgumentSmartEnter.java [new file with mode: 0644]
java/java-tests/testData/codeInsight/completion/normal/SynchronizedArgumentSmartEnter_after.java [new file with mode: 0644]
java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy

index bf5db4cfa64ac240933345c7860a5187ddaea3f0..c32cbf32875f522f93cd7ff6cfb3a2cd69251735 100644 (file)
@@ -94,6 +94,10 @@ public class PlainEnterProcessor implements EnterProcessor {
       return ((PsiTryStatement)element).getFinallyBlock();
     }
 
+    if (element instanceof PsiSynchronizedStatement) {
+      return ((PsiSynchronizedStatement)element).getBody();
+    }
+
     if (element instanceof PsiMethod) {
       PsiCodeBlock methodBody = ((PsiMethod)element).getBody();
       if (methodBody != null) return methodBody;
diff --git a/java/java-tests/testData/codeInsight/completion/normal/SynchronizedArgumentSmartEnter.java b/java/java-tests/testData/codeInsight/completion/normal/SynchronizedArgumentSmartEnter.java
new file mode 100644 (file)
index 0000000..9a1b95d
--- /dev/null
@@ -0,0 +1,7 @@
+public class Bar {
+    {
+        String foo1 = "";
+        String foo2 = "";
+        synchronized (foo<caret>)
+    }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/codeInsight/completion/normal/SynchronizedArgumentSmartEnter_after.java b/java/java-tests/testData/codeInsight/completion/normal/SynchronizedArgumentSmartEnter_after.java
new file mode 100644 (file)
index 0000000..c632786
--- /dev/null
@@ -0,0 +1,9 @@
+public class Bar {
+    {
+        String foo1 = "";
+        String foo2 = "";
+        synchronized (foo1) {
+            <caret>
+        }
+    }
+}
\ No newline at end of file
index 874a01ffad8f2a176794341b8aaee34b70f8a7f3..4b4fc9fdf8ac1850224afd048817b763372c0e83 100644 (file)
@@ -1106,6 +1106,7 @@ public class ListUtils {
     myFixture.performEditorAction(IdeActions.ACTION_CHOOSE_LOOKUP_ITEM_COMPLETE_STATEMENT)
     checkResult()
   }
+  void testSynchronizedArgumentSmartEnter() { doTest(Lookup.COMPLETE_STATEMENT_SELECT_CHAR as String) }
 
   public void testImportStringValue() throws Throwable {
     myFixture.addClass("package foo; public class StringValue {}")