Translate find usage options to Kotlin
This commit is contained in:
@@ -22,8 +22,6 @@ import com.intellij.openapi.project.Project
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.jet.lang.psi.JetClass
|
import org.jetbrains.jet.lang.psi.JetClass
|
||||||
import org.jetbrains.jet.lang.psi.JetDeclaration
|
import org.jetbrains.jet.lang.psi.JetDeclaration
|
||||||
import org.jetbrains.jet.plugin.findUsages.options.KotlinClassFindUsagesOptions
|
|
||||||
import org.jetbrains.jet.plugin.findUsages.options.KotlinMethodFindUsagesOptions
|
|
||||||
import org.jetbrains.jet.lang.psi.JetNamedFunction
|
import org.jetbrains.jet.lang.psi.JetNamedFunction
|
||||||
import org.jetbrains.jet.plugin.findUsages.handlers.KotlinFindClassUsagesHandler
|
import org.jetbrains.jet.plugin.findUsages.handlers.KotlinFindClassUsagesHandler
|
||||||
import org.jetbrains.jet.plugin.findUsages.handlers.KotlinFindFunctionUsagesHandler
|
import org.jetbrains.jet.plugin.findUsages.handlers.KotlinFindFunctionUsagesHandler
|
||||||
|
|||||||
+3
-3
@@ -12,7 +12,7 @@ import com.intellij.ui.StateRestoringCheckBox;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.asJava.KotlinLightClassForExplicitDeclaration;
|
import org.jetbrains.jet.asJava.KotlinLightClassForExplicitDeclaration;
|
||||||
import org.jetbrains.jet.plugin.JetBundle;
|
import org.jetbrains.jet.plugin.JetBundle;
|
||||||
import org.jetbrains.jet.plugin.findUsages.options.KotlinClassFindUsagesOptions;
|
import org.jetbrains.jet.plugin.findUsages.*;
|
||||||
import org.jetbrains.jet.plugin.refactoring.JetRefactoringUtil;
|
import org.jetbrains.jet.plugin.refactoring.JetRefactoringUtil;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
@@ -67,7 +67,7 @@ public class KotlinFindClassUsagesDialog extends FindClassUsagesDialog {
|
|||||||
);
|
);
|
||||||
constructorUsages = addCheckboxToPanel(
|
constructorUsages = addCheckboxToPanel(
|
||||||
JetBundle.message("find.what.constructor.usages.checkbox"),
|
JetBundle.message("find.what.constructor.usages.checkbox"),
|
||||||
getFindUsagesOptions().searchConstructorUsages,
|
getFindUsagesOptions().getSearchConstructorUsages(),
|
||||||
findWhatPanel,
|
findWhatPanel,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
@@ -101,7 +101,7 @@ public class KotlinFindClassUsagesDialog extends FindClassUsagesDialog {
|
|||||||
super.calcFindUsagesOptions(options);
|
super.calcFindUsagesOptions(options);
|
||||||
|
|
||||||
KotlinClassFindUsagesOptions kotlinOptions = (KotlinClassFindUsagesOptions) options;
|
KotlinClassFindUsagesOptions kotlinOptions = (KotlinClassFindUsagesOptions) options;
|
||||||
kotlinOptions.searchConstructorUsages = constructorUsages.isSelected();
|
kotlinOptions.setSearchConstructorUsages(constructorUsages.isSelected());
|
||||||
kotlinOptions.isDerivedClasses = derivedClasses.isSelected();
|
kotlinOptions.isDerivedClasses = derivedClasses.isSelected();
|
||||||
kotlinOptions.isDerivedInterfaces = derivedTraits.isSelected();
|
kotlinOptions.isDerivedInterfaces = derivedTraits.isSelected();
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@ import com.intellij.psi.PsiMethod;
|
|||||||
import com.intellij.ui.SimpleColoredComponent;
|
import com.intellij.ui.SimpleColoredComponent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.plugin.JetBundle;
|
import org.jetbrains.jet.plugin.JetBundle;
|
||||||
import org.jetbrains.jet.plugin.findUsages.options.KotlinMethodFindUsagesOptions;
|
import org.jetbrains.jet.plugin.findUsages.KotlinMethodFindUsagesOptions;
|
||||||
import org.jetbrains.jet.plugin.refactoring.JetRefactoringUtil;
|
import org.jetbrains.jet.plugin.refactoring.JetRefactoringUtil;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2013 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.jet.plugin.findUsages
|
||||||
|
|
||||||
|
import com.intellij.find.findUsages.JavaMethodFindUsagesOptions
|
||||||
|
import com.intellij.openapi.project.Project
|
||||||
|
import com.intellij.find.findUsages.JavaClassFindUsagesOptions
|
||||||
|
|
||||||
|
public class KotlinMethodFindUsagesOptions(project: Project) : JavaMethodFindUsagesOptions(project)
|
||||||
|
|
||||||
|
public class KotlinClassFindUsagesOptions(project : Project) : JavaClassFindUsagesOptions(project) {
|
||||||
|
public var searchConstructorUsages : Boolean = true
|
||||||
|
|
||||||
|
public override fun equals(o : Any?) : Boolean {
|
||||||
|
return super.equals(o) && o is KotlinClassFindUsagesOptions && o.searchConstructorUsages == searchConstructorUsages
|
||||||
|
}
|
||||||
|
|
||||||
|
public override fun hashCode() : Int {
|
||||||
|
return 31 * super.hashCode() + if (searchConstructorUsages) 1 else 0
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
-4
@@ -43,7 +43,7 @@ import org.jetbrains.jet.lang.psi.JetProperty;
|
|||||||
import org.jetbrains.jet.plugin.findUsages.FindUsagesPackage;
|
import org.jetbrains.jet.plugin.findUsages.FindUsagesPackage;
|
||||||
import org.jetbrains.jet.plugin.findUsages.KotlinFindUsagesHandlerFactory;
|
import org.jetbrains.jet.plugin.findUsages.KotlinFindUsagesHandlerFactory;
|
||||||
import org.jetbrains.jet.plugin.findUsages.dialogs.KotlinFindClassUsagesDialog;
|
import org.jetbrains.jet.plugin.findUsages.dialogs.KotlinFindClassUsagesDialog;
|
||||||
import org.jetbrains.jet.plugin.findUsages.options.KotlinClassFindUsagesOptions;
|
import org.jetbrains.jet.plugin.findUsages.KotlinClassFindUsagesOptions;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
@@ -75,13 +75,13 @@ public class KotlinFindClassUsagesHandler extends KotlinFindUsagesHandler<JetCla
|
|||||||
KotlinClassFindUsagesOptions kotlinOptions = (KotlinClassFindUsagesOptions)options;
|
KotlinClassFindUsagesOptions kotlinOptions = (KotlinClassFindUsagesOptions)options;
|
||||||
JetClass jetClass = (JetClass) element;
|
JetClass jetClass = (JetClass) element;
|
||||||
|
|
||||||
if (kotlinOptions.isUsages || kotlinOptions.searchConstructorUsages) {
|
if (kotlinOptions.isUsages || kotlinOptions.getSearchConstructorUsages()) {
|
||||||
Collection<PsiReference> references = ReferencesSearch.search(
|
Collection<PsiReference> references = ReferencesSearch.search(
|
||||||
new ReferencesSearch.SearchParameters(jetClass, kotlinOptions.searchScope, false)
|
new ReferencesSearch.SearchParameters(jetClass, kotlinOptions.searchScope, false)
|
||||||
).findAll();
|
).findAll();
|
||||||
for (PsiReference ref : references) {
|
for (PsiReference ref : references) {
|
||||||
boolean constructorUsage = FindUsagesPackage.isConstructorUsage(ref.getElement(), jetClass);
|
boolean constructorUsage = FindUsagesPackage.isConstructorUsage(ref.getElement(), jetClass);
|
||||||
if ((constructorUsage && !kotlinOptions.searchConstructorUsages)
|
if ((constructorUsage && !kotlinOptions.getSearchConstructorUsages())
|
||||||
|| (!constructorUsage && !kotlinOptions.isUsages)) continue;
|
|| (!constructorUsage && !kotlinOptions.isUsages)) continue;
|
||||||
|
|
||||||
processUsage(processor, ref, kotlinOptions);
|
processUsage(processor, ref, kotlinOptions);
|
||||||
@@ -91,8 +91,8 @@ public class KotlinFindClassUsagesHandler extends KotlinFindUsagesHandler<JetCla
|
|||||||
PsiClass lightClass = LightClassUtil.getPsiClass(getElement());
|
PsiClass lightClass = LightClassUtil.getPsiClass(getElement());
|
||||||
if (lightClass == null) return true;
|
if (lightClass == null) return true;
|
||||||
|
|
||||||
if (!processInheritors(lightClass, processor, kotlinOptions)) return false;
|
|
||||||
if (!processDeclarationsUsages(jetClass, processor, kotlinOptions)) return false;
|
if (!processDeclarationsUsages(jetClass, processor, kotlinOptions)) return false;
|
||||||
|
if (!processInheritors(lightClass, processor, kotlinOptions)) return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -37,9 +37,9 @@ import org.jetbrains.jet.lang.psi.*;
|
|||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
import org.jetbrains.jet.plugin.findUsages.KotlinFindUsagesHandlerFactory;
|
import org.jetbrains.jet.plugin.findUsages.KotlinFindUsagesHandlerFactory;
|
||||||
import org.jetbrains.jet.plugin.findUsages.dialogs.KotlinFindMethodUsagesDialog;
|
import org.jetbrains.jet.plugin.findUsages.dialogs.KotlinFindMethodUsagesDialog;
|
||||||
|
import org.jetbrains.jet.plugin.findUsages.KotlinMethodFindUsagesOptions;
|
||||||
import org.jetbrains.jet.plugin.hierarchy.calls.CalleeReferenceVisitorBase;
|
import org.jetbrains.jet.plugin.hierarchy.calls.CalleeReferenceVisitorBase;
|
||||||
import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache;
|
import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache;
|
||||||
import org.jetbrains.jet.plugin.findUsages.options.KotlinMethodFindUsagesOptions;
|
|
||||||
import org.jetbrains.jet.plugin.search.KotlinExtensionSearch;
|
import org.jetbrains.jet.plugin.search.KotlinExtensionSearch;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|||||||
-27
@@ -1,27 +0,0 @@
|
|||||||
package org.jetbrains.jet.plugin.findUsages.options;
|
|
||||||
|
|
||||||
import com.intellij.find.findUsages.JavaClassFindUsagesOptions;
|
|
||||||
import com.intellij.openapi.project.Project;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
public class KotlinClassFindUsagesOptions extends JavaClassFindUsagesOptions {
|
|
||||||
public boolean searchConstructorUsages = true;
|
|
||||||
|
|
||||||
public KotlinClassFindUsagesOptions(@NotNull Project project) {
|
|
||||||
super(project);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
return super.equals(o)
|
|
||||||
&& o instanceof KotlinClassFindUsagesOptions
|
|
||||||
&& ((KotlinClassFindUsagesOptions) o).searchConstructorUsages == searchConstructorUsages;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
int result = super.hashCode();
|
|
||||||
result = 31 * result + (searchConstructorUsages ? 1 : 0);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-11
@@ -1,11 +0,0 @@
|
|||||||
package org.jetbrains.jet.plugin.findUsages.options;
|
|
||||||
|
|
||||||
import com.intellij.find.findUsages.JavaMethodFindUsagesOptions;
|
|
||||||
import com.intellij.openapi.project.Project;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
public class KotlinMethodFindUsagesOptions extends JavaMethodFindUsagesOptions {
|
|
||||||
public KotlinMethodFindUsagesOptions(@NotNull Project project) {
|
|
||||||
super(project);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -49,8 +49,8 @@ import org.jetbrains.jet.lang.psi.JetClass;
|
|||||||
import org.jetbrains.jet.lang.psi.JetNamedFunction;
|
import org.jetbrains.jet.lang.psi.JetNamedFunction;
|
||||||
import org.jetbrains.jet.plugin.JetLightProjectDescriptor;
|
import org.jetbrains.jet.plugin.JetLightProjectDescriptor;
|
||||||
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
||||||
import org.jetbrains.jet.plugin.findUsages.options.KotlinClassFindUsagesOptions;
|
import org.jetbrains.jet.plugin.findUsages.KotlinClassFindUsagesOptions;
|
||||||
import org.jetbrains.jet.plugin.findUsages.options.KotlinMethodFindUsagesOptions;
|
import org.jetbrains.jet.plugin.findUsages.KotlinMethodFindUsagesOptions;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FilenameFilter;
|
import java.io.FilenameFilter;
|
||||||
@@ -67,12 +67,12 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT
|
|||||||
public FindUsagesOptions parse(@NotNull String text, @NotNull Project project) {
|
public FindUsagesOptions parse(@NotNull String text, @NotNull Project project) {
|
||||||
KotlinClassFindUsagesOptions options = new KotlinClassFindUsagesOptions(project);
|
KotlinClassFindUsagesOptions options = new KotlinClassFindUsagesOptions(project);
|
||||||
options.isUsages = false;
|
options.isUsages = false;
|
||||||
options.searchConstructorUsages = false;
|
options.setSearchConstructorUsages(false);
|
||||||
for (String s : InTextDirectivesUtils.findListWithPrefixes(text, "// OPTIONS: ")) {
|
for (String s : InTextDirectivesUtils.findListWithPrefixes(text, "// OPTIONS: ")) {
|
||||||
if (parseCommonOptions(options, s)) continue;
|
if (parseCommonOptions(options, s)) continue;
|
||||||
|
|
||||||
if (s.equals("constructorUsages")) {
|
if (s.equals("constructorUsages")) {
|
||||||
options.searchConstructorUsages = true;
|
options.setSearchConstructorUsages(true);
|
||||||
}
|
}
|
||||||
else if (s.equals("derivedInterfaces")) {
|
else if (s.equals("derivedInterfaces")) {
|
||||||
options.isDerivedInterfaces = true;
|
options.isDerivedInterfaces = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user