/
VueLexer.kt
36 lines (28 loc) · 1022 Bytes
/
VueLexer.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package org.jetbrains.vuejs.language
import com.intellij.lang.HtmlScriptContentProvider
import com.intellij.lang.Language
import com.intellij.lexer.HtmlLexer
import com.intellij.psi.xml.XmlTokenType
class VueLexer : HtmlLexer(), VueHandledLexer {
init {
registerHandler(XmlTokenType.XML_NAME, VueLangAttributeHandler())
}
override fun findScriptContentProvider(mimeType: String?): HtmlScriptContentProvider? {
val type = super.findScriptContentProvider(mimeType ?: "text/ecmascript-6")
return type ?: scriptContentViaLang()
}
override fun getStyleLanguage(): Language? {
return styleViaLang(ourDefaultStyleLanguage) ?: super.getStyleLanguage()
}
override fun seenScript() = seenScript
override fun seenStyle()= seenStyle
override fun seenTag() = seenTag
override fun getScriptType() = scriptType
override fun getStyleType() = styleType
override fun setSeenScriptType() {
seenContentType = true
}
override fun setSeenStyleType() {
seenStylesheetType = true
}
}