Skip to content

Commit 1659f24

Browse files
committed
Update highlighter
1 parent 43fde13 commit 1659f24

File tree

4 files changed

+27
-13
lines changed

4 files changed

+27
-13
lines changed

README.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
# plugin-template
1+
# Solidity for DevKt
22

3-
This is the template of the plugin project.
4-
5-
Things to change before coding:
6-
7-
+ `your-language-devkt` in [settings.gradle.kts](settings.gradle.kts)
8-
+ `your.package.name` in [build.gradle.kts](build.gradle.kts)
3+
This is a [DevKt][0] plugin for the Solidity programming language, based on
4+
[this IDEA plugin][1].
95

6+
[0]: https://github.com/ice1000/dev-kt
7+
[1]: https://github.com/intellij-solidity/intellij-solidity

lib/common-v1.4-SNAPSHOT.jar

1.1 KB
Binary file not shown.

src/me/serce/devkt/solidity/lang/Solidity.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
import org.ice1000.devkt.openapi.AnnotationHolder;
99
import org.ice1000.devkt.openapi.ColorScheme;
1010
import org.ice1000.devkt.openapi.ExtendedDevKtLanguage;
11+
import org.ice1000.devkt.openapi.PsiUtils;
1112
import org.jetbrains.annotations.NotNull;
1213
import org.jetbrains.annotations.Nullable;
1314
import org.jetbrains.kotlin.com.intellij.psi.PsiElement;
15+
import org.jetbrains.kotlin.com.intellij.psi.TokenType;
1416
import org.jetbrains.kotlin.com.intellij.psi.tree.IElementType;
1517

1618
public class Solidity<T> extends ExtendedDevKtLanguage<T> {
@@ -45,13 +47,27 @@ public T attributesOf(IElementType type, ColorScheme<? extends T> colorScheme) {
4547
@Override
4648
public void annotate(PsiElement element, AnnotationHolder<? super T> document, ColorScheme<? extends T> colorScheme) {
4749
super.annotate(element, document, colorScheme);
48-
if (element instanceof SolNumberLiteral) document.highlight(element, colorScheme.getNumbers());
49-
else {
50+
if (element instanceof SolNumberLiteral) {
51+
document.highlight(element, colorScheme.getNumbers());
52+
return;
53+
}
54+
function:
55+
{
5056
PsiElement prevSibling = element.getPrevSibling();
51-
if (prevSibling == null) return;
52-
if (prevSibling.getNode().getElementType() == SolidityTokenTypes.FUNCTION) {
57+
if (prevSibling == null) break function;
58+
if (PsiUtils.getNodeType(prevSibling) == TokenType.WHITE_SPACE) prevSibling = prevSibling.getPrevSibling();
59+
if (prevSibling == null) break function;
60+
if (PsiUtils.getNodeType(prevSibling) == SolidityTokenTypes.FUNCTION)
5361
document.highlight(element, colorScheme.getFunction());
54-
}
62+
}
63+
clazz:
64+
{
65+
PsiElement prevSibling = element.getPrevSibling();
66+
if (prevSibling == null) break clazz;
67+
if (PsiUtils.getNodeType(prevSibling) == TokenType.WHITE_SPACE) prevSibling = prevSibling.getPrevSibling();
68+
if (prevSibling == null) break clazz;
69+
if (PsiUtils.getNodeType(prevSibling) == SolidityTokenTypes.CONTRACT)
70+
document.highlight(element, colorScheme.getNamespace());
5571
}
5672
}
5773

src/me/serce/devkt/solidity/lang/core/SolElementType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public SolElementType(@NotNull String debugName) {
1515
public static final @NotNull
1616
TokenSet COMMENTS = TokenSet.create(LINECOMMENT, DOCCOMMENT);
1717
public static final @NotNull
18-
TokenSet NUMBERS = TokenSet.create(HEXNUMBER, DECIMALNUMBER, FIXEDNUMBER, SCIENTIFICNUMBER, NUMBERUNIT);
18+
TokenSet NUMBERS = TokenSet.create(HEXNUMBER, DECIMALNUMBER, FIXEDNUMBER, SCIENTIFICNUMBER, NUMBERUNIT, HEXLITERAL);
1919
public static final @NotNull
2020
TokenSet KEYWORDS = TokenSet.create(IMPORT,
2121
AS,

0 commit comments

Comments
 (0)