nicer navigator
authorMarek Fukala <mfukala@netbeans.org>
Tue, 15 Jan 2013 11:24:05 +0100
changeset 17931a01a143ef99d
parent 17930 5a5600b5542a
child 17932 3d72cd56ee0e
nicer navigator
o.n.antlr.editor/src/org/netbeans/modules/antlr/editor/AntlrStructureItem.java
o.n.antlr.editor/src/org/netbeans/modules/antlr/editor/AntlrStructureScanner.java
     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;