diff --git a/idea/src/org/jetbrains/jet/plugin/findUsages/findUsagesOptions.kt b/idea/src/org/jetbrains/jet/plugin/findUsages/findUsagesOptions.kt index 28eded313d3..323a0b5eb64 100644 --- a/idea/src/org/jetbrains/jet/plugin/findUsages/findUsagesOptions.kt +++ b/idea/src/org/jetbrains/jet/plugin/findUsages/findUsagesOptions.kt @@ -63,51 +63,36 @@ public class KotlinPropertyFindUsagesOptions(project: Project): KotlinCallableFi } fun KotlinClassFindUsagesOptions.toClassHelper(): ClassUsagesSearchHelper = - ClassUsagesSearchHelper().let { builder -> - builder.constructorUsages = searchConstructorUsages - builder.nonConstructorUsages = isUsages - builder.skipImports = isSkipImportStatements - - builder - } + ClassUsagesSearchHelper( + constructorUsages = searchConstructorUsages, + nonConstructorUsages = isUsages, + skipImports = isSkipImportStatements + ) fun KotlinClassFindUsagesOptions.toClassDeclarationsHelper(): ClassDeclarationsUsagesSearchHelper = - ClassDeclarationsUsagesSearchHelper().let { builder -> - builder.functionUsages = isMethodsUsages - builder.propertyUsages = isFieldsUsages - builder.skipImports = isSkipImportStatements - - builder - } + ClassDeclarationsUsagesSearchHelper( + functionUsages = isMethodsUsages, + propertyUsages = isFieldsUsages, + skipImports = isSkipImportStatements + ) fun KotlinFunctionFindUsagesOptions.toHelper(): FunctionUsagesSearchHelper = - FunctionUsagesSearchHelper().let { builder -> - builder.selfUsages = isUsages - builder.overrideUsages = isUsages - builder.overloadUsages = isIncludeOverloadUsages - builder.extensionUsages = isIncludeOverloadUsages - builder.skipImports = isSkipImportStatements - - builder - } + FunctionUsagesSearchHelper( + selfUsages = isUsages, + overrideUsages = isUsages, + overloadUsages = isIncludeOverloadUsages, + extensionUsages = isIncludeOverloadUsages, + skipImports = isSkipImportStatements + ) fun KotlinPropertyFindUsagesOptions.toHelper(): PropertyUsagesSearchHelper = - PropertyUsagesSearchHelper().let { builder -> - builder.selfUsages = isUsages - builder.overrideUsages = isUsages - builder.readUsages = isReadAccess - builder.writeUsages = isWriteAccess - builder.skipImports = isSkipImportStatements - - builder - } - -fun JavaFindUsagesOptions.toHelper(): DeclarationUsagesSearchHelper = - DeclarationUsagesSearchHelper().let { builder -> - builder.skipImports = isSkipImportStatements - - builder - } + PropertyUsagesSearchHelper( + selfUsages = isUsages, + overrideUsages = isUsages, + readUsages = isReadAccess, + writeUsages = isWriteAccess, + skipImports = isSkipImportStatements + ) fun FindUsagesOptions.toSearchTarget(element: T, restrictByTarget: Boolean): UsagesSearchTarget { val location = if (isSearchForTextOccurrences && searchScope is GlobalSearchScope) diff --git a/idea/src/org/jetbrains/jet/plugin/search/usagesSearch/searchHelpers.kt b/idea/src/org/jetbrains/jet/plugin/search/usagesSearch/searchHelpers.kt index e4175051a90..3acf2156859 100644 --- a/idea/src/org/jetbrains/jet/plugin/search/usagesSearch/searchHelpers.kt +++ b/idea/src/org/jetbrains/jet/plugin/search/usagesSearch/searchHelpers.kt @@ -84,9 +84,9 @@ object DefaultUsagesSearchHelper: UsagesSearchHelper() val isNotImportUsage = !((PsiReference::isImportUsage).searchFilter) -open class DeclarationUsagesSearchHelper : UsagesSearchHelper() { - public var skipImports: Boolean = false - +open class DeclarationUsagesSearchHelper( + public val skipImports: Boolean = false +) : UsagesSearchHelper() { protected val isFilteredImport: UsagesSearchFilter get() = isNotImportUsage.ifOrTrue(skipImports) @@ -95,10 +95,11 @@ open class DeclarationUsagesSearchHelper : UsagesSearchHelp val isClassConstructorUsage = (PsiReference::isConstructorUsage).searchFilter -class ClassUsagesSearchHelper : DeclarationUsagesSearchHelper() { - public var constructorUsages: Boolean = false - public var nonConstructorUsages: Boolean = false - +class ClassUsagesSearchHelper( + public val constructorUsages: Boolean = false, + public val nonConstructorUsages: Boolean = false, + skipImports: Boolean = false +) : DeclarationUsagesSearchHelper(skipImports) { override fun makeFilter(target: UsagesSearchTarget): UsagesSearchFilter = super.makeFilter(target) and when { constructorUsages && !nonConstructorUsages -> isClassConstructorUsage @@ -108,10 +109,11 @@ class ClassUsagesSearchHelper : DeclarationUsagesSearchHelper( } } -class ClassDeclarationsUsagesSearchHelper : DeclarationUsagesSearchHelper() { - public var functionUsages: Boolean = false - public var propertyUsages: Boolean = false - +class ClassDeclarationsUsagesSearchHelper( + public val functionUsages: Boolean = false, + public val propertyUsages: Boolean = false, + skipImports: Boolean = false +) : DeclarationUsagesSearchHelper(skipImports) { override fun makeItemList(target: UsagesSearchTarget): List { val items = ArrayList() val declHelper = DeclarationUsagesSearchHelper(skipImports) @@ -128,10 +130,11 @@ class ClassDeclarationsUsagesSearchHelper : DeclarationUsagesSearchHelper: DeclarationUsagesSearchHelper() { - public var selfUsages: Boolean = true - public var overrideUsages: Boolean = true - +abstract class CallableUsagesSearchHelper( + public val selfUsages: Boolean = true, + public val overrideUsages: Boolean = true, + skipImports: Boolean = false +): DeclarationUsagesSearchHelper(skipImports) { val isTargetOrOverrideUsage: UsagesSearchFilter get() = isTargetUsage.ifOrFalse(selfUsages) or isOverrideUsage.ifOrFalse(overrideUsages) } @@ -139,10 +142,13 @@ abstract class CallableUsagesSearchHelper: Declaratio val isOverloadUsage = (PsiReference::isUsageInContainingDeclaration).searchFilter val isExtensionUsage = (PsiReference::isExtensionOfDeclarationClassUsage).searchFilter -class FunctionUsagesSearchHelper() : CallableUsagesSearchHelper() { - public var overloadUsages: Boolean = false - public var extensionUsages: Boolean = false - +class FunctionUsagesSearchHelper( + public val overloadUsages: Boolean = false, + public val extensionUsages: Boolean = false, + selfUsages: Boolean = true, + overrideUsages: Boolean = true, + skipImports: Boolean = false +) : CallableUsagesSearchHelper(selfUsages, overrideUsages, skipImports) { override fun makeFilter(target: UsagesSearchTarget): UsagesSearchFilter { return (isTargetOrOverrideUsage or isOverloadUsage.ifOrFalse(overloadUsages) @@ -152,10 +158,13 @@ class FunctionUsagesSearchHelper() : CallableUsagesSearchHelper() { - public var readUsages: Boolean = true - public var writeUsages: Boolean = true - +class PropertyUsagesSearchHelper( + public val readUsages: Boolean = true, + public val writeUsages: Boolean = true, + selfUsages: Boolean = true, + overrideUsages: Boolean = true, + skipImports: Boolean = false +) : CallableUsagesSearchHelper(selfUsages, overrideUsages, skipImports) { override fun makeWordList(target: UsagesSearchTarget): List { return target.element.names(readable = readUsages, writable = writeUsages) }