mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
[Java. Logging] Fix false-positive logger detection on the project-level in the Gradle based projects
IDEA-331693 GitOrigin-RevId: 9659ab2d4abf5a44a5a6fa048f0289459f0d45a9
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d19e6c5925
commit
e92d03c465
@@ -29,7 +29,10 @@ class JvmLoggerFieldDelegate(
|
|||||||
return clazz.add(logger)
|
return clazz.add(logger)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun isAvailable(project: Project?): Boolean = JavaLibraryUtil.hasLibraryClass(project, loggerTypeName)
|
override fun isAvailable(project: Project?): Boolean {
|
||||||
|
return project != null
|
||||||
|
&& JavaPsiFacade.getInstance(project).findClass(loggerTypeName, ProjectContainingLibrariesScope.getScope(project)) != null
|
||||||
|
}
|
||||||
|
|
||||||
override fun isAvailable(module: Module?): Boolean = JavaLibraryUtil.hasLibraryClass(module, loggerTypeName)
|
override fun isAvailable(module: Module?): Boolean = JavaLibraryUtil.hasLibraryClass(module, loggerTypeName)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
// 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
|
||||||
|
|
||||||
|
import com.intellij.openapi.project.Project
|
||||||
|
import com.intellij.openapi.roots.ProjectFileIndex
|
||||||
|
import com.intellij.openapi.util.NotNullLazyKey
|
||||||
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
|
import com.intellij.psi.search.ProjectAndLibrariesScope
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scope which contains project files and libraries which are only available in the project, e.g. it excludes libraries for
|
||||||
|
* the configuration scripts like Gradle build script.
|
||||||
|
* */
|
||||||
|
class ProjectContainingLibrariesScope(project: Project) : ProjectAndLibrariesScope(project) {
|
||||||
|
private val projectFileIndex: ProjectFileIndex = ProjectFileIndex.getInstance(project);
|
||||||
|
|
||||||
|
override fun contains(file: VirtualFile): Boolean = !projectFileIndex.findContainingLibraries(file).isEmpty()
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private val PROJECT_CONTAINING_LIBRARIES_SCOPE_KEY = NotNullLazyKey.createLazyKey<GlobalSearchScope, Project>(
|
||||||
|
"PROJECT_CONTAINING_LIBRARIES_SCOPE_KEY"
|
||||||
|
) { project: Project -> ProjectContainingLibrariesScope(project) }
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun getScope(project: Project): GlobalSearchScope = PROJECT_CONTAINING_LIBRARIES_SCOPE_KEY.getValue(project)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package de.plushnikov.intellij.plugin.logging
|
|||||||
|
|
||||||
import com.intellij.java.library.JavaLibraryUtil
|
import com.intellij.java.library.JavaLibraryUtil
|
||||||
import com.intellij.lang.logging.JvmLogger
|
import com.intellij.lang.logging.JvmLogger
|
||||||
|
import com.intellij.lang.logging.ProjectContainingLibrariesScope
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.JavaPsiFacade
|
import com.intellij.psi.JavaPsiFacade
|
||||||
@@ -30,7 +31,9 @@ class JvmLoggerAnnotationDelegate(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun isAvailable(project: Project?): Boolean {
|
override fun isAvailable(project: Project?): Boolean {
|
||||||
return project != null && JavaLibraryUtil.hasLibraryClass(project, fieldLoggerName) && LombokLibraryUtil.hasLombokLibrary(project)
|
return project != null &&
|
||||||
|
JavaPsiFacade.getInstance(project).findClass(fieldLoggerName, ProjectContainingLibrariesScope.getScope(project)) != null
|
||||||
|
&& LombokLibraryUtil.hasLombokLibrary(project)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun isAvailable(module: Module?): Boolean {
|
override fun isAvailable(module: Module?): Boolean {
|
||||||
|
|||||||
Reference in New Issue
Block a user