public void StartSearch(INavigateToCallback callback, string searchValue) { var textView = GetCurrentTextView(); if (textView == null) { callback.Done(); return; } var cancellationTokenSource = new CancellationTokenSource(); _searchCancellationTokenSource = cancellationTokenSource; var cancellationToken = cancellationTokenSource.Token; var snapshot = textView.TextSnapshot; Task.Run(() => { try { var syntaxTree = snapshot.GetSyntaxTree(cancellationToken); var visitor = new NavigateToVisitor( searchValue, snapshot, textView, callback, _bufferGraphFactoryService, _navigateToItemProviderFactory, _glyphService, cancellationToken); visitor.Visit(syntaxTree.Root); } catch (OperationCanceledException) { } finally { callback.Done(); } }, cancellationToken); }
public void StartSearch(INavigateToCallback callback, string searchValue) { var textView = GetCurrentTextView(); if (textView == null) { callback.Done(); return; } var cancellationTokenSource = new CancellationTokenSource(); _searchCancellationTokenSource = cancellationTokenSource; var cancellationToken = cancellationTokenSource.Token; var snapshot = textView.TextSnapshot; Task.Run(() => { try { var syntaxTree = snapshot.GetSyntaxTree(_sourceTextFactory, cancellationToken); var visitor = new NavigateToVisitor( searchValue, snapshot, textView, callback, _bufferGraphFactoryService, _navigateToItemProviderFactory, _glyphService, cancellationToken); visitor.Visit(syntaxTree.Root); } catch (OperationCanceledException) { } finally { callback.Done(); } }, cancellationToken); }