Highlight usages: highlight declaration/usage on call of function with lambda argument (KT-30824)

#KT-30824 Fixed
This commit is contained in:
Toshiaki Kameyama
2019-06-14 12:23:55 +09:00
committed by Nikolay Krasko
parent 26bef2d109
commit 6b36833ee2
@@ -64,7 +64,7 @@ class KotlinHighlightExitPointsHandlerFactory : HighlightUsagesHandlerFactoryBas
val lambda = call.lambdaArguments.singleOrNull() ?: return null val lambda = call.lambdaArguments.singleOrNull() ?: return null
val literal = lambda.getLambdaExpression()?.functionLiteral ?: return null val literal = lambda.getLambdaExpression()?.functionLiteral ?: return null
return OnExitUsagesHandler(editor, file, literal) return OnExitUsagesHandler(editor, file, literal, highlightReferences = true)
} }
} }
@@ -73,7 +73,7 @@ class KotlinHighlightExitPointsHandlerFactory : HighlightUsagesHandlerFactoryBas
?: getOnLambdaCallUsageHandler(editor, file, target) ?: getOnLambdaCallUsageHandler(editor, file, target)
} }
private class OnExitUsagesHandler(editor: Editor, file: PsiFile, val target: KtExpression) : private class OnExitUsagesHandler(editor: Editor, file: PsiFile, val target: KtExpression, val highlightReferences: Boolean = false) :
HighlightUsagesHandlerBase<PsiElement>(editor, file) { HighlightUsagesHandlerBase<PsiElement>(editor, file) {
override fun getTargets() = listOf(target) override fun getTargets() = listOf(target)
@@ -140,6 +140,8 @@ class KotlinHighlightExitPointsHandlerFactory : HighlightUsagesHandlerFactoryBas
} }
}) })
} }
override fun highlightReferences() = highlightReferences
} }
} }