mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-14 18:05:27 +07:00
[Java. Logging] Add Lombok Slf4 logger
IDEA-331693 GitOrigin-RevId: 6cd26276b28bba8b8082717001300c876ff910ce
This commit is contained in:
committed by
intellij-monorepo-bot
parent
bf968f0dee
commit
7ef6316e14
@@ -0,0 +1,37 @@
|
||||
package de.plushnikov.intellij.plugin.logging
|
||||
|
||||
import com.intellij.java.library.JavaLibraryUtil
|
||||
import com.intellij.logging.JvmLogger
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.JavaPsiFacade
|
||||
import com.intellij.psi.PsiAnnotation
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager
|
||||
import de.plushnikov.intellij.plugin.util.LombokLibraryUtil
|
||||
|
||||
class JvmLoggerAnnotationDelegate(
|
||||
private val fieldLoggerName: String,
|
||||
override val loggerTypeName: String,
|
||||
override val priority: Int
|
||||
) : JvmLogger {
|
||||
override fun insertLoggerAtClass(project: Project, clazz: PsiClass, logger: PsiElement): PsiElement? {
|
||||
if (logger !is PsiAnnotation) return null
|
||||
JavaCodeStyleManager.getInstance(project).shortenClassReferences(logger)
|
||||
return clazz.modifierList?.addAfter(logger, null)
|
||||
}
|
||||
|
||||
override fun isAvailable(project: Project?): Boolean {
|
||||
return project != null && JavaLibraryUtil.hasLibraryClass(project, fieldLoggerName) && LombokLibraryUtil.hasLombokLibrary(project)
|
||||
}
|
||||
|
||||
override fun isAvailable(module: Module?): Boolean {
|
||||
return module != null && JavaLibraryUtil.hasLibraryClass(module, fieldLoggerName) && LombokLibraryUtil.hasLombokClasses(module)
|
||||
}
|
||||
|
||||
override fun createLoggerElementText(project: Project, clazz: PsiClass): PsiAnnotation {
|
||||
val factory = JavaPsiFacade.getElementFactory(project)
|
||||
return factory.createAnnotationFromText("@$loggerTypeName", clazz)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package de.plushnikov.intellij.plugin.logging
|
||||
|
||||
object LombokLoggingUtils {
|
||||
const val SLF4J_ANNOTATION = "lombok.extern.slf4j.Slf4j"
|
||||
const val LOG4J2_ANNOTATION = "lombok.extern.log4j.Log4j2"
|
||||
const val LOG4J_ANNOTATION = "lombok.extern.log4j.Log4j"
|
||||
const val APACHE_ANNOTATION = "lombok.extern.apachecommons.CommonsLog"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package de.plushnikov.intellij.plugin.logging
|
||||
|
||||
import com.intellij.logging.JvmLogger
|
||||
import com.siyeh.ig.psiutils.JavaLoggingUtils
|
||||
|
||||
class LombokSlf4jLogger : JvmLogger by JvmLoggerAnnotationDelegate(
|
||||
JavaLoggingUtils.SLF4J,
|
||||
LombokLoggingUtils.SLF4J_ANNOTATION,
|
||||
90
|
||||
) {
|
||||
override fun toString(): String = "Lombok SLf4j"
|
||||
}
|
||||
@@ -245,6 +245,8 @@
|
||||
<dependencySupport coordinate="org.projectlombok:lombok" kind="java" displayName="Lombok"/>
|
||||
|
||||
<iconMapper mappingFile="LombokIconMappings.json"/>
|
||||
|
||||
<jvm.logging implementation="de.plushnikov.intellij.plugin.logging.LombokSlf4jLogger"/>
|
||||
</extensions>
|
||||
|
||||
<projectListeners>
|
||||
|
||||
Reference in New Issue
Block a user