inplace change signature: show initial signature in action text

This commit is contained in:
Anna.Kozlova
2016-11-14 19:05:03 +01:00
parent 034a7db3e3
commit 45851be5d9
3 changed files with 21 additions and 5 deletions
@@ -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;
}
}
@@ -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());
@@ -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);