/*public IEnumerable<ChainedNavigationItemData> GetNextChainedScopes(
         *  GotoContext gotoContext, IdentifierMatcher matcher, INavigationScope containingScope, CheckForInterrupt checkCancelled)
         * {
         *  var solution = containingScope.GetSolution();
         *  var cache = this.GetCache(containingScope, solution, gotoContext);
         *
         *  return ChainedScopesUtil.GetNextCodeModelScope(matcher, containingScope, checkCancelled, cache, true);
         * }
         */

        public IEnumerable <MatchingInfo> FindMatchingInfos(
            IdentifierMatcher matcher, INavigationScope scope, GotoContext gotoContext, Func <bool> checkCancelled)
        {
            var primaryMembersData = this.GetPrimaryMembers(scope.GetSolution());

            var fileMembersMap = new NTriplesFileMembersMap();

            var result = new Collection <MatchingInfo>();

            foreach (var data in primaryMembersData)
            {
                var quickSearchTexts = this.GetQuickSearchTexts(data.Element);
                var matchedText      = quickSearchTexts.FirstOrDefault(tuple => matcher.Matches(tuple.A));
                if (matchedText == null)
                {
                    continue;
                }

                fileMembersMap.Add(matchedText.A, data);

                var matchingIndicies = matchedText.B
                                           ? matcher.MatchingIndicies(matchedText.A)
                                           : EmptyArray <IdentifierMatch> .Instance;
                result.Add(
                    new MatchingInfo(
                        matchedText.A,
                        matcher.Filter == "*"
                            ? EmptyList <IdentifierMatch> .InstanceList
                            : matchingIndicies,
                        matchedText.B));
            }

            gotoContext.PutData(NTriplesFileMembersMap.NTriplesFileMembersMapKey, fileMembersMap);
            return(result);
        }
Beispiel #2
0
        public IEnumerable <MatchingInfo> FindMatchingInfos(IdentifierMatcher matcher, INavigationScope scope, GotoContext gotoContext, Func <bool> checkForInterrupt)
        {
            var fileMemberScope = scope as FileMemberNavigationScope;

            if (fileMemberScope == null)
            {
                return(EmptyList <MatchingInfo> .InstanceList);
            }

            var primaryMembersData = GetPrimaryMembers(fileMemberScope);

            var psiFileMembersMap = new PsiFileMembersMap();

            var result = new Collection <MatchingInfo>();

            foreach (var data in primaryMembersData)
            {
                var quickSearchTexts = GetQuickSearchTexts(data.Element);
                var matchedText      = quickSearchTexts.FirstOrDefault(tuple => matcher.Matches(tuple.A));
                if (matchedText == null)
                {
                    continue;
                }

                psiFileMembersMap.Add(matchedText.A, data);

                var matchingIndicies = matchedText.B ? matcher.MatchingIndicies(matchedText.A) : EmptyArray <IdentifierMatch> .Instance;
                result.Add(new MatchingInfo(matchedText.A, matcher.Filter == "*" ? EmptyList <IdentifierMatch> .InstanceList : matchingIndicies, matchedText.B));
            }

            gotoContext.PutData(PsiFileMembersMap.PsiFileMembersMapKey, psiFileMembersMap);
            return(result);
        }
        /*public IEnumerable<ChainedNavigationItemData> GetNextChainedScopes(
            GotoContext gotoContext, IdentifierMatcher matcher, INavigationScope containingScope, CheckForInterrupt checkCancelled)
        {
            var solution = containingScope.GetSolution();
            var cache = this.GetCache(containingScope, solution, gotoContext);

            return ChainedScopesUtil.GetNextCodeModelScope(matcher, containingScope, checkCancelled, cache, true);
        }
*/

        public IEnumerable<MatchingInfo> FindMatchingInfos(
            IdentifierMatcher matcher, INavigationScope scope, GotoContext gotoContext, Func<bool> checkCancelled)
        {
            var primaryMembersData = this.GetPrimaryMembers(scope.GetSolution());

            var fileMembersMap = new NTriplesFileMembersMap();

            var result = new Collection<MatchingInfo>();
            foreach (var data in primaryMembersData)
            {
                var quickSearchTexts = this.GetQuickSearchTexts(data.Element);
                var matchedText = quickSearchTexts.FirstOrDefault(tuple => matcher.Matches(tuple.A));
                if (matchedText == null)
                {
                    continue;
                }

                fileMembersMap.Add(matchedText.A, data);

                var matchingIndicies = matchedText.B
                                           ? matcher.MatchingIndicies(matchedText.A)
                                           : EmptyArray<IdentifierMatch>.Instance;
                result.Add(
                    new MatchingInfo(
                        matchedText.A,
                        matcher.Filter == "*"
                            ? EmptyList<IdentifierMatch>.InstanceList
                            : matchingIndicies,
                        matchedText.B));
            }

            gotoContext.PutData(NTriplesFileMembersMap.NTriplesFileMembersMapKey, fileMembersMap);
            return result;
        }
   public IEnumerable<MatchingInfo> FindMatchingInfos(IdentifierMatcher matcher, INavigationScope scope, GotoContext gotoContext,
 Func<bool> checkForInterrupt)
   {
       var indices = matcher.MatchingIndicies(matcher.Filter);
         var matchingInfo = new MatchingInfo(matcher.Filter, indices);
         yield return matchingInfo;
   }
        public IEnumerable <MatchingInfo> FindMatchingInfos(IdentifierMatcher matcher, INavigationScope scope, GotoContext gotoContext,
                                                            Func <bool> checkForInterrupt)
        {
            var indices      = matcher.MatchingIndicies(matcher.Filter);
            var matchingInfo = new MatchingInfo(matcher.Filter, indices);

            yield return(matchingInfo);
        }
