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);
        }