mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
lazy parsing for JavaDoc type reference
GitOrigin-RevId: a7141586f2abacdbe4cb7f5796b6699232e631c9
This commit is contained in:
committed by
intellij-monorepo-bot
parent
127039a95b
commit
3b5f6f8158
@@ -2,6 +2,7 @@
|
||||
package com.intellij.java.syntax.element
|
||||
|
||||
import com.intellij.java.syntax.element.lazyParser.JavaDocCommentParser
|
||||
import com.intellij.java.syntax.element.lazyParser.JavaDocReferenceHolderParser
|
||||
import com.intellij.java.syntax.element.lazyParser.JavaDocTypeParser
|
||||
import com.intellij.platform.syntax.SyntaxElementType
|
||||
import kotlin.jvm.JvmField
|
||||
@@ -22,7 +23,7 @@ object JavaDocSyntaxElementType {
|
||||
@JvmField val DOC_SNIPPET_ATTRIBUTE_LIST: SyntaxElementType = SyntaxElementType("DOC_SNIPPET_ATTRIBUTE_LIST")
|
||||
@JvmField val DOC_SNIPPET_ATTRIBUTE_VALUE: SyntaxElementType = SyntaxElementType("DOC_SNIPPET_ATTRIBUTE_VALUE")
|
||||
|
||||
@JvmField val DOC_REFERENCE_HOLDER: SyntaxElementType = SyntaxElementType("DOC_REFERENCE_HOLDER")
|
||||
@JvmField val DOC_REFERENCE_HOLDER: SyntaxElementType = SyntaxElementType("DOC_REFERENCE_HOLDER", lazyParser = JavaDocReferenceHolderParser())
|
||||
|
||||
@JvmField val DOC_TYPE_HOLDER: SyntaxElementType = SyntaxElementType("DOC_TYPE_HOLDER", lazyParser = JavaDocTypeParser())
|
||||
|
||||
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.java.syntax.element.lazyParser
|
||||
|
||||
import com.intellij.java.syntax.element.JavaDocSyntaxElementType
|
||||
import com.intellij.java.syntax.lexer.JavaLexer
|
||||
import com.intellij.java.syntax.parser.JavaDocParser
|
||||
import com.intellij.java.syntax.parser.JavaParser
|
||||
import com.intellij.platform.syntax.LazyLexingContext
|
||||
import com.intellij.platform.syntax.LazyParser
|
||||
import com.intellij.platform.syntax.LazyParsingContext
|
||||
import com.intellij.platform.syntax.lexer.Lexer
|
||||
import com.intellij.platform.syntax.parser.ProductionResult
|
||||
import com.intellij.platform.syntax.parser.prepareProduction
|
||||
import com.intellij.pom.java.LanguageLevel
|
||||
|
||||
class JavaDocReferenceHolderParser : LazyParser {
|
||||
override fun parse(parsingContext: LazyParsingContext): ProductionResult {
|
||||
val syntaxTreeBuilder = parsingContext.syntaxTreeBuilder
|
||||
|
||||
parseFragment(syntaxTreeBuilder, JavaDocSyntaxElementType.DOC_REFERENCE_HOLDER, false) {
|
||||
JavaDocParser(syntaxTreeBuilder, languageLevel).parseJavadocReference(JavaParser(languageLevel))
|
||||
}
|
||||
|
||||
return prepareProduction(syntaxTreeBuilder)
|
||||
}
|
||||
|
||||
override fun createLexer(lexingContext: LazyLexingContext): Lexer =
|
||||
JavaLexer(languageLevel)
|
||||
|
||||
private val languageLevel get() = LanguageLevel.JDK_1_3
|
||||
}
|
||||
Reference in New Issue
Block a user