Skip to content

Commit acb0519

Browse files
Add support for new keywords: "reserved" and "stream"
1 parent cea6894 commit acb0519

File tree

6 files changed

+57
-21
lines changed

6 files changed

+57
-21
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ dependencies {
2727
compile 'org.antlr:antlr4-runtime:4.5.1'
2828
compile 'org.antlr:antlr4-jetbrains-adapter:1.0.0'
2929
antlr 'org.antlr:antlr4:4.5'
30-
compile 'io.protostuff:protostuff-parser:2.0.0-alpha10'
30+
compile 'io.protostuff:protostuff-parser:2.0.0-alpha12'
3131
}
3232

3333
apply plugin: 'idea'

src/main/java/io/protostuff/jetbrains/plugin/ProtoParserDefinition.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ public class ProtoParserDefinition implements ParserDefinition {
3939
public static final IElementType R_TYPE_REFERENCE;
4040
public static final IElementType R_NAME;
4141
public static final IElementType R_FIELD_MODIFIER;
42-
public static final IElementType R_TO;
4342
private static final IFileElementType FILE;
4443
private static final TokenSet COMMENTS;
4544
private static final TokenSet WHITESPACE;
@@ -71,11 +70,13 @@ public class ProtoParserDefinition implements ParserDefinition {
7170
ProtoLexer.ONEOF,
7271
ProtoLexer.EXTEND,
7372
ProtoLexer.EXTENSIONS,
73+
ProtoLexer.RESERVED,
7474
ProtoLexer.TO,
7575
ProtoLexer.MAX,
7676
ProtoLexer.ENUM,
7777
ProtoLexer.SERVICE,
7878
ProtoLexer.RPC,
79+
ProtoLexer.STREAM,
7980
ProtoLexer.RETURNS,
8081
ProtoLexer.MAP,
8182
ProtoLexer.BOOLEAN_VALUE,
@@ -101,7 +102,6 @@ public class ProtoParserDefinition implements ParserDefinition {
101102
R_TYPE_REFERENCE = ruleTypes.get(ProtoParser.RULE_typeReference);
102103
R_NAME = ruleTypes.get(ProtoParser.RULE_name);
103104
R_FIELD_MODIFIER = ruleTypes.get(ProtoParser.RULE_fieldModifier);
104-
R_TO = ruleTypes.get(ProtoParser.RULE_to);
105105
}
106106

107107
@NotNull
@@ -198,6 +198,12 @@ public PsiElement createElement(ASTNode node) {
198198
return new MapKeyNode(node);
199199
case ProtoParser.RULE_optionValue:
200200
return new OptionValueNode(node);
201+
case ProtoParser.RULE_range:
202+
return new RangeNode(node);
203+
case ProtoParser.RULE_reserved:
204+
return new ReservedFieldsNode(node);
205+
case ProtoParser.RULE_rpcType:
206+
return new RpcMethodTypeNode(node);
201207
default:
202208
return new ANTLRPsiNode(node);
203209
}
Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
package io.protostuff.jetbrains.plugin.psi;
22

33
import com.intellij.lang.ASTNode;
4-
import com.intellij.psi.PsiElement;
5-
import io.protostuff.jetbrains.plugin.ProtoParserDefinition;
64
import org.antlr.jetbrains.adapter.psi.ANTLRPsiNode;
75
import org.jetbrains.annotations.NotNull;
86

9-
import java.util.ArrayList;
10-
import java.util.Collection;
11-
import java.util.List;
12-
137
/**
148
* @author Kostiantyn Shchepanovskyi
159
*/
@@ -19,16 +13,4 @@ public ExtensionsNode(@NotNull ASTNode node) {
1913
super(node);
2014
}
2115

22-
@Override
23-
public Collection<PsiElement> keywords() {
24-
ASTNode node = getNode();
25-
ASTNode toPart = node.findChildByType(ProtoParserDefinition.R_TO);
26-
if (toPart != null) {
27-
List<PsiElement> result = new ArrayList<>();
28-
result.addAll(Util.findKeywords(toPart));
29-
result.addAll(Util.findKeywords(node));
30-
return result;
31-
}
32-
return Util.findKeywords(node);
33-
}
3416
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package io.protostuff.jetbrains.plugin.psi;
2+
3+
import com.intellij.lang.ASTNode;
4+
import org.antlr.jetbrains.adapter.psi.ANTLRPsiNode;
5+
import org.jetbrains.annotations.NotNull;
6+
7+
/**
8+
* @author Kostiantyn Shchepanovskyi
9+
*/
10+
public class RangeNode extends ANTLRPsiNode implements KeywordsContainer {
11+
12+
public RangeNode(@NotNull ASTNode node) {
13+
super(node);
14+
}
15+
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package io.protostuff.jetbrains.plugin.psi;
2+
3+
import com.intellij.lang.ASTNode;
4+
import org.antlr.jetbrains.adapter.psi.ANTLRPsiNode;
5+
import org.jetbrains.annotations.NotNull;
6+
7+
/**
8+
* @author Kostiantyn Shchepanovskyi
9+
*/
10+
public class ReservedFieldsNode extends ANTLRPsiNode implements KeywordsContainer {
11+
12+
public ReservedFieldsNode(@NotNull ASTNode node) {
13+
super(node);
14+
}
15+
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package io.protostuff.jetbrains.plugin.psi;
2+
3+
import com.intellij.lang.ASTNode;
4+
import org.antlr.jetbrains.adapter.psi.ANTLRPsiNode;
5+
import org.jetbrains.annotations.NotNull;
6+
7+
/**
8+
* @author Kostiantyn Shchepanovskyi
9+
*/
10+
public class RpcMethodTypeNode extends ANTLRPsiNode implements KeywordsContainer {
11+
12+
public RpcMethodTypeNode(@NotNull ASTNode node) {
13+
super(node);
14+
}
15+
16+
}

0 commit comments

Comments
 (0)