mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Java: true intention preview for CreateFieldFromParameterAction
GitOrigin-RevId: 6bf4085d54fdebb2ea7ba0ea5c544e8a8291ced8
This commit is contained in:
committed by
intellij-monorepo-bot
parent
272585bf3c
commit
1f7adc4631
+14
-4
@@ -1,7 +1,9 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInsight.intention.impl;
|
||||
|
||||
import com.intellij.codeInsight.FileModificationService;
|
||||
import com.intellij.codeInsight.intention.preview.IntentionPreviewInfo;
|
||||
import com.intellij.codeInsight.intention.preview.IntentionPreviewUtils;
|
||||
import com.intellij.java.JavaBundle;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
@@ -59,6 +61,14 @@ public abstract class CreateFieldFromParameterActionBase extends BaseIntentionAc
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull IntentionPreviewInfo generatePreview(@NotNull Project project, @NotNull Editor editor, @NotNull PsiFile file) {
|
||||
PsiParameter parameter = FieldFromParameterUtils.findParameterAtCursor(file, editor);
|
||||
if (parameter == null) return IntentionPreviewInfo.EMPTY;
|
||||
processParameter(project, parameter, false);
|
||||
return IntentionPreviewInfo.DIFF;
|
||||
}
|
||||
|
||||
private void processParameter(@NotNull Project project,
|
||||
@NotNull PsiParameter myParameter,
|
||||
boolean isInteractive) {
|
||||
@@ -67,8 +77,6 @@ public abstract class CreateFieldFromParameterActionBase extends BaseIntentionAc
|
||||
String parameterName = myParameter.getName();
|
||||
String propertyName = styleManager.variableNameToPropertyName(parameterName, VariableKind.PARAMETER);
|
||||
|
||||
String fieldNameToCalc;
|
||||
boolean isFinalToCalc;
|
||||
PsiClass targetClass = PsiTreeUtil.getParentOfType(myParameter, PsiClass.class);
|
||||
if (targetClass == null) return;
|
||||
PsiMethod method = (PsiMethod)myParameter.getDeclarationScope();
|
||||
@@ -79,6 +87,8 @@ public abstract class CreateFieldFromParameterActionBase extends BaseIntentionAc
|
||||
SuggestedNameInfo suggestedNameInfo = styleManager.suggestVariableName(kind, propertyName, null, type);
|
||||
String[] names = suggestedNameInfo.names;
|
||||
|
||||
String fieldNameToCalc;
|
||||
boolean isFinalToCalc;
|
||||
if (isInteractive) {
|
||||
List<String> namesList = new ArrayList<>();
|
||||
ContainerUtil.addAll(namesList, names);
|
||||
@@ -113,7 +123,7 @@ public abstract class CreateFieldFromParameterActionBase extends BaseIntentionAc
|
||||
|
||||
boolean isFinal = isFinalToCalc;
|
||||
String fieldName = fieldNameToCalc;
|
||||
ApplicationManager.getApplication().runWriteAction(() -> {
|
||||
IntentionPreviewUtils.write(() -> {
|
||||
try {
|
||||
performRefactoring(project, targetClass, method, myParameter, type, fieldName, isMethodStatic, isFinal);
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'id'" "true"
|
||||
// "Create field for parameter 'id'" "true-preview"
|
||||
|
||||
class Person {
|
||||
private String __fname;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'test'" "true"
|
||||
// "Create field for parameter 'test'" "true-preview"
|
||||
|
||||
package codeInsight.createFieldFromParameterAction.test1;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'length'" "true"
|
||||
// "Create field for parameter 'length'" "true-preview"
|
||||
|
||||
package codeInsight.createFieldFromParameterAction.test1;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
private final int myP1;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
int myP1;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
int myP1;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
private static int p1;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
int b;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
private String[] myP1;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
import java.util.*;
|
||||
class Test{
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test<T>{
|
||||
private T myP1;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
enum Test{
|
||||
A;//comment
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
import java.util.*;
|
||||
class Test<T>{
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
import java.util.*;
|
||||
class Test{
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'name'" "true"
|
||||
// "Create field for parameter 'name'" "true-preview"
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'name'" "true"
|
||||
// "Create field for parameter 'name'" "true-preview"
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'name'" "true"
|
||||
// "Create field for parameter 'name'" "true-preview"
|
||||
|
||||
package codeInsight.createFieldFromParameterAction.test1;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'val'" "true"
|
||||
// "Create field for parameter 'val'" "true-preview"
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
private Object myP1;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
private String myP1;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'id'" "true"
|
||||
// "Create field for parameter 'id'" "true-preview"
|
||||
|
||||
class Person {
|
||||
private String __fname, __lname, __street;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'test'" "true"
|
||||
// "Create field for parameter 'test'" "true-preview"
|
||||
|
||||
package codeInsight.createFieldFromParameterAction.test1;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'length'" "true"
|
||||
// "Create field for parameter 'length'" "true-preview"
|
||||
|
||||
package codeInsight.createFieldFromParameterAction.test1;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
int myP2;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
int myP1;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
int myP1;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
static void f(int p<caret>1){
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
int b;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
void f(String[] p<caret>1){
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
import java.util.*;
|
||||
class Test{
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test<T>{
|
||||
void f(T p<caret>1){
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
enum Test{
|
||||
A;//comment
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
import java.util.*;
|
||||
class Test<T>{
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
import java.util.*;
|
||||
class Test{
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'name'" "true"
|
||||
// "Create field for parameter 'name'" "true-preview"
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'name'" "true"
|
||||
// "Create field for parameter 'name'" "true-preview"
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'name'" "true"
|
||||
// "Create field for parameter 'name'" "true-preview"
|
||||
|
||||
package codeInsight.createFieldFromParameterAction.test1;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'val'" "true"
|
||||
// "Create field for parameter 'val'" "true-preview"
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
<T> void f(T p<caret>1){
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// "Create field for parameter 'p1'" "true"
|
||||
// "Create field for parameter 'p1'" "true-preview"
|
||||
|
||||
class Test{
|
||||
<T extends String> void f(T p<caret>1){
|
||||
|
||||
Reference in New Issue
Block a user