Fixed higlighting of replaced expressions.
#KT-2637 fixed
This commit is contained in:
@@ -18,7 +18,7 @@ package org.jetbrains.jet.lang.psi;
|
|||||||
|
|
||||||
import com.intellij.lang.ASTNode;
|
import com.intellij.lang.ASTNode;
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import com.intellij.psi.impl.source.tree.TreeElement;
|
import com.intellij.util.IncorrectOperationException;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.JetNodeType;
|
import org.jetbrains.jet.JetNodeType;
|
||||||
|
|
||||||
@@ -45,11 +45,12 @@ abstract class JetExpressionImpl extends JetElementImpl implements JetExpression
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void replaceChildInternal(PsiElement child, TreeElement newElement) {
|
public PsiElement replace(@NotNull PsiElement newElement) throws IncorrectOperationException {
|
||||||
PsiElement newPsi = newElement.getPsi();
|
PsiElement parent = getParent();
|
||||||
if (newPsi instanceof JetExpression && JetPsiUtil.areParenthesesNecessary((JetExpression) newPsi, ((JetExpression) child), this)) {
|
if (parent instanceof JetExpression && newElement instanceof JetExpression &&
|
||||||
newElement = (TreeElement) JetPsiFactory.createExpression(getProject(), "(" + newElement.getText() + ")").getNode();
|
JetPsiUtil.areParenthesesNecessary((JetExpression) newElement, this, (JetExpression) parent)) {
|
||||||
|
return super.replace(JetPsiFactory.createExpression(getProject(), "(" + newElement.getText() + ")"));
|
||||||
}
|
}
|
||||||
super.replaceChildInternal(child, newElement);
|
return super.replace(newElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public class KotlinInlineLocalHandler extends InlineActionHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void inlineElement(Project project, Editor editor, PsiElement element) {
|
public void inlineElement(Project project, final Editor editor, PsiElement element) {
|
||||||
final JetProperty val = (JetProperty) element;
|
final JetProperty val = (JetProperty) element;
|
||||||
String name = val.getName();
|
String name = val.getName();
|
||||||
|
|
||||||
@@ -110,10 +110,12 @@ public class KotlinInlineLocalHandler extends InlineActionHandler {
|
|||||||
|
|
||||||
PsiReference[] referencesArray = references.toArray(references.toArray(new PsiReference[references.size()]));
|
PsiReference[] referencesArray = references.toArray(references.toArray(new PsiReference[references.size()]));
|
||||||
|
|
||||||
|
EditorColorsManager editorColorsManager = EditorColorsManager.getInstance();
|
||||||
|
final TextAttributes searchResultsAttributes = editorColorsManager.getGlobalScheme().getAttributes(EditorColors.SEARCH_RESULT_ATTRIBUTES);
|
||||||
|
final HighlightManager highlightManager = HighlightManager.getInstance(project);
|
||||||
|
|
||||||
if (editor != null && !ApplicationManager.getApplication().isUnitTestMode()) {
|
if (editor != null && !ApplicationManager.getApplication().isUnitTestMode()) {
|
||||||
EditorColorsManager editorColorsManager = EditorColorsManager.getInstance();
|
highlightManager.addOccurrenceHighlights(editor, referencesArray, searchResultsAttributes, true, null);
|
||||||
TextAttributes attributes = editorColorsManager.getGlobalScheme().getAttributes(EditorColors.SEARCH_RESULT_ATTRIBUTES);
|
|
||||||
HighlightManager.getInstance(project).addOccurrenceHighlights(editor, referencesArray, attributes, true, null);
|
|
||||||
if (!showDialog(project, name, references)) {
|
if (!showDialog(project, name, references)) {
|
||||||
StatusBar statusBar = WindowManager.getInstance().getStatusBar(project);
|
StatusBar statusBar = WindowManager.getInstance().getStatusBar(project);
|
||||||
if (statusBar != null) {
|
if (statusBar != null) {
|
||||||
@@ -154,6 +156,11 @@ public class KotlinInlineLocalHandler extends InlineActionHandler {
|
|||||||
if (parametersForFunctionLiteral != null) {
|
if (parametersForFunctionLiteral != null) {
|
||||||
addFunctionLiteralParameterTypes(parametersForFunctionLiteral, inlinedExpressions);
|
addFunctionLiteralParameterTypes(parametersForFunctionLiteral, inlinedExpressions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (editor != null && !ApplicationManager.getApplication().isUnitTestMode()) {
|
||||||
|
highlightManager.addOccurrenceHighlights(
|
||||||
|
editor, inlinedExpressions.toArray(new PsiElement[inlinedExpressions.size()]), searchResultsAttributes, true, null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user