Beispiel #1
0
        public FindReferencesSearchEngine(
            Solution solution,
            IImmutableSet <Document> documents,
            ImmutableArray <IReferenceFinder> finders,
            IStreamingFindReferencesProgress progress,
            CancellationToken cancellationToken)
        {
            _documents         = documents;
            _solution          = solution;
            _finders           = finders;
            _progress          = progress;
            _cancellationToken = cancellationToken;
            _dependencyGraph   = solution.GetProjectDependencyGraph();

            _progressTracker = new StreamingProgressTracker(progress.ReportProgressAsync);
        }
Beispiel #2
0
        public FindLiteralsSearchEngine(
            Solution solution,
            IStreamingFindLiteralReferencesProgress progress, object value,
            CancellationToken cancellationToken)
        {
            _solution          = solution;
            _progress          = progress;
            _progressTracker   = new StreamingProgressTracker(_progress.ReportProgressAsync);
            _value             = value;
            _cancellationToken = cancellationToken;

            switch (value)
            {
            case string s:
                _stringValue = s;
                _searchKind  = SearchKind.StringLiterals;
                break;

            case double d:
                _longValue  = BitConverter.DoubleToInt64Bits(d);
                _searchKind = SearchKind.NumericLiterals;
                break;

            case float f:
                _longValue  = BitConverter.DoubleToInt64Bits(f);
                _searchKind = SearchKind.NumericLiterals;
                break;

            case decimal d:     // unsupported
                _searchKind = SearchKind.None;
                break;

            case char c:
                _longValue  = IntegerUtilities.ToInt64(value);
                _searchKind = SearchKind.CharacterLiterals;
                break;

            default:
                _longValue  = IntegerUtilities.ToInt64(value);
                _searchKind = SearchKind.NumericLiterals;
                break;
            }
        }