public override void EnterTokensSpec([NotNull] AbstractGrammarParser.TokensSpecContext context) { foreach (GrammarParser.IdContext id in context.id()) { AddNavigationTarget(id, ParseTrees.GetStartNode(id), _navigationSource._lexerRuleNavigationType, _navigationSource._lexerRuleGlyph); } }
public override Tuple <IParseTree, int> VisitTokensSpec([NotNull] AbstractGrammarParser.TokensSpecContext context) { if (context.ChildCount == 0 || targetElement == context.GetChild(0)) { return(null); } if (ParseTrees.GetTerminalNodeType(targetElement) == GrammarParser.RBRACE) { return(Tuple.Create <IParseTree, int>(context, 0)); } // align to the previous element for (int i = priorSiblings.Count - 2; i >= 0; i--) { IParseTree sibling = priorSiblings[i]; // stop at the first id rule, index 0 is the TOKENS terminal itself if (i == 1 || ParseTrees.ElementStartsLine(sibling)) { return(Tuple.Create(sibling, 0)); } } return(Tuple.Create <IParseTree, int>(context, _indentSize)); }
public override void EnterTokensSpec([NotNull] AbstractGrammarParser.TokensSpecContext context) { OutlineBlock(context, "tokens { ... }"); }