java completion: prefer break/continue in likely positions inside loops (IDEA-156192)

This commit is contained in:
peter
2016-05-18 18:07:47 +02:00
parent 6b5f30f0f2
commit b0bfb5b5d8
3 changed files with 18 additions and 0 deletions
@@ -177,6 +177,11 @@ public class PreferByKindWeigher extends LookupElementWeigher {
return MyResult.probableKeyword;
}
}
if ((PsiKeyword.BREAK.equals(keyword) || PsiKeyword.CONTINUE.equals(keyword)) &&
PsiTreeUtil.getParentOfType(myPosition, PsiLoopStatement.class) != null &&
isLastStatement(PsiTreeUtil.getParentOfType(myPosition, PsiStatement.class))) {
return MyResult.probableKeyword;
}
if (PsiKeyword.ELSE.equals(keyword) || PsiKeyword.FINALLY.equals(keyword)) {
return MyResult.probableKeyword;
}
@@ -0,0 +1,9 @@
import javax.swing.*;
class A extends JPanel {
void f(int color) {
for (int i=0;i<10;i++) {
if (i%2==0) co<caret>
}
}
}
@@ -304,6 +304,10 @@ public class NormalCompletionOrderingTest extends CompletionSortingTestCase {
checkPreferredItems 0, "return", "registerKeyboardAction"
}
public void testPreferContinueInsideLoops() {
checkPreferredItems 0, "continue", "color", "computeVisibleRect"
}
public void testPreferModifiers() {
checkPreferredItems(0, "private", "protected", "public");
}