mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-26 15:27:45 +07:00
do not exclude ';' if selected expression statemet contains it
This commit is contained in:
@@ -24,6 +24,7 @@ import com.intellij.util.FilteredQuery;
|
||||
import com.intellij.util.Processor;
|
||||
import com.intellij.util.Query;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -31,17 +32,20 @@ import java.util.*;
|
||||
*
|
||||
*/
|
||||
public class CodeInsightUtil {
|
||||
@Nullable
|
||||
public static PsiExpression findExpressionInRange(PsiFile file, int startOffset, int endOffset) {
|
||||
if (!file.getViewProvider().getLanguages().contains(StdLanguages.JAVA)) return null;
|
||||
PsiElement element2 = file.getViewProvider().findElementAt(endOffset - 1, StdLanguages.JAVA);
|
||||
if (element2 instanceof PsiJavaToken) {
|
||||
final PsiJavaToken token = (PsiJavaToken)element2;
|
||||
final IElementType tokenType = token.getTokenType();
|
||||
if (tokenType.equals(JavaTokenType.SEMICOLON)) {
|
||||
endOffset = element2.getTextRange().getStartOffset();
|
||||
PsiExpression expression = findElementInRange(file, startOffset, endOffset, PsiExpression.class);
|
||||
if (expression == null && findStatementsInRange(file, startOffset, endOffset).length == 0) {
|
||||
PsiElement element2 = file.getViewProvider().findElementAt(endOffset - 1, StdLanguages.JAVA);
|
||||
if (element2 instanceof PsiJavaToken) {
|
||||
final PsiJavaToken token = (PsiJavaToken)element2;
|
||||
final IElementType tokenType = token.getTokenType();
|
||||
if (tokenType.equals(JavaTokenType.SEMICOLON)) {
|
||||
expression = findElementInRange(file, startOffset, element2.getTextRange().getStartOffset(), PsiExpression.class);
|
||||
}
|
||||
}
|
||||
}
|
||||
final PsiExpression expression = findElementInRange(file, startOffset, endOffset, PsiExpression.class);
|
||||
if (expression instanceof PsiReferenceExpression && expression.getParent() instanceof PsiMethodCallExpression) return null;
|
||||
return expression;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user