aboutsummaryrefslogtreecommitdiff
path: root/subprojects/analysis-java-psi
diff options
context:
space:
mode:
authorIgnat Beresnev <ignat.beresnev@jetbrains.com>2023-11-10 11:46:54 +0100
committerGitHub <noreply@github.com>2023-11-10 11:46:54 +0100
commit8e5c63d035ef44a269b8c43430f43f5c8eebfb63 (patch)
tree1b915207b2b9f61951ddbf0ff2e687efd053d555 /subprojects/analysis-java-psi
parenta44efd4ba0c2e4ab921ff75e0f53fc9335aa79db (diff)
downloaddokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.tar.gz
dokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.tar.bz2
dokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.zip
Restructure the project to utilize included builds (#3174)
* Refactor and simplify artifact publishing * Update Gradle to 8.4 * Refactor and simplify convention plugins and build scripts Fixes #3132 --------- Co-authored-by: Adam <897017+aSemy@users.noreply.github.com> Co-authored-by: Oleg Yukhnevich <whyoleg@gmail.com>
Diffstat (limited to 'subprojects/analysis-java-psi')
-rw-r--r--subprojects/analysis-java-psi/README.md5
-rw-r--r--subprojects/analysis-java-psi/api/analysis-java-psi.api152
-rw-r--r--subprojects/analysis-java-psi/build.gradle.kts22
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/DefaultPsiToDocumentableTranslator.kt87
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/JavaAnalysisPlugin.kt110
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/JavadocTag.kt54
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/SynheticElementDocumentationProvider.kt46
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/doccomment/DocComment.kt18
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/doccomment/DocCommentCreator.kt13
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/doccomment/DocCommentFactory.kt24
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/doccomment/DocCommentFinder.kt68
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/doccomment/DocumentationContent.kt15
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/doccomment/JavaDocComment.kt88
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/doccomment/JavaDocCommentCreator.kt15
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/doccomment/PsiDocumentationContent.kt26
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/CommentResolutionContext.kt13
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/DocCommentParser.kt16
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/DokkaPsiParser.kt803
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/JavaDocCommentParser.kt232
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/JavadocParser.kt28
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/doctag/DocTagParserContext.kt51
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/doctag/HtmlToDocTagConverter.kt118
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/doctag/InheritDocTagContentProvider.kt14
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/doctag/InheritDocTagResolver.kt118
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/doctag/PsiDocTagParser.kt43
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/parsers/doctag/PsiElementToHtmlConverter.kt218
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/util/CoreCopyPaste.kt24
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/util/NoopIntellijLogger.kt47
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/util/PropertiesConventionUtil.kt105
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/util/PsiAccessorConventionUtil.kt102
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/util/PsiCommentsUtils.kt53
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/util/PsiUtil.kt126
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/util/StdlibUtil.kt37
-rw-r--r--subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/util/resolveToGetDri.kt11
-rw-r--r--subprojects/analysis-java-psi/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin5
35 files changed, 0 insertions, 2907 deletions
diff --git a/subprojects/analysis-java-psi/README.md b/subprojects/analysis-java-psi/README.md
deleted file mode 100644
index d2bbd080..00000000
--- a/subprojects/analysis-java-psi/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Analysis: Java PSI
-
-An internal module for parsing Java sources. Defines no stable public API and is not published anywhere.
-
-Used by the Kotlin analysis artifacts to provide support for mixed-language (Kotlin+Java) projects.
diff --git a/subprojects/analysis-java-psi/api/analysis-java-psi.api b/subprojects/analysis-java-psi/api/analysis-java-psi.api
deleted file mode 100644
index 6b4d444f..00000000
--- a/subprojects/analysis-java-psi/api/analysis-java-psi.api
+++ /dev/null
@@ -1,152 +0,0 @@
-public final class org/jetbrains/dokka/analysis/java/AuthorJavadocTag : org/jetbrains/dokka/analysis/java/JavadocTag {
- public static final field INSTANCE Lorg/jetbrains/dokka/analysis/java/AuthorJavadocTag;
-}
-
-public abstract interface class org/jetbrains/dokka/analysis/java/BreakingAbstractionKotlinLightMethodChecker {
- public abstract fun isLightAnnotation (Lcom/intellij/psi/PsiAnnotation;)Z
- public abstract fun isLightAnnotationAttribute (Lcom/intellij/lang/jvm/annotation/JvmAnnotationAttribute;)Z
-}
-
-public final class org/jetbrains/dokka/analysis/java/DeprecatedJavadocTag : org/jetbrains/dokka/analysis/java/JavadocTag {
- public static final field INSTANCE Lorg/jetbrains/dokka/analysis/java/DeprecatedJavadocTag;
-}
-
-public final class org/jetbrains/dokka/analysis/java/DescriptionJavadocTag : org/jetbrains/dokka/analysis/java/JavadocTag {
- public static final field INSTANCE Lorg/jetbrains/dokka/analysis/java/DescriptionJavadocTag;
-}
-
-public final class org/jetbrains/dokka/analysis/java/ExceptionJavadocTag : org/jetbrains/dokka/analysis/java/ThrowingExceptionJavadocTag {
- public static final field Companion Lorg/jetbrains/dokka/analysis/java/ExceptionJavadocTag$Companion;
- public static final field name Ljava/lang/String;
- public fun <init> (Ljava/lang/String;)V
-}
-
-public final class org/jetbrains/dokka/analysis/java/ExceptionJavadocTag$Companion {
-}
-
-public final class org/jetbrains/dokka/analysis/java/JavaAnalysisPlugin : org/jetbrains/dokka/plugability/DokkaPlugin {
- public fun <init> ()V
- public final fun getDocCommentCreators ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
- public final fun getDocCommentFinder ()Lorg/jetbrains/dokka/analysis/java/doccomment/DocCommentFinder;
- public final fun getDocCommentParsers ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
- public final fun getInheritDocTagContentProviders ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
- public final fun getKotlinLightMethodChecker ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
- public final fun getProjectProvider ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
- public final fun getSourceRootsExtractor ()Lorg/jetbrains/dokka/plugability/ExtensionPoint;
-}
-
-public abstract class org/jetbrains/dokka/analysis/java/JavadocTag {
- public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun getName ()Ljava/lang/String;
-}
-
-public final class org/jetbrains/dokka/analysis/java/ParamJavadocTag : org/jetbrains/dokka/analysis/java/JavadocTag {
- public static final field Companion Lorg/jetbrains/dokka/analysis/java/ParamJavadocTag$Companion;
- public static final field name Ljava/lang/String;
- public fun <init> (Lcom/intellij/psi/PsiMethod;Ljava/lang/String;I)V
- public final fun getMethod ()Lcom/intellij/psi/PsiMethod;
- public final fun getParamIndex ()I
- public final fun getParamName ()Ljava/lang/String;
-}
-
-public final class org/jetbrains/dokka/analysis/java/ParamJavadocTag$Companion {
-}
-
-public abstract interface class org/jetbrains/dokka/analysis/java/ProjectProvider {
- public abstract fun getProject (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;)Lcom/intellij/openapi/project/Project;
-}
-
-public final class org/jetbrains/dokka/analysis/java/ReturnJavadocTag : org/jetbrains/dokka/analysis/java/JavadocTag {
- public static final field INSTANCE Lorg/jetbrains/dokka/analysis/java/ReturnJavadocTag;
-}
-
-public final class org/jetbrains/dokka/analysis/java/SeeJavadocTag : org/jetbrains/dokka/analysis/java/JavadocTag {
- public static final field Companion Lorg/jetbrains/dokka/analysis/java/SeeJavadocTag$Companion;
- public static final field name Ljava/lang/String;
- public fun <init> (Ljava/lang/String;)V
- public final fun getQualifiedReference ()Ljava/lang/String;
-}
-
-public final class org/jetbrains/dokka/analysis/java/SeeJavadocTag$Companion {
-}
-
-public final class org/jetbrains/dokka/analysis/java/SinceJavadocTag : org/jetbrains/dokka/analysis/java/JavadocTag {
- public static final field INSTANCE Lorg/jetbrains/dokka/analysis/java/SinceJavadocTag;
-}
-
-public abstract interface class org/jetbrains/dokka/analysis/java/SourceRootsExtractor {
- public abstract fun extract (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;Lorg/jetbrains/dokka/plugability/DokkaContext;)Ljava/util/List;
-}
-
-public abstract class org/jetbrains/dokka/analysis/java/ThrowingExceptionJavadocTag : org/jetbrains/dokka/analysis/java/JavadocTag {
- public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun getExceptionQualifiedName ()Ljava/lang/String;
-}
-
-public final class org/jetbrains/dokka/analysis/java/ThrowsJavadocTag : org/jetbrains/dokka/analysis/java/ThrowingExceptionJavadocTag {
- public static final field Companion Lorg/jetbrains/dokka/analysis/java/ThrowsJavadocTag$Companion;
- public static final field name Ljava/lang/String;
- public fun <init> (Ljava/lang/String;)V
-}
-
-public final class org/jetbrains/dokka/analysis/java/ThrowsJavadocTag$Companion {
-}
-
-public abstract interface class org/jetbrains/dokka/analysis/java/doccomment/DocComment {
- public abstract fun hasTag (Lorg/jetbrains/dokka/analysis/java/JavadocTag;)Z
- public abstract fun resolveTag (Lorg/jetbrains/dokka/analysis/java/JavadocTag;)Ljava/util/List;
-}
-
-public abstract interface class org/jetbrains/dokka/analysis/java/doccomment/DocCommentCreator {
- public abstract fun create (Lcom/intellij/psi/PsiNamedElement;)Lorg/jetbrains/dokka/analysis/java/doccomment/DocComment;
-}
-
-public final class org/jetbrains/dokka/analysis/java/doccomment/DocCommentFactory {
- public fun <init> (Ljava/util/List;)V
- public final fun fromElement (Lcom/intellij/psi/PsiNamedElement;)Lorg/jetbrains/dokka/analysis/java/doccomment/DocComment;
-}
-
-public final class org/jetbrains/dokka/analysis/java/doccomment/DocCommentFinder {
- public fun <init> (Lorg/jetbrains/dokka/utilities/DokkaLogger;Lorg/jetbrains/dokka/analysis/java/doccomment/DocCommentFactory;)V
- public final fun findClosestToElement (Lcom/intellij/psi/PsiNamedElement;)Lorg/jetbrains/dokka/analysis/java/doccomment/DocComment;
-}
-
-public abstract interface class org/jetbrains/dokka/analysis/java/doccomment/DocumentationContent {
- public abstract fun getTag ()Lorg/jetbrains/dokka/analysis/java/JavadocTag;
- public abstract fun resolveSiblings ()Ljava/util/List;
-}
-
-public abstract interface class org/jetbrains/dokka/analysis/java/parsers/DocCommentParser {
- public abstract fun canParse (Lorg/jetbrains/dokka/analysis/java/doccomment/DocComment;)Z
- public abstract fun parse (Lorg/jetbrains/dokka/analysis/java/doccomment/DocComment;Lcom/intellij/psi/PsiNamedElement;)Lorg/jetbrains/dokka/model/doc/DocumentationNode;
-}
-
-public final class org/jetbrains/dokka/analysis/java/parsers/JavadocParser : org/jetbrains/dokka/analysis/java/parsers/JavaDocumentationParser {
- public fun <init> (Ljava/util/List;Lorg/jetbrains/dokka/analysis/java/doccomment/DocCommentFinder;)V
- public fun parseDocumentation (Lcom/intellij/psi/PsiNamedElement;)Lorg/jetbrains/dokka/model/doc/DocumentationNode;
-}
-
-public final class org/jetbrains/dokka/analysis/java/parsers/doctag/DocTagParserContext {
- public fun <init> ()V
- public final fun getDocumentationNode (Ljava/lang/String;)Lorg/jetbrains/dokka/model/doc/DocumentationNode;
- public final fun getDri (Ljava/lang/String;)Lorg/jetbrains/dokka/links/DRI;
- public final fun store (Lorg/jetbrains/dokka/links/DRI;)Ljava/lang/String;
- public final fun store (Lorg/jetbrains/dokka/model/doc/DocumentationNode;)Ljava/lang/String;
-}
-
-public abstract interface class org/jetbrains/dokka/analysis/java/parsers/doctag/InheritDocTagContentProvider {
- public abstract fun canConvert (Lorg/jetbrains/dokka/analysis/java/doccomment/DocumentationContent;)Z
- public abstract fun convertToHtml (Lorg/jetbrains/dokka/analysis/java/doccomment/DocumentationContent;Lorg/jetbrains/dokka/analysis/java/parsers/doctag/DocTagParserContext;)Ljava/lang/String;
-}
-
-public final class org/jetbrains/dokka/analysis/java/util/PsiDocumentableSource : org/jetbrains/dokka/model/DocumentableSource {
- public fun <init> (Lcom/intellij/psi/PsiNamedElement;)V
- public fun computeLineNumber ()Ljava/lang/Integer;
- public fun getPath ()Ljava/lang/String;
- public final fun getPsi ()Lcom/intellij/psi/PsiNamedElement;
-}
-
-public final class org/jetbrains/dokka/analysis/java/util/PsiUtilKt {
- public static final fun from (Lorg/jetbrains/dokka/links/DRI$Companion;Lcom/intellij/psi/PsiElement;)Lorg/jetbrains/dokka/links/DRI;
-}
-
diff --git a/subprojects/analysis-java-psi/build.gradle.kts b/subprojects/analysis-java-psi/build.gradle.kts
deleted file mode 100644
index d46d64f0..00000000
--- a/subprojects/analysis-java-psi/build.gradle.kts
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-plugins {
- id("org.jetbrains.conventions.kotlin-jvm")
-}
-
-dependencies {
- compileOnly(projects.core)
-
- api(libs.intellij.java.psi.api)
-
- implementation(projects.subprojects.analysisMarkdownJb)
-
- implementation(libs.intellij.java.psi.impl)
- implementation(libs.intellij.platform.util.api)
- implementation(libs.intellij.platform.util.rt)
-
- implementation(libs.kotlinx.coroutines.core)
- implementation(libs.jsoup)
-}
diff --git a/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/DefaultPsiToDocumentableTranslator.kt b/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/DefaultPsiToDocumentableTranslator.kt
deleted file mode 100644
index 3b8ff25b..00000000
--- a/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/DefaultPsiToDocumentableTranslator.kt
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-package org.jetbrains.dokka.analysis.java
-
-import com.intellij.openapi.vfs.VirtualFileManager
-import com.intellij.psi.PsiJavaFile
-import com.intellij.psi.PsiKeyword
-import com.intellij.psi.PsiManager
-import com.intellij.psi.PsiModifierListOwner
-import kotlinx.coroutines.coroutineScope
-import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet
-import org.jetbrains.dokka.analysis.java.parsers.DokkaPsiParser
-import org.jetbrains.dokka.analysis.java.parsers.JavaPsiDocCommentParser
-import org.jetbrains.dokka.analysis.java.parsers.JavadocParser
-import org.jetbrains.dokka.model.DModule
-import org.jetbrains.dokka.model.JavaVisibility
-import org.jetbrains.dokka.plugability.DokkaContext
-import org.jetbrains.dokka.plugability.plugin
-import org.jetbrains.dokka.plugability.query
-import org.jetbrains.dokka.plugability.querySingle
-import org.jetbrains.dokka.transformers.sources.AsyncSourceToDocumentableTranslator
-import org.jetbrains.dokka.utilities.parallelMap
-import org.jetbrains.dokka.utilities.parallelMapNotNull
-
-internal class DefaultPsiToDocumentableTranslator : AsyncSourceToDocumentableTranslator {
-
- override suspend fun invokeSuspending(sourceSet: DokkaSourceSet, context: DokkaContext): DModule {
- return coroutineScope {
- val projectProvider = context.plugin<JavaAnalysisPlugin>().querySingle { projectProvider }
- val project = projectProvider.getProject(sourceSet, context)
-
- val sourceRootsExtractor = context.plugin<JavaAnalysisPlugin>().querySingle { sourceRootsExtractor }
- val sourceRoots = sourceRootsExtractor.extract(sourceSet, context)
-
- val localFileSystem = VirtualFileManager.getInstance().getFileSystem("file")
-
- val psiFiles = sourceRoots.parallelMap { sourceRoot ->
- sourceRoot.absoluteFile.walkTopDown().mapNotNull {
- localFileSystem.findFileByPath(it.path)?.let { vFile ->
- PsiManager.getInstance(project).findFile(vFile) as? PsiJavaFile
- }
- }.toList()
- }.flatten()
-
- val docParser = createPsiParser(sourceSet, context)
-
- DModule(
- name = context.configuration.moduleName,
- packages = psiFiles.parallelMapNotNull { it }.groupBy { it.packageName }.toList()
- .parallelMap { (packageName: String, psiFiles: List<PsiJavaFile>) ->
- docParser.parsePackage(packageName, psiFiles)
- },
- documentation = emptyMap(),
- expectPresentInSet = null,
- sourceSets = setOf(sourceSet)
- )
- }
- }
-
- private fun createPsiParser(sourceSet: DokkaSourceSet, context: DokkaContext): DokkaPsiParser {
- val projectProvider = context.plugin<JavaAnalysisPlugin>().querySingle { projectProvider }
- val docCommentParsers = context.plugin<JavaAnalysisPlugin>().query { docCommentParsers }
- return DokkaPsiParser(
- sourceSetData = sourceSet,
- project = projectProvider.getProject(sourceSet, context),
- logger = context.logger,
- javadocParser = JavadocParser(
- docCommentParsers = docCommentParsers,
- docCommentFinder = context.plugin<JavaAnalysisPlugin>().docCommentFinder
- ),
- javaPsiDocCommentParser = docCommentParsers.single { it is JavaPsiDocCommentParser } as JavaPsiDocCommentParser,
- lightMethodChecker = context.plugin<JavaAnalysisPlugin>().querySingle { kotlinLightMethodChecker }
- )
- }
-}
-
-internal fun PsiModifierListOwner.getVisibility() = modifierList?.let {
- val ml = it.children.toList()
- when {
- ml.any { it.text == PsiKeyword.PUBLIC } || it.hasModifierProperty("public") -> JavaVisibility.Public
- ml.any { it.text == PsiKeyword.PROTECTED } || it.hasModifierProperty("protected") -> JavaVisibility.Protected
- ml.any { it.text == PsiKeyword.PRIVATE } || it.hasModifierProperty("private") -> JavaVisibility.Private
- else -> JavaVisibility.Default
- }
-} ?: JavaVisibility.Default
diff --git a/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/JavaAnalysisPlugin.kt b/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/JavaAnalysisPlugin.kt
deleted file mode 100644
index 9426adf1..00000000
--- a/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/JavaAnalysisPlugin.kt
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-package org.jetbrains.dokka.analysis.java
-
-import com.intellij.lang.jvm.annotation.JvmAnnotationAttribute
-import com.intellij.openapi.diagnostic.Logger
-import com.intellij.openapi.project.Project
-import com.intellij.psi.PsiAnnotation
-import org.jetbrains.dokka.CoreExtensions
-import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet
-import org.jetbrains.dokka.InternalDokkaApi
-import org.jetbrains.dokka.analysis.java.doccomment.DocCommentCreator
-import org.jetbrains.dokka.analysis.java.doccomment.DocCommentFactory
-import org.jetbrains.dokka.analysis.java.doccomment.DocCommentFinder
-import org.jetbrains.dokka.analysis.java.doccomment.JavaDocCommentCreator
-import org.jetbrains.dokka.analysis.java.parsers.DocCommentParser
-import org.jetbrains.dokka.analysis.java.parsers.doctag.InheritDocTagContentProvider
-import org.jetbrains.dokka.analysis.java.parsers.JavaPsiDocCommentParser
-import org.jetbrains.dokka.analysis.java.parsers.doctag.InheritDocTagResolver
-import org.jetbrains.dokka.analysis.java.parsers.doctag.PsiDocTagParser
-import org.jetbrains.dokka.analysis.java.util.NoopIntellijLoggerFactory
-import org.jetbrains.dokka.plugability.*
-import java.io.File
-
-
-@InternalDokkaApi
-public interface ProjectProvider {
- public fun getProject(sourceSet: DokkaSourceSet, context: DokkaContext): Project
-}
-
-@InternalDokkaApi
-public interface SourceRootsExtractor {
- public fun extract(sourceSet: DokkaSourceSet, context: DokkaContext): List<File>
-}
-
-@InternalDokkaApi
-public interface BreakingAbstractionKotlinLightMethodChecker {
- // TODO [beresnev] not even sure it's needed, but left for compatibility and to preserve behaviour
- public fun isLightAnnotation(annotation: PsiAnnotation): Boolean
- public fun isLightAnnotationAttribute(attribute: JvmAnnotationAttribute): Boolean
-}
-
-@InternalDokkaApi
-public class JavaAnalysisPlugin : DokkaPlugin() {
-
- // single
- public val projectProvider: ExtensionPoint<ProjectProvider> by extensionPoint()
-
- // single
- public val sourceRootsExtractor: ExtensionPoint<SourceRootsExtractor> by extensionPoint()
-
- // multiple
- public val docCommentCreators: ExtensionPoint<DocCommentCreator> by extensionPoint()
-
- // multiple
- public val docCommentParsers: ExtensionPoint<DocCommentParser> by extensionPoint()
-
- // none or more
- public val inheritDocTagContentProviders: ExtensionPoint<InheritDocTagContentProvider> by extensionPoint()
-
- // TODO [beresnev] figure out a better way depending on what it's used for
- public val kotlinLightMethodChecker: ExtensionPoint<BreakingAbstractionKotlinLightMethodChecker> by extensionPoint()
-
- private val docCommentFactory by lazy {
- DocCommentFactory(query { docCommentCreators }.reversed())
- }
-
- public val docCommentFinder: DocCommentFinder by lazy {
- DocCommentFinder(logger, docCommentFactory)
- }
-
- internal val javaDocCommentCreator by extending {
- docCommentCreators providing { JavaDocCommentCreator() }
- }
-
- private val psiDocTagParser by lazy {
- PsiDocTagParser(
- inheritDocTagResolver = InheritDocTagResolver(
- docCommentFactory = docCommentFactory,
- docCommentFinder = docCommentFinder,
- contentProviders = query { inheritDocTagContentProviders }
- )
- )
- }
-
- internal val javaDocCommentParser by extending {
- docCommentParsers providing {
- JavaPsiDocCommentParser(
- psiDocTagParser
- )
- }
- }
-
- internal val psiToDocumentableTranslator by extending {
- CoreExtensions.sourceToDocumentableTranslator providing { DefaultPsiToDocumentableTranslator() }
- }
-
- @OptIn(DokkaPluginApiPreview::class)
- override fun pluginApiPreviewAcknowledgement(): PluginApiPreviewAcknowledgement = PluginApiPreviewAcknowledgement
-
- private companion object {
- init {
- // Suppress messages emitted by the IntelliJ logger since
- // there's not much the end user can do about it
- Logger.setFactory(NoopIntellijLoggerFactory())
- }
- }
-}
diff --git a/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/JavadocTag.kt b/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/JavadocTag.kt
deleted file mode 100644
index 23aee764..00000000
--- a/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/JavadocTag.kt
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-package org.jetbrains.dokka.analysis.java
-
-import com.intellij.psi.PsiMethod
-import org.jetbrains.dokka.InternalDokkaApi
-
-@InternalDokkaApi
-public sealed class JavadocTag(
- public val name: String
-)
-
-public object AuthorJavadocTag : JavadocTag("author")
-public object DeprecatedJavadocTag : JavadocTag("deprecated")
-public object DescriptionJavadocTag : JavadocTag("description")
-public object ReturnJavadocTag : JavadocTag("return")
-public object SinceJavadocTag : JavadocTag("since")
-
-public class ParamJavadocTag(
- public val method: PsiMethod,
- public val paramName: String,
- public val paramIndex: Int
-) : JavadocTag(name) {
- public companion object {
- public const val name: String = "param"
- }
-}
-
-public class SeeJavadocTag(
- public val qualifiedReference: String
-) : JavadocTag(name) {
- public companion object {
- public const val name: String = "see"
- }
-}
-
-public sealed class ThrowingExceptionJavadocTag(
- name: String,
- public val exceptionQualifiedName: String?
-) : JavadocTag(name)
-
-public class ThrowsJavadocTag(exceptionQualifiedName: String?) : ThrowingExceptionJavadocTag(name, exceptionQualifiedName) {
- public companion object {
- public const val name: String = "throws"
- }
-}
-
-public class ExceptionJavadocTag(exceptionQualifiedName: String?) : ThrowingExceptionJavadocTag(name, exceptionQualifiedName) {
- public companion object {
- public const val name: String = "exception"
- }
-}
diff --git a/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/SynheticElementDocumentationProvider.kt b/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/SynheticElementDocumentationProvider.kt
deleted file mode 100644
index 5b19a42d..00000000
--- a/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/SynheticElementDocumentationProvider.kt
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-package org.jetbrains.dokka.analysis.java
-
-import com.intellij.openapi.project.Project
-import com.intellij.psi.JavaPsiFacade
-import com.intellij.psi.PsiElement
-import com.intellij.psi.PsiMethod
-import com.intellij.psi.SyntheticElement
-import com.intellij.psi.javadoc.PsiDocComment
-import org.jetbrains.dokka.analysis.java.parsers.JavaPsiDocCommentParser
-import org.jetbrains.dokka.model.doc.DocumentationNode
-
-private const val ENUM_VALUEOF_TEMPLATE_PATH = "/dokka/docs/javadoc/EnumValueOf.java.template"
-private const val ENUM_VALUES_TEMPLATE_PATH = "/dokka/docs/javadoc/EnumValues.java.template"
-
-internal class SyntheticElementDocumentationProvider(
- private val javadocParser: JavaPsiDocCommentParser,
- private val project: Project
-) {
- fun isDocumented(psiElement: PsiElement): Boolean = psiElement is PsiMethod
- && (psiElement.isSyntheticEnumValuesMethod() || psiElement.isSyntheticEnumValueOfMethod())
-
- fun getDocumentation(psiElement: PsiElement): DocumentationNode? {
- val psiMethod = psiElement as? PsiMethod ?: return null
- val templatePath = when {
- psiMethod.isSyntheticEnumValuesMethod() -> ENUM_VALUES_TEMPLATE_PATH
- psiMethod.isSyntheticEnumValueOfMethod() -> ENUM_VALUEOF_TEMPLATE_PATH
- else -> return null
- }
- val docComment = loadSyntheticDoc(templatePath) ?: return null
- return javadocParser.parsePsiDocComment(docComment, psiElement)
- }
-
- private fun loadSyntheticDoc(path: String): PsiDocComment? {
- val text = javaClass.getResource(path)?.readText() ?: return null
- return JavaPsiFacade.getElementFactory(project).createDocCommentFromText(text)
- }
-}
-
-private fun PsiMethod.isSyntheticEnumValuesMethod() = this.isSyntheticEnumFunction() && this.name == "values"
-private fun PsiMethod.isSyntheticEnumValueOfMethod() = this.isSyntheticEnumFunction() && this.name == "valueOf"
-private fun PsiMethod.isSyntheticEnumFunction() = this is SyntheticElement && this.containingClass?.isEnum == true
-
diff --git a/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/doccomment/DocComment.kt b/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/doccomment/DocComment.kt
deleted file mode 100644
index be5f7eaa..00000000
--- a/subprojects/analysis-java-psi/src/main/kotlin/org/jetbrains/dokka/analysis/java/doccomment/DocComment.kt
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-package org.jetbrains.dokka.analysis.java.doccomment
-
-import org.jetbrains.dokka.InternalDokkaApi
-import org.jetbrains.dokka.analysis.java.JavadocTag
-
-/**
- * MUST override equals and hashcode
- */
-@InternalDokkaApi
-public interface DocComment {
- public fun hasTag(tag: JavadocTag): Boolean
-
- public fun resolveTag(tag: JavadocTag): List<DocumentationContent>
-}
<