1.1 --- a/o.n.antlr.editor/src/org/netbeans/modules/antlr/editor/AntlrStructureItem.java Tue Jan 15 11:19:25 2013 +0100
1.2 +++ b/o.n.antlr.editor/src/org/netbeans/modules/antlr/editor/AntlrStructureItem.java Tue Jan 15 11:24:05 2013 +0100
1.3 @@ -61,11 +61,21 @@
1.4 private FileObject file;
1.5 private CharSequence name;
1.6 private OffsetRange range;
1.7 + private ElementKind kind;
1.8
1.9 - AntlrStructureItem(FileObject file, CharSequence name, OffsetRange range) {
1.10 + public static AntlrStructureItem createRuleItem(FileObject file, CharSequence name, OffsetRange range) {
1.11 + return new AntlrStructureItem(file, name, range, ElementKind.METHOD );
1.12 + }
1.13 +
1.14 + public static AntlrStructureItem createTokenItem(FileObject file, CharSequence name, OffsetRange range) {
1.15 + return new AntlrStructureItem(file, name, range, ElementKind.FIELD );
1.16 + }
1.17 +
1.18 + private AntlrStructureItem(FileObject file, CharSequence name, OffsetRange range, ElementKind kind) {
1.19 this.file = file;
1.20 this.name = name;
1.21 this.range = range;
1.22 + this.kind = kind;
1.23 }
1.24
1.25 @Override
1.26 @@ -90,7 +100,7 @@
1.27
1.28 @Override
1.29 public ElementKind getKind() {
1.30 - return ElementKind.RULE;
1.31 + return kind;
1.32 }
1.33
1.34 @Override
2.1 --- a/o.n.antlr.editor/src/org/netbeans/modules/antlr/editor/AntlrStructureScanner.java Tue Jan 15 11:19:25 2013 +0100
2.2 +++ b/o.n.antlr.editor/src/org/netbeans/modules/antlr/editor/AntlrStructureScanner.java Tue Jan 15 11:24:05 2013 +0100
2.3 @@ -80,7 +80,16 @@
2.4 assert id.getType() == ANTLRv3Parser.ID;
2.5
2.6 CommonToken ct = (CommonToken)id.getToken();
2.7 - items.add(new AntlrStructureItem(file, ct.getText(), new OffsetRange(ct.getStartIndex(), ct.getStopIndex() + 1)));
2.8 + String text = ct.getText();
2.9 +
2.10 + //XXX fix the token/gr.rule recognition!!!
2.11 + if(Character.isUpperCase(text.charAt(0))) {
2.12 + //token
2.13 + items.add(AntlrStructureItem.createTokenItem(file, ct.getText(), new OffsetRange(ct.getStartIndex(), ct.getStopIndex() + 1)));
2.14 + } else {
2.15 + //token
2.16 + items.add(AntlrStructureItem.createRuleItem(file, ct.getText(), new OffsetRange(ct.getStartIndex(), ct.getStopIndex() + 1)));
2.17 + }
2.18 break;
2.19 }
2.20 return t;