mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 05:10:22 +07:00
[jvm-lang] disable Create Field from Java method calls
This commit is contained in:
@@ -30,7 +30,7 @@ import com.intellij.psi.util.PsiUtil.resolveClassInClassTypeOnly
|
||||
import com.intellij.psi.util.parentOfType
|
||||
|
||||
fun generateActions(ref: PsiReferenceExpression): List<IntentionAction> {
|
||||
if (ref.referenceName == null) return emptyList()
|
||||
if (!checkReference(ref)) return emptyList()
|
||||
val fieldRequests = CreateFieldRequests(ref).collectRequests()
|
||||
val extensions = EP_NAME.extensions
|
||||
return fieldRequests.flatMap { (clazz, request) ->
|
||||
@@ -40,6 +40,12 @@ fun generateActions(ref: PsiReferenceExpression): List<IntentionAction> {
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkReference(ref: PsiReferenceExpression): Boolean {
|
||||
if (ref.referenceName == null) return false
|
||||
if (ref.parent is PsiMethodCallExpression) return false
|
||||
return true
|
||||
}
|
||||
|
||||
private class CreateFieldRequests(val myRef: PsiReferenceExpression) {
|
||||
|
||||
private val requests = LinkedHashMap<JvmClass, CreateFieldRequest>()
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
// "Create field 'foo'" "false"
|
||||
class Usage {
|
||||
void usage(A a) {
|
||||
a.<caret>foo()
|
||||
}
|
||||
}
|
||||
|
||||
class A {
|
||||
}
|
||||
@@ -50,6 +50,7 @@ public class CreateFieldFromUsageTest extends LightQuickFixTestCase {
|
||||
public void testCreateFromEquals() { doSingleTest(); }
|
||||
public void testCreateFromEqualsToPrimitiveType() { doSingleTest(); }
|
||||
public void testInsideInterface() { doSingleTest(); }
|
||||
public void testReferenceInCall() { doSingleTest(); }
|
||||
public void testWithAlignment() {
|
||||
final CommonCodeStyleSettings settings = CodeStyleSettingsManager.getSettings(getProject()).getCommonSettings(JavaLanguage.INSTANCE);
|
||||
boolean old = settings.ALIGN_GROUP_FIELD_DECLARATIONS;
|
||||
|
||||
Reference in New Issue
Block a user