@@ -33,18 +33,37 @@ sealed class DynamicInspectionDescriptor {
3333 else -> error(" Got ${tool} , expected ${LocalInspectionTool ::class .java} or ${GlobalInspectionTool ::class .java} " )
3434 }
3535 }
36+
37+ fun fromLocalToolWithWrapper (
38+ tool : LocalInspectionTool ,
39+ wrapperFactory : (LocalInspectionTool ) -> InspectionToolWrapper <* ,* >
40+ ): DynamicInspectionDescriptor {
41+ return LocalWithCustomWrapper (tool, wrapperFactory)
42+ }
3643 }
3744
38- val toolWrapper: InspectionToolWrapper <* , * > by lazy {
39- when (this ) {
40- is Local -> DynamicLocalInspectionToolWrapper (tool)
41- is Global -> DynamicGlobalInspectionToolWrapper (tool)
45+ abstract val toolWrapper: InspectionToolWrapper <* , * >
46+
47+ class Local (val tool : LocalInspectionTool ) : DynamicInspectionDescriptor() {
48+ override val toolWrapper: InspectionToolWrapper <* , * > by lazy {
49+ DynamicLocalInspectionToolWrapper (tool)
4250 }
4351 }
4452
45- class Local (val tool : LocalInspectionTool ) : DynamicInspectionDescriptor()
53+ class Global (val tool : GlobalInspectionTool ) : DynamicInspectionDescriptor() {
54+ override val toolWrapper: InspectionToolWrapper <* , * > by lazy {
55+ DynamicGlobalInspectionToolWrapper (tool)
56+ }
57+ }
4658
47- class Global (val tool : GlobalInspectionTool ) : DynamicInspectionDescriptor()
59+ class LocalWithCustomWrapper (
60+ val tool : LocalInspectionTool ,
61+ private val wrapperFactory : (LocalInspectionTool ) -> InspectionToolWrapper <* ,* >
62+ ) : DynamicInspectionDescriptor() {
63+ override val toolWrapper: InspectionToolWrapper <* , * > by lazy {
64+ wrapperFactory(tool)
65+ }
66+ }
4867
4968 private class DynamicLocalInspectionToolWrapper (tool : LocalInspectionTool ) : LocalInspectionToolWrapper(tool) {
5069 override fun createCopy (): LocalInspectionToolWrapper = DynamicLocalInspectionToolWrapper (tool)
0 commit comments