public static List<IEditorNavigationTarget> ExtractNavigationTargets(IAstRuleReturnScope parseResult, ReadOnlyCollection<IToken> tokens, AlloyAtnEditorNavigationSourceProvider provider, ITextSnapshot snapshot) { BufferedTreeNodeStream input = new BufferedTreeNodeStream(parseResult.Tree); AlloyEditorNavigationSourceWalker walker = new AlloyEditorNavigationSourceWalker(input, snapshot, tokens, provider.EditorNavigationTypeRegistryService, provider.GlyphService, provider.OutputWindowService); walker.compilationUnit(); return walker._targets; }
public static List <IEditorNavigationTarget> ExtractNavigationTargets(IAstRuleReturnScope parseResult, ReadOnlyCollection <IToken> tokens, AlloyAtnEditorNavigationSourceProvider provider, ITextSnapshot snapshot) { BufferedTreeNodeStream input = new BufferedTreeNodeStream(parseResult.Tree); AlloyEditorNavigationSourceWalker walker = new AlloyEditorNavigationSourceWalker(input, snapshot, tokens, provider.EditorNavigationTypeRegistryService, provider.GlyphService, provider.OutputWindowService); walker.compilationUnit(); return(walker._targets); }
private void UpdateNavigationTargets(AntlrParseResultEventArgs antlrParseResultArgs) { Contract.Requires(antlrParseResultArgs != null); List <IEditorNavigationTarget> navigationTargets = null; if (antlrParseResultArgs != null) { IAstRuleReturnScope parseResult = antlrParseResultArgs.Result as IAstRuleReturnScope; if (parseResult != null) { navigationTargets = AlloyEditorNavigationSourceWalker.ExtractNavigationTargets(parseResult, antlrParseResultArgs.Tokens, _provider, antlrParseResultArgs.Snapshot); } } this._navigationTargets = navigationTargets ?? new List <IEditorNavigationTarget>(); OnNavigationTargetsChanged(EventArgs.Empty); }