[java] introduce variable from subexpression: fix visible highlighting (IDEA-277489)

passed expressions are non-physical, thus containing expression range should be considered

GitOrigin-RevId: 59962f0604b1bc1b72728ca8a72c7ef1e08e1107
This commit is contained in:
Anna Kozlova
2021-09-07 07:14:23 +00:00
committed by intellij-monorepo-bot
parent d0d7c8c282
commit c752c69914
@@ -866,7 +866,16 @@ public abstract class IntroduceVariableBase extends IntroduceHandlerBase {
String title = occurrencesInfo.myChainMethodName != null && occurrences.length == 1
? JavaRefactoringBundle.message("replace.lambda.chain.detected")
: RefactoringBundle.message("replace.multiple.occurrences.found");
OccurrencesChooser.<PsiExpression>simpleChooser(editor).showChooser(callback, occurrencesMap, title);
new OccurrencesChooser<PsiExpression>(editor) {
@Override
protected TextRange getOccurrenceRange(PsiExpression occurrence) {
RangeMarker rangeMarker = occurrence.getUserData(ElementToWorkOn.TEXT_RANGE);
if (rangeMarker != null) {
return new TextRange(rangeMarker.getStartOffset(), rangeMarker.getEndOffset());
}
return occurrence.getTextRange();
}
}.showChooser(callback, occurrencesMap, title);
}
return callback.wasSucceed;
}