aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorAlex Saveau <asaveau@google.com>2020-06-30 04:13:26 +0000
committerAlex Saveau <asaveau@google.com>2020-06-30 18:44:36 +0000
commit92fcde47f4eaf8e9dfe26104ade0d9aeebe4461a (patch)
treea393daccb9485c393d2f0e33d54a575c390dfc92 /core
parent006b26ddd484d227d24cac4e724d6999b054f802 (diff)
downloaddokka-92fcde47f4eaf8e9dfe26104ade0d9aeebe4461a.tar.gz
Fix NPE loading JavadocManager in JavadocParser#resolveExternalLink
In `resolveExternalLink`, `getReference` is called on a psi element. When the implementation was a `PsiDocTagValueImpl`, the call would NPE after retrieving a null instance of the JavadocManager and trying to use it. This CL registers the JavadocManager and associated dependencies into the parsing environment. Test: couldn't repo in this project, but the NPE is gone in framework/support when running ./gradlew generateDocs. Change-Id: I8111091552f2f890d9643fa02c9f2346d41a6177
Diffstat (limited to 'core')
-rw-r--r--core/src/main/kotlin/Analysis/AnalysisEnvironment.kt14
1 files changed, 13 insertions, 1 deletions
diff --git a/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt b/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt
index 7003024c8..9fea67407 100644
--- a/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt
+++ b/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt
@@ -15,8 +15,11 @@ import com.intellij.openapi.roots.ProjectRootManager
import com.intellij.openapi.util.Disposer
import com.intellij.openapi.vfs.StandardFileSystems
import com.intellij.psi.PsiElement
+import com.intellij.psi.impl.source.javadoc.JavadocManagerImpl
+import com.intellij.psi.javadoc.CustomJavadocTagProvider
+import com.intellij.psi.javadoc.JavadocManager
+import com.intellij.psi.javadoc.JavadocTagInfo
import com.intellij.psi.search.GlobalSearchScope
-import com.intellij.util.io.URLUtil
import org.jetbrains.kotlin.analyzer.*
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns
@@ -96,10 +99,19 @@ class AnalysisEnvironment(val messageCollector: MessageCollector) : Disposable {
CoreApplicationEnvironment.registerExtensionPoint(Extensions.getRootArea(),
OrderEnumerationHandler.EP_NAME, OrderEnumerationHandler.Factory::class.java)
+ CoreApplicationEnvironment.registerExtensionPoint(Extensions.getArea(environment.project),
+ JavadocTagInfo.EP_NAME, JavadocTagInfo::class.java)
+ CoreApplicationEnvironment.registerExtensionPoint(Extensions.getRootArea(),
+ CustomJavadocTagProvider.EP_NAME, CustomJavadocTagProvider::class.java)
+
projectComponentManager.registerService(ProjectFileIndex::class.java,
projectFileIndex)
projectComponentManager.registerService(ProjectRootManager::class.java,
CoreProjectRootManager(projectFileIndex))
+ projectComponentManager.registerService(JavadocManager::class.java,
+ JavadocManagerImpl(environment.project))
+ projectComponentManager.registerService(CustomJavadocTagProvider::class.java,
+ CustomJavadocTagProvider { emptyList() })
return environment
}