Search property declaration together with its accessor(s)
This commit is contained in:
+9
-9
@@ -119,17 +119,17 @@ public class KotlinSafeDeleteProcessor extends JavaSafeDeleteProcessor {
|
|||||||
}
|
}
|
||||||
if (element instanceof JetProperty) {
|
if (element instanceof JetProperty) {
|
||||||
JetProperty property = (JetProperty) element;
|
JetProperty property = (JetProperty) element;
|
||||||
NonCodeUsageSearchInfo searchInfo = findKotlinDeclarationUsages(property, allElementsToDelete, result);
|
|
||||||
|
|
||||||
if (property.isLocal()) return searchInfo;
|
if (property.isLocal()) return findKotlinDeclarationUsages(property, allElementsToDelete, result);
|
||||||
|
return new NonCodeUsageSearchInfo(
|
||||||
Condition<PsiElement> insideDeleted = delegateToJavaProcessorAndCombineConditions(
|
delegateToJavaProcessorAndCombineConditions(
|
||||||
LightClassUtil.getLightClassPropertyMethods(property),
|
LightClassUtil.getLightClassPropertyMethods(property),
|
||||||
searchInfo.getInsideDeletedCondition(),
|
getCondition(Arrays.asList(allElementsToDelete)),
|
||||||
allElementsToDelete,
|
allElementsToDelete,
|
||||||
result
|
result
|
||||||
|
),
|
||||||
|
element
|
||||||
);
|
);
|
||||||
return new NonCodeUsageSearchInfo(insideDeleted, element);
|
|
||||||
}
|
}
|
||||||
if (element instanceof JetTypeParameter) {
|
if (element instanceof JetTypeParameter) {
|
||||||
Condition<PsiElement> insideDeleted = delegateToJavaProcessorAndCombineConditions(
|
Condition<PsiElement> insideDeleted = delegateToJavaProcessorAndCombineConditions(
|
||||||
|
|||||||
+21
-13
@@ -19,17 +19,14 @@ package org.jetbrains.jet.plugin.search.ideaExtensions;
|
|||||||
import com.intellij.openapi.application.ApplicationManager;
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
import com.intellij.openapi.application.QueryExecutorBase;
|
import com.intellij.openapi.application.QueryExecutorBase;
|
||||||
import com.intellij.openapi.util.Computable;
|
import com.intellij.openapi.util.Computable;
|
||||||
import com.intellij.psi.PsiClass;
|
import com.intellij.psi.*;
|
||||||
import com.intellij.psi.PsiElement;
|
|
||||||
import com.intellij.psi.PsiMethod;
|
|
||||||
import com.intellij.psi.PsiReference;
|
|
||||||
import com.intellij.psi.search.searches.ReferencesSearch;
|
import com.intellij.psi.search.searches.ReferencesSearch;
|
||||||
|
import com.intellij.psi.util.PsiTreeUtil;
|
||||||
import com.intellij.util.Processor;
|
import com.intellij.util.Processor;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.asJava.LightClassUtil;
|
import org.jetbrains.jet.asJava.LightClassUtil;
|
||||||
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.psi.JetNamedFunction;
|
import org.jetbrains.jet.lang.resolve.java.jetAsJava.KotlinLightMethod;
|
||||||
import org.jetbrains.jet.lang.psi.JetProperty;
|
|
||||||
import org.jetbrains.jet.plugin.JetPluginUtil;
|
import org.jetbrains.jet.plugin.JetPluginUtil;
|
||||||
|
|
||||||
public class KotlinReferencesSearcher extends QueryExecutorBase<PsiReference, ReferencesSearch.SearchParameters> {
|
public class KotlinReferencesSearcher extends QueryExecutorBase<PsiReference, ReferencesSearch.SearchParameters> {
|
||||||
@@ -69,7 +66,7 @@ public class KotlinReferencesSearcher extends QueryExecutorBase<PsiReference, Re
|
|||||||
return LightClassUtil.getLightClassMethod(function);
|
return LightClassUtil.getLightClassMethod(function);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
searchMethod(queryParameters, method);
|
searchNamedElement(queryParameters, method);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (element instanceof JetProperty) {
|
else if (element instanceof JetProperty) {
|
||||||
@@ -82,14 +79,25 @@ public class KotlinReferencesSearcher extends QueryExecutorBase<PsiReference, Re
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
searchMethod(queryParameters, propertyMethods.getGetter());
|
searchNamedElement(queryParameters, propertyMethods.getGetter());
|
||||||
searchMethod(queryParameters, propertyMethods.getSetter());
|
searchNamedElement(queryParameters, propertyMethods.getSetter());
|
||||||
|
}
|
||||||
|
else if (element instanceof KotlinLightMethod) {
|
||||||
|
JetDeclaration declaration = ((KotlinLightMethod) element).getOrigin();
|
||||||
|
if (declaration instanceof JetProperty
|
||||||
|
|| (declaration instanceof JetParameter && ((JetParameter) declaration).getValOrVarNode() != null)) {
|
||||||
|
searchNamedElement(queryParameters, (PsiNamedElement) declaration);
|
||||||
|
}
|
||||||
|
else if (declaration instanceof JetPropertyAccessor) {
|
||||||
|
searchNamedElement(queryParameters, PsiTreeUtil.getParentOfType(declaration, JetProperty.class));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void searchMethod(ReferencesSearch.SearchParameters queryParameters, PsiMethod method) {
|
private static void searchNamedElement(ReferencesSearch.SearchParameters queryParameters, PsiNamedElement element) {
|
||||||
if (method != null) {
|
String name = element != null ? element.getName() : null;
|
||||||
queryParameters.getOptimizer().searchWord(method.getName(), queryParameters.getEffectiveSearchScope(), true, method);
|
if (name != null) {
|
||||||
|
queryParameters.getOptimizer().searchWord(name, queryParameters.getEffectiveSearchScope(), true, element);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user