Skip to content

Commit f44744e

Browse files
committed
[ voile ] Annotator
1 parent 2365a0b commit f44744e

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

src/org/ice1000/tt/editing/voile/editing.kt

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
package org.ice1000.tt.editing.voile
22

33
import com.intellij.lang.BracePair
4+
import com.intellij.lang.annotation.AnnotationHolder
5+
import com.intellij.lang.annotation.Annotator
46
import com.intellij.lang.cacheBuilder.DefaultWordsScanner
7+
import com.intellij.psi.PsiElement
58
import com.intellij.psi.tree.TokenSet
69
import org.ice1000.tt.editing.TTBraceMatcher
710
import org.ice1000.tt.editing.TTCommenter
811
import org.ice1000.tt.editing.TTFindUsagesProvider
912
import org.ice1000.tt.psi.redprl.redPrlLexer
10-
import org.ice1000.tt.psi.voile.VoileTokenType
11-
import org.ice1000.tt.psi.voile.VoileTypes
13+
import org.ice1000.tt.psi.voile.*
1214

1315
class VoileCommenter : TTCommenter() {
1416
override fun getLineCommentPrefix() = "// "
@@ -26,3 +28,18 @@ class VoileBraceMatcher : TTBraceMatcher() {
2628
class VoileFindUsagesProvider : TTFindUsagesProvider() {
2729
override fun getWordsScanner() = DefaultWordsScanner(redPrlLexer(), VoileTokenType.IDENTIFIERS, VoileTokenType.COMMENTS, TokenSet.EMPTY)
2830
}
31+
32+
class VoileAnnotator : Annotator {
33+
override fun annotate(element: PsiElement, holder: AnnotationHolder) {
34+
when (element) {
35+
is VoileNameDeclMixin -> nameDeclMixin(element, holder)
36+
}
37+
}
38+
39+
private fun nameDeclMixin(element: VoileNameDeclMixin, holder: AnnotationHolder) {
40+
val parent = element.parent ?: return
41+
if (parent is VoileImplementation || parent is VoileSignature) {
42+
holder.createInfoAnnotation(element, null).textAttributes = VoileHighlighter.FUNCTION_NAME
43+
}
44+
}
45+
}

0 commit comments

Comments
 (0)