Skip to content

Commit 7e8e630

Browse files
Gijsadrienbaron
authored andcommitted
Update html template syntax highlighting and html lexer on vue-gwt template files.
1 parent 3643cee commit 7e8e630

9 files changed

+57
-158
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.axellience.vuegwtplugin.language.htmltemplate;
2+
3+
import java.util.List;
4+
import org.jetbrains.annotations.NotNull;
5+
import com.intellij.html.embedding.HtmlEmbeddedContentProvider;
6+
import com.intellij.html.embedding.HtmlEmbeddedContentSupport;
7+
import com.intellij.lexer.BaseHtmlLexer;
8+
import com.intellij.lexer.HtmlRawTextTagContentProvider;
9+
10+
public class HtmlTemplateEmbeddedContentSupport implements HtmlEmbeddedContentSupport {
11+
12+
@NotNull @Override
13+
public List<HtmlEmbeddedContentProvider> createEmbeddedContentProviders(@NotNull BaseHtmlLexer lexer) {
14+
return List.of(new HtmlRawTextTagContentProvider(lexer), new HtmlVueGWTTemplateScriptStyleEmbeddedContentProvider(lexer));
15+
}
16+
}

src/main/java/com/axellience/vuegwtplugin/language/htmltemplate/HtmlTemplateHandledLexer.java

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/main/java/com/axellience/vuegwtplugin/language/htmltemplate/HtmlTemplateHighlightingLexer.java

Lines changed: 0 additions & 46 deletions
This file was deleted.

src/main/java/com/axellience/vuegwtplugin/language/htmltemplate/HtmlTemplateHighlightingLexerFactory.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/main/java/com/axellience/vuegwtplugin/language/htmltemplate/HtmlTemplateLexer.java

Lines changed: 0 additions & 45 deletions
This file was deleted.
Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.axellience.vuegwtplugin.language.htmltemplate;
22

33
import com.intellij.lang.html.HTMLParserDefinition;
4+
import com.intellij.lexer.HtmlLexer;
45
import com.intellij.lexer.Lexer;
56
import com.intellij.openapi.project.Project;
67
import com.intellij.psi.FileViewProvider;
@@ -13,22 +14,20 @@
1314

1415
public class HtmlTemplateParserDefinition extends HTMLParserDefinition {
1516

16-
private static final IFileElementType HTML_FILE =
17-
new IStubFileElementType<PsiFileStub<HtmlFileImpl>>(HtmlTemplateLanguage.INSTANCE);
17+
private static final IFileElementType HTML_FILE = new IStubFileElementType<PsiFileStub<HtmlFileImpl>>(HtmlTemplateLanguage.INSTANCE);
1818

19-
@Override
19+
@NotNull @Override
2020
public IFileElementType getFileNodeType() {
2121
return HTML_FILE;
2222
}
2323

24-
@Override
25-
public PsiFile createFile(FileViewProvider fileViewProvider) {
24+
@NotNull @Override
25+
public PsiFile createFile(@NotNull FileViewProvider fileViewProvider) {
2626
return new HtmlFileImpl(fileViewProvider, HTML_FILE);
2727
}
2828

29-
@NotNull
30-
@Override
29+
@NotNull @Override
3130
public Lexer createLexer(Project project) {
32-
return new HtmlTemplateLexer();
31+
return new HtmlLexer();
3332
}
3433
}

src/main/java/com/axellience/vuegwtplugin/language/htmltemplate/HtmlTemplateStyleLangAttributeHandler.java

Lines changed: 0 additions & 18 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.axellience.vuegwtplugin.language.htmltemplate;
2+
3+
import org.jetbrains.annotations.NotNull;
4+
import com.intellij.lang.Language;
5+
import com.intellij.lexer.BaseHtmlLexer;
6+
import com.intellij.lexer.HtmlScriptStyleEmbeddedContentProvider;
7+
8+
public class HtmlVueGWTTemplateScriptStyleEmbeddedContentProvider extends HtmlScriptStyleEmbeddedContentProvider {
9+
10+
public HtmlVueGWTTemplateScriptStyleEmbeddedContentProvider(@NotNull BaseHtmlLexer lexer) {
11+
super(lexer);
12+
}
13+
14+
@Override
15+
protected boolean isInterestedInAttribute(@NotNull CharSequence attributeName) {
16+
return super.isInterestedInAttribute(attributeName) || namesEqual(attributeName, "lang");
17+
}
18+
19+
@Override
20+
protected Language styleLanguage(String styleLang) {
21+
if ("scss".equals(styleLang)) {
22+
return Language.findLanguageByID("SCSS");
23+
}
24+
25+
return super.styleLanguage(styleLang);
26+
}
27+
}

src/main/resources/META-INF/plugin.xml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,18 @@
9393
<fileType name="VueGWT" implementationClass="com.axellience.vuegwtplugin.language.htmltemplate.HtmlTemplateFileType"
9494
fieldName="INSTANCE" language="VueGWT-Template" extensions=""/>
9595

96+
<html.embeddedContentSupport
97+
implementation="com.axellience.vuegwtplugin.language.htmltemplate.HtmlTemplateEmbeddedContentSupport" />
98+
9699
<lang.parserDefinition language="VueGWT-Template"
97-
implementationClass="com.axellience.vuegwtplugin.language.htmltemplate.HtmlTemplateParserDefinition"/>
100+
implementationClass="com.axellience.vuegwtplugin.language.htmltemplate.HtmlTemplateParserDefinition"/>
101+
102+
<lang.syntaxHighlighterFactory language="VueGWT-Template"
103+
implementationClass="com.intellij.lang.html.HtmlSyntaxHighlighterFactory"/>
98104

99105
<annotator language="JAVA"
100106
implementationClass="com.axellience.vuegwtplugin.annotators.JavaComponentAnnotator"/>
101107

102-
<lang.syntaxHighlighterFactory language="VueGWT-Template"
103-
implementationClass="com.axellience.vuegwtplugin.language.htmltemplate.HtmlTemplateHighlightingLexerFactory"/>
104-
105108
<completion.contributor
106109
language="any"
107110
id="VueGWTCompletionContributor"

0 commit comments

Comments
 (0)