LLM-13849: refactored Kotlin and Java LineCompletionEvaluationVisitor to have less dependencies

GitOrigin-RevId: 44a0904d4911ccec8343d5d8875fe82edd3e7562
This commit is contained in:
Sebastian.Chiriac
2025-04-04 11:42:51 +00:00
committed by intellij-monorepo-bot
parent c5a24b3bf0
commit a3e95b47ea
5 changed files with 23 additions and 10 deletions
@@ -3,7 +3,6 @@
<plugin id="com.intellij.java"/>
<plugin id="com.intellij.gradle"/>
<plugin id="org.jetbrains.idea.maven"/>
<module name="intellij.ml.llm.java.completion"/>
</dependencies>
<extensions defaultExtensionNs="com.intellij.cce">
@@ -7,9 +7,11 @@ import com.intellij.cce.evaluable.golf.CompletionGolfMode
import com.intellij.cce.visitor.LineCompletionEvaluationVisitor
import com.intellij.cce.visitor.LineCompletionVisitorFactory
import com.intellij.cce.visitor.LineCompletionVisitorHelper
import com.intellij.ml.inline.completion.java.features.JavaStringLiteralSupporter
import com.intellij.psi.*
import com.intellij.psi.impl.source.tree.LeafPsiElement
import com.intellij.psi.impl.source.tree.java.PsiLiteralExpressionImpl
import com.intellij.psi.javadoc.PsiDocComment
import com.intellij.psi.util.parentOfType
class JavaLineCompletionVisitorFactory : LineCompletionVisitorFactory {
override val language: Language = Language.JAVA
@@ -77,7 +79,6 @@ class JavaLineCompletionVisitorFactory : LineCompletionVisitorFactory {
class CommentsTokensVisitor(override val feature: String) : LineCompletionEvaluationVisitor, JavaRecursiveElementVisitor() {
private val visitorHelper = LineCompletionVisitorHelper()
private val javaStringLiteralSupporter = JavaStringLiteralSupporter()
override val language: Language = Language.JAVA
@@ -88,8 +89,17 @@ class JavaLineCompletionVisitorFactory : LineCompletionVisitorFactory {
super.visitJavaFile(file)
}
private fun isCommentElement(element: PsiElement): Boolean {
return element is PsiComment;
}
private fun isDocComment(element: PsiElement): Boolean {
return element.node.elementType == JavaTokenType.C_STYLE_COMMENT ||
(element is LeafPsiElement && element.parentOfType<PsiDocComment>(withSelf = true) != null)
}
override fun visitElement(element: PsiElement) {
if (javaStringLiteralSupporter.isCommentElement(element) || javaStringLiteralSupporter.isDocComment(element)) {
if (isCommentElement(element) || isDocComment(element)) {
visitorHelper.addElement(element.node)
}
super.visitElement(element)