mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
inplace change signature: show initial signature in action text
This commit is contained in:
+10
-2
@@ -100,15 +100,23 @@ public class JavaChangeSignatureDetector implements LanguageChangeSignatureDetec
|
||||
buf.append(", ");
|
||||
}
|
||||
|
||||
String oldParamName = initialChangeInfo.getOldParameterNames()[i];
|
||||
String oldParamType = initialChangeInfo.getOldParameterTypes()[i];
|
||||
if (toRemove[i]) {
|
||||
String deletedParam = initialChangeInfo.getOldParameterTypes()[i] + " " + initialChangeInfo.getOldParameterNames()[i];
|
||||
String deletedParam = oldParamType + " " + oldParamName;
|
||||
deleteRanges.add(new TextRange(buf.length(), buf.length() + deletedParam.length()));
|
||||
buf.append(deletedParam);
|
||||
}
|
||||
else {
|
||||
for (JavaParameterInfo parameter : newParameters) {
|
||||
if (parameter.getOldIndex() == i) {
|
||||
buf.append(parameter.getTypeText()).append(" ").append(parameter.getName());
|
||||
buf.append(parameter.getTypeText());
|
||||
buf.append(" ");
|
||||
if (!oldParamName.equals(parameter.getName())) {
|
||||
deleteRanges.add(new TextRange(buf.length(), buf.length() + oldParamName.length()));
|
||||
buf.append(oldParamName);
|
||||
}
|
||||
buf.append(parameter.getName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -22,7 +22,6 @@ import com.intellij.codeInsight.daemon.impl.HighlightInfo;
|
||||
import com.intellij.codeInsight.daemon.impl.HighlightInfoType;
|
||||
import com.intellij.codeInsight.daemon.impl.UpdateHighlightersUtil;
|
||||
import com.intellij.codeInsight.daemon.impl.quickfix.QuickFixAction;
|
||||
import com.intellij.lang.findUsages.DescriptiveNameUtil;
|
||||
import com.intellij.openapi.components.AbstractProjectComponent;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.colors.CodeInsightColors;
|
||||
@@ -92,7 +91,7 @@ public class ChangeSignaturePassFactory extends AbstractProjectComponent impleme
|
||||
builder.textAttributes(attributes);
|
||||
builder.descriptionAndTooltip(SIGNATURE_SHOULD_BE_POSSIBLY_CHANGED);
|
||||
info = builder.createUnconditionally();
|
||||
QuickFixAction.registerQuickFixAction(info, new ApplyChangeSignatureAction(DescriptiveNameUtil.getDescriptiveName(element)));
|
||||
QuickFixAction.registerQuickFixAction(info, new ApplyChangeSignatureAction(currentRefactoring.getInitialName()));
|
||||
}
|
||||
Collection<HighlightInfo> infos = info != null ? Collections.singletonList(info) : Collections.<HighlightInfo>emptyList();
|
||||
UpdateHighlightersUtil.setHighlightersToEditor(myProject, myDocument, 0, myFile.getTextLength(), infos, getColorsScheme(), getId());
|
||||
|
||||
+10
-1
@@ -16,6 +16,7 @@
|
||||
package com.intellij.refactoring.changeSignature.inplace;
|
||||
|
||||
import com.intellij.codeInsight.highlighting.HighlightManager;
|
||||
import com.intellij.lang.findUsages.DescriptiveNameUtil;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.command.impl.FinishMarkAction;
|
||||
@@ -53,6 +54,7 @@ import com.intellij.refactoring.changeSignature.ChangeSignatureHandler;
|
||||
import com.intellij.refactoring.rename.inplace.InplaceRefactoring;
|
||||
import com.intellij.ui.NonFocusableCheckBox;
|
||||
import com.intellij.ui.awt.RelativePoint;
|
||||
import com.intellij.ui.components.JBLabel;
|
||||
import com.intellij.util.ui.PositionTracker;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -66,6 +68,7 @@ public class InplaceChangeSignature implements DocumentListener {
|
||||
private ChangeInfo myCurrentInfo;
|
||||
private ChangeInfo myStableChange;
|
||||
private String myInitialSignature;
|
||||
private String myInitialName;
|
||||
private Editor myEditor;
|
||||
private LanguageChangeSignatureDetector<ChangeInfo> myDetector;
|
||||
|
||||
@@ -97,6 +100,7 @@ public class InplaceChangeSignature implements DocumentListener {
|
||||
myDetector = LanguageChangeSignatureDetectors.INSTANCE.forLanguage(element.getLanguage());
|
||||
myStableChange = myDetector.createInitialChangeInfo(element);
|
||||
myInitialSignature = myDetector.extractSignature(myStableChange);
|
||||
myInitialName = DescriptiveNameUtil.getDescriptiveName(myStableChange.getMethod());
|
||||
TextRange highlightingRange = myDetector.getHighlightingRange(myStableChange);
|
||||
|
||||
HighlightManager highlightManager = HighlightManager.getInstance(myProject);
|
||||
@@ -121,6 +125,10 @@ public class InplaceChangeSignature implements DocumentListener {
|
||||
return myCurrentInfo;
|
||||
}
|
||||
|
||||
public String getInitialName() {
|
||||
return myInitialName;
|
||||
}
|
||||
|
||||
public String getInitialSignature() {
|
||||
return myInitialSignature;
|
||||
}
|
||||
@@ -211,7 +219,8 @@ public class InplaceChangeSignature implements DocumentListener {
|
||||
NonFocusableCheckBox checkBox = new NonFocusableCheckBox(RefactoringBundle.message("delegation.panel.delegate.via.overloading.method"));
|
||||
checkBox.addActionListener(e -> myDelegate = checkBox.isSelected());
|
||||
JPanel content = new JPanel(new BorderLayout());
|
||||
content.add(myPreview.getComponent(), BorderLayout.NORTH);
|
||||
content.add(new JBLabel("Performed signature modifications:"), BorderLayout.NORTH);
|
||||
content.add(myPreview.getComponent(), BorderLayout.CENTER);
|
||||
updateMethodSignature(myStableChange);
|
||||
content.add(checkBox, BorderLayout.SOUTH);
|
||||
final BalloonBuilder balloonBuilder = JBPopupFactory.getInstance().createDialogBalloonBuilder(content, null).setSmallVariant(true);
|
||||
|
||||
Reference in New Issue
Block a user