mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 02:59:33 +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)
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
|
||||
@@ -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.lang.logging.JvmLogger
|
||||
import com.intellij.lang.logging.ProjectContainingLibrariesScope
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.JavaPsiFacade
|
||||
@@ -30,7 +31,9 @@ class JvmLoggerAnnotationDelegate(
|
||||
}
|
||||
|
||||
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 {
|
||||
|
||||
Reference in New Issue
Block a user