Beispiel #6
0
        public IEnumerable <MatchingInfo> FindMatchingInfos(IdentifierMatcher matcher, INavigationScope scope, CheckForInterrupt checkCancelled, GotoContext gotoContext)
        {
            var fileMemberScope = scope as FileMemberNavigationScope;

            if (fileMemberScope == null)
            {
                return(EmptyList <MatchingInfo> .InstanceList);
            }

            var primaryMembersData = GetPrimaryMembers(fileMemberScope);

            var primarySourceFile = fileMemberScope.GetPrimarySourceFile();
            ICollection <ClrFileMemberData> secondaryMembersData = new Collection <ClrFileMemberData>();

            if (scope.ExtendedSearchFlag == LibrariesFlag.SolutionAndLibraries)
            {
                var secondaryFilesGetter = fileMemberScope.GetSecondaryFilesGetter();
                secondaryMembersData = GetSecondaryMembers(primarySourceFile, secondaryFilesGetter);
            }

            var clrFileMembersMap = new ClrFileMembersMap();

            var result = new Collection <MatchingInfo>();

            foreach (var data in primaryMembersData.Concat(secondaryMembersData))
            {
                var quickSearchTexts = GetQuickSearchTexts(data.Element);
                var matchedText      = quickSearchTexts.FirstOrDefault(tuple => matcher.Matches(tuple.A));
                if (matchedText == null)
                {
                    continue;
                }

                clrFileMembersMap.Add(matchedText.A, data);

                var matchingIndicies = matchedText.B ? matcher.MatchingIndicies(matchedText.A) : EmptyArray <IdentifierMatch> .Instance;
                result.Add(new MatchingInfo(matchedText.A, matcher.Filter == "*" ? EmptyList <IdentifierMatch> .InstanceList : matchingIndicies, matchedText.B));
            }

            gotoContext.PutData(ClrFileMembersMap.ClrFileMembersMapKey, clrFileMembersMap);
            return(result);
        }
Beispiel #7
0
        private static string GetMatchedAbbreviation(IdentifierMatcher matcher)
        {
            if (matcher == null)
            {
                return(null);
            }

            foreach (var abbreviation in Abbreviations)
            {
                var matches = matcher.MatchingIndicies(abbreviation);
                if (matches != null)
                {
                    // TODO: This could match multiple? E.g. n- matches ng- and data-ng-
                    // This is relying on ordering of the Abreviations
                    // How to work out best fit? Most number of matched indices in
                    // shortest string?
                    if (matches.Last().TextIndex == abbreviation.Length - 1)
                    {
                        return(abbreviation);
                    }
                }
            }
            return(null);
        }
Beispiel #8
0
 private static int[] GetMatchingIndicies(IdentifierMatcher matcher, string abbreviation)
 {
     return(matcher.MatchingIndicies(abbreviation));
 }