[Java. Logging] Move logger resolving to the JVM analysis bundle

IDEA-342484

GitOrigin-RevId: 9f98a40539d33fce41d109c4544b8daf5719f2d8
This commit is contained in:
Georgii Ustinov
2024-03-15 13:34:56 +00:00
committed by intellij-monorepo-bot
parent d6a3024a82
commit 42a14ce93c
18 changed files with 36 additions and 42 deletions
@@ -2511,15 +2511,6 @@
<pluginSuggestionProvider implementation="com.intellij.ide.android.AndroidSuggestionProvider"/>
<statistics.counterUsagesCollector
implementationClass="com.intellij.codeInsight.generation.analysis.GenerateLoggerStatisticsCollector"/>
<psi.symbolReferenceProvider
hostElementClass="com.intellij.model.psi.PsiExternalReferenceHost"
hostLanguage="UAST"
implementationClass="com.intellij.lang.logging.resolve.JvmLoggerSymbolReferenceProvider"
targetClass="com.intellij.lang.logging.resolve.JvmLoggerArgumentSymbol"/>
<searcher forClass="com.intellij.find.usages.api.UsageSearchParameters"
implementationClass="com.intellij.lang.logging.resolve.JvmLoggerUsageSearcher"/>
</extensions>
<extensions defaultExtensionNs="org.jetbrains">
@@ -181,6 +181,15 @@
<inspectionCustomComponent implementation="com.intellij.codeInsight.options.JavaInspectionButtons"/>
<psi.symbolReferenceProvider
hostElementClass="com.intellij.model.psi.PsiExternalReferenceHost"
hostLanguage="UAST"
implementationClass="com.intellij.analysis.logging.resolve.JvmLoggerSymbolReferenceProvider"
targetClass="com.intellij.analysis.logging.resolve.JvmLoggerArgumentSymbol"/>
<searcher forClass="com.intellij.find.usages.api.UsageSearchParameters"
implementationClass="com.intellij.analysis.logging.resolve.JvmLoggerUsageSearcher"/>
<!--console filter-->
<colorSettingsPage implementation="com.intellij.analysis.customization.console.ClassFinderConsoleColorsPage"/>
<consoleFilterProvider implementation="com.intellij.analysis.customization.console.ClassLoggingConsoleFilterProvider"/>
@@ -4,6 +4,7 @@ package com.intellij.analysis.customization.console
import com.intellij.analysis.JvmAnalysisBundle
import com.intellij.codeInsight.CodeInsightBundle
import com.intellij.codeInsight.navigation.PsiTargetNavigator
import com.intellij.codeInspection.logging.*
import com.intellij.execution.filters.HyperlinkInfoFactory
import com.intellij.ide.util.EditSourceUtil
import com.intellij.openapi.actionSystem.ex.ActionUtil.underModalProgress
@@ -18,7 +19,6 @@ import com.intellij.psi.PsiDocumentManager
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiManager
import com.intellij.psi.PsiRecursiveElementVisitor
import com.intellij.util.logging.*
import org.jetbrains.uast.*
internal class LogFinderHyperlinkHandler(private val probableClassName: ProbableClassName) : HyperlinkInfoFactory.HyperlinkHandler {
@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.lang.logging.resolve
package com.intellij.analysis.logging.resolve
import com.intellij.find.usages.api.SearchTarget
import com.intellij.find.usages.api.UsageHandler
@@ -12,10 +12,10 @@ import com.intellij.platform.backend.navigation.NavigationTarget
import com.intellij.platform.backend.presentation.TargetPresentation
import com.intellij.psi.PsiElement
import com.intellij.psi.SmartPointerManager
import com.intellij.util.logging.LOGGER_RESOLVE_TYPE_SEARCHERS
import com.intellij.util.logging.LoggingUtil
import com.intellij.util.logging.detectLoggerMethod
import com.intellij.util.logging.getPlaceholderContext
import com.intellij.codeInspection.logging.LOGGER_RESOLVE_TYPE_SEARCHERS
import com.intellij.codeInspection.logging.LoggingUtil
import com.intellij.codeInspection.logging.detectLoggerMethod
import com.intellij.codeInspection.logging.getPlaceholderContext
import org.jetbrains.uast.UCallExpression
import org.jetbrains.uast.UExpression
import org.jetbrains.uast.getParentOfType
@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.lang.logging.resolve
package com.intellij.analysis.logging.resolve
import com.intellij.model.Symbol
import com.intellij.model.psi.PsiSymbolReference
@@ -1,6 +1,7 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.lang.logging.resolve
package com.intellij.analysis.logging.resolve
import com.intellij.codeInspection.logging.*
import com.intellij.model.Symbol
import com.intellij.model.psi.PsiExternalReferenceHost
import com.intellij.model.psi.PsiSymbolReference
@@ -10,8 +11,7 @@ import com.intellij.model.search.SearchRequest
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.TextRange
import com.intellij.psi.PsiElement
import com.intellij.util.logging.*
import com.intellij.util.logging.PlaceholderLoggerType.*
import com.intellij.codeInspection.logging.PlaceholderLoggerType.*
import org.jetbrains.uast.*
class JvmLoggerSymbolReferenceProvider : PsiSymbolReferenceProvider {
@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.lang.logging.resolve
package com.intellij.analysis.logging.resolve
import com.intellij.find.usages.api.PsiUsage
import com.intellij.find.usages.api.Usage
@@ -3,7 +3,6 @@ package com.intellij.codeInspection.logging
import com.intellij.analysis.JvmAnalysisBundle
import com.intellij.codeInspection.*
import com.intellij.util.logging.LoggingUtil
import com.intellij.modcommand.ModPsiUpdater
import com.intellij.modcommand.PsiUpdateModCommandQuickFix
import com.intellij.openapi.project.Project
@@ -16,7 +16,6 @@ import com.intellij.psi.PsiElementVisitor
import com.intellij.psi.PsiWhiteSpace
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.uast.UastHintedVisitorAdapter
import com.intellij.util.logging.LoggingUtil
import org.jetbrains.uast.*
import org.jetbrains.uast.generate.replace
import org.jetbrains.uast.visitor.AbstractUastNonRecursiveVisitor
@@ -9,7 +9,6 @@ import com.intellij.codeInspection.options.OptPane
import com.intellij.codeInspection.util.InspectionMessage
import com.intellij.psi.PsiElementVisitor
import com.intellij.uast.UastHintedVisitorAdapter
import com.intellij.util.logging.*
import org.jetbrains.uast.UCallExpression
import org.jetbrains.uast.UExpression
import org.jetbrains.uast.visitor.AbstractUastNonRecursiveVisitor
@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.util.logging
package com.intellij.codeInspection.logging
import com.intellij.openapi.util.TextRange
import com.intellij.psi.*
@@ -18,7 +18,6 @@ import com.intellij.psi.PsiElementVisitor
import com.intellij.psi.SmartPointerManager
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.uast.UastHintedVisitorAdapter
import com.intellij.util.logging.*
import org.jetbrains.annotations.Nls
import org.jetbrains.uast.*
import org.jetbrains.uast.visitor.AbstractUastNonRecursiveVisitor
@@ -7,7 +7,7 @@ import com.intellij.codeInsight.options.JavaIdentifierValidator
import com.intellij.codeInspection.AbstractBaseUastLocalInspectionTool
import com.intellij.codeInspection.LocalInspectionToolSession
import com.intellij.codeInspection.ProblemsHolder
import com.intellij.util.logging.LoggingUtil.LimitLevelType
import com.intellij.codeInspection.logging.LoggingUtil.LimitLevelType
import com.intellij.codeInspection.options.OptDescribedComponent
import com.intellij.codeInspection.options.OptPane
import com.intellij.codeInspection.options.OptRegularComponent
@@ -24,7 +24,6 @@ import com.intellij.psi.codeStyle.JavaCodeStyleManager
import com.intellij.psi.impl.LanguageConstantExpressionEvaluator
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.uast.UastHintedVisitorAdapter
import com.intellij.util.logging.LoggingUtil
import com.siyeh.ig.psiutils.CommentTracker
import com.siyeh.ig.psiutils.JavaLoggingUtils
import org.jetbrains.uast.*
@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.util.logging
package com.intellij.codeInspection.logging
import com.intellij.openapi.progress.ProgressManager
import com.intellij.psi.PsiTypes
@@ -12,11 +12,10 @@ import com.intellij.psi.PsiType
import com.intellij.psi.util.InheritanceUtil
import com.intellij.psi.util.TypeConversionUtil
import com.intellij.uast.UastHintedVisitorAdapter
import com.intellij.util.logging.LoggingUtil
import com.intellij.util.logging.LoggingUtil.Companion
import com.intellij.util.logging.LoggingUtil.Companion.LOG_MATCHERS
import com.intellij.util.logging.LoggingUtil.Companion.countPlaceHolders
import com.intellij.util.logging.LoggingUtil.Companion.isGuarded
import com.intellij.codeInspection.logging.LoggingUtil.Companion
import com.intellij.codeInspection.logging.LoggingUtil.Companion.LOG_MATCHERS
import com.intellij.codeInspection.logging.LoggingUtil.Companion.countPlaceHolders
import com.intellij.codeInspection.logging.LoggingUtil.Companion.isGuarded
import org.jetbrains.uast.*
import org.jetbrains.uast.expressions.UInjectionHost
import org.jetbrains.uast.generate.getUastElementFactory
@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.util.logging
package com.intellij.codeInspection.logging
import com.intellij.java.library.JavaLibraryUtil
import com.intellij.psi.util.CachedValueProvider
@@ -78,12 +78,12 @@ class LoggingUtil {
val loggerLevel = getLoggerLevel(node)
if (loggerLevel == null) return true
val notSkip: Boolean = when (loggerLevel) {
Companion.LevelType.FATAL -> false
Companion.LevelType.ERROR -> false
Companion.LevelType.WARN -> myLimitLevelType.ordinal == LimitLevelType.WARN_AND_LOWER.ordinal
Companion.LevelType.INFO -> myLimitLevelType.ordinal <= LimitLevelType.INFO_AND_LOWER.ordinal
Companion.LevelType.DEBUG -> myLimitLevelType.ordinal <= LimitLevelType.DEBUG_AND_LOWER.ordinal
Companion.LevelType.TRACE -> myLimitLevelType.ordinal <= LimitLevelType.TRACE.ordinal
LevelType.FATAL -> false
LevelType.ERROR -> false
LevelType.WARN -> myLimitLevelType.ordinal == LimitLevelType.WARN_AND_LOWER.ordinal
LevelType.INFO -> myLimitLevelType.ordinal <= LimitLevelType.INFO_AND_LOWER.ordinal
LevelType.DEBUG -> myLimitLevelType.ordinal <= LimitLevelType.DEBUG_AND_LOWER.ordinal
LevelType.TRACE -> myLimitLevelType.ordinal <= LimitLevelType.TRACE.ordinal
}
return !notSkip
}
@@ -4,7 +4,7 @@ import com.intellij.codeHighlighting.HighlightDisplayLevel
import com.intellij.codeInsight.daemon.HighlightDisplayKey
import com.intellij.codeInspection.logging.LoggingStatementNotGuardedByLogConditionInspection
import com.intellij.profile.codeInspection.ProjectInspectionProfileManager.Companion.getInstance
import com.intellij.util.logging.LoggingUtil
import com.intellij.codeInspection.logging.LoggingUtil
abstract class LoggingStatementNotGuardedByLogConditionInspectionTestBase : LoggingInspectionTestBase() {
override val inspection = LoggingStatementNotGuardedByLogConditionInspection()
@@ -5,7 +5,7 @@ import com.intellij.codeInspection.logging.LoggingStringTemplateAsArgumentInspec
import com.intellij.jvm.analysis.KotlinJvmAnalysisTestUtil
import com.intellij.jvm.analysis.internal.testFramework.logging.LoggingStringTemplateAsArgumentInspectionTestBase
import com.intellij.testFramework.TestDataPath
import com.intellij.util.logging.LoggingUtil
import com.intellij.codeInspection.logging.LoggingUtil
import org.junit.experimental.runners.Enclosed
import org.junit.runner.RunWith