void UpdateInstalledPackages()
        {
            sortedInstalledPackages = installedPackages
                                      .OrderBy(p => p.Identity.Id)
                                      .ToImmutableArray();

            MainThread.Post(() => NotifyPropertyChanged(nameof(InstalledPackages)));
        }
Esempio n. 2
0
        private int GetHashCodeCore()
        {
            var hash = new HashCode();

            hash.Add(Name);
            foreach (var w in _words.OrderBy(w => w.Spelling))
            {
                hash.Add(w);
            }

            return(hash.ToHashCode());
        }
Esempio n. 3
0
 public CacheKey(
     ImmutableHashSet <Assembly> assemblies,
     ImmutableHashSet <Type> parts,
     ImmutableHashSet <Type> excludedPartTypes
     )
 {
     _assemblies = assemblies
                   .OrderBy((a, b) => string.CompareOrdinal(a.FullName, b.FullName))
                   .ToImmutableArray();
     _parts = parts
              .OrderBy((a, b) => string.CompareOrdinal(a.FullName, b.FullName))
              .ToImmutableArray();
     _excludedPartTypes = excludedPartTypes
                          .OrderBy((a, b) => string.CompareOrdinal(a.FullName, b.FullName))
                          .ToImmutableArray();
 }
Esempio n. 4
0
        private void OnTimer()
        {
            // Check if the number of desired connections is already enough
            if (ConnectedPeers.Count >= MinDesiredConnections)
            {
                return;
            }

            // If there aren't available UnconnectedPeers, it triggers an abstract implementation of NeedMorePeers
            if (UnconnectedPeers.Count == 0)
            {
                NeedMorePeers(MinDesiredConnections - ConnectedPeers.Count);
            }

            Random rand = new Random();

            IPEndPoint[] endpoints = UnconnectedPeers.OrderBy(u => rand.Next()).Take(MinDesiredConnections - ConnectedPeers.Count).ToArray();
            ImmutableInterlocked.Update(ref UnconnectedPeers, p => p.Except(endpoints));
            foreach (IPEndPoint endpoint in endpoints)
            {
                ConnectToPeer(endpoint);
            }
        }
Esempio n. 5
0
 public CacheKey(ImmutableHashSet <Assembly> assemblies, ImmutableHashSet <Type> parts, ImmutableHashSet <Type> excludedPartTypes)
 {
     _assemblies        = assemblies.OrderBy(a => a.FullName, StringComparer.Ordinal).ToImmutableArray();
     _parts             = parts.OrderBy(a => a.FullName, StringComparer.Ordinal).ToImmutableArray();
     _excludedPartTypes = excludedPartTypes.OrderBy(a => a.FullName, StringComparer.Ordinal).ToImmutableArray();
 }
Esempio n. 6
0
        public static ImmutableArray <string> Fuzzy(
            string value,
            SpellingData spellingData,
            CancellationToken cancellationToken = default)
        {
            int length = value.Length;

            if (length <= 3)
            {
                return(ImmutableArray <string> .Empty);
            }

            ImmutableHashSet <string> .Builder matches = null;
            WordCharMap map         = spellingData.CharIndexMap;
            WordCharMap reversedMap = spellingData.ReversedCharIndexMap;
            var         intersects  = new ImmutableHashSet <string> [length];

            int i = 0;

            while (true)
            {
                cancellationToken.ThrowIfCancellationRequested();

                if (!map.TryGetValue(value, i, out ImmutableHashSet <string> values))
                {
                    break;
                }

                ImmutableHashSet <string> intersect = (i == 0)
                    ? values
                    : intersects[i - 1].Intersect(values);

                if (i == length - 2)
                {
                    TryAddMatches(intersect, length, ref matches);
                }
                else if (i == length - 1)
                {
                    TryAddMatches(intersect, length + 1, ref matches);

                    break;
                }

                if (intersect.Count == 0)
                {
                    break;
                }

                intersects[i] = intersect;
                i++;
            }

            int j = length - 1;

            while (true)
            {
                cancellationToken.ThrowIfCancellationRequested();

                if (!reversedMap.TryGetValue(value[j], length - j - 1, out ImmutableHashSet <string> values))
                {
                    break;
                }

                ImmutableHashSet <string> intersect = (j == length - 1)
                    ? values
                    : values.Intersect(intersects[j + 1]);

                if (j == 1)
                {
                    TryAddMatches(intersect, length, ref matches);
                }
                else if (j == 0)
                {
                    TryAddMatches(intersect, length + 1, ref matches);
                    break;
                }

                if (intersect.Count == 0)
                {
                    break;
                }

                int diff = j - i;

                if (diff <= 0)
                {
                    if (TryAddMatches(intersects[j - 1].Intersect(intersect), length + 1, ref matches))
                    {
                        break;
                    }
                }
                else if (diff == 1 &&
                         j > 1)
                {
                    if (TryAddMatches(intersects[j - 2].Intersect(intersect), length - 1, length, ref matches))
                    {
                        break;
                    }
                }

                intersects[j] = intersect;
                j--;
            }

            if (matches == null)
            {
                return(ImmutableArray <string> .Empty);
            }

            return(matches
                   .OrderBy(f => f)
                   .ToImmutableArray());
        }
Esempio n. 7
0
        static UriSchemeLookup()
        {
            UriSchemeNamesSuffixed = UriSchemeNames.Select(u => $"{u}{UriSuffix}").ToImmutableHashSet();

            UriSchemeNamesSuffixedOrdered = UriSchemeNamesSuffixed.OrderBy(usns => usns.Length).ThenBy(usns => usns).ToImmutableList();
        }
Esempio n. 8
0
        public string GetDebugString()
        {
            // NOTE: keep this in sync with Serialize below.

            using var _ = PooledStringBuilder.GetInstance(out var sb);

            var(languages, values) = this.GetLanguagesAndValuesToSerialize(includeValues: true);

            sb.AppendLine($"languages count: {languages.Count}");
            foreach (var language in languages.Order())
            {
                Debug.Assert(RemoteSupportedLanguages.IsSupported(language));
                sb.AppendLine(language);
            }

            sb.AppendLine();
            sb.AppendLine($"values count: {values.Count}");
            foreach (var(optionKey, (kind, value)) in values)
            {
                SerializeOptionKey(optionKey);

                sb.Append($"{kind}: ");
                if (kind == OptionValueKind.Enum)
                {
                    RoslynDebug.Assert(value != null);
                    sb.AppendLine(value.ToString());
                }
                else if (kind is OptionValueKind.CodeStyleOption)
                {
                    RoslynDebug.Assert(value != null);
                    var codeStyleOption = (ICodeStyleOption)value;
                    sb.AppendLine(codeStyleOption.ToXElement().ToString());
                }
                else if (kind is OptionValueKind.NamingStylePreferences)
                {
                    RoslynDebug.Assert(value != null);
                    var namingStylePreferences = (NamingStylePreferences)value;
                    sb.AppendLine(namingStylePreferences.CreateXElement().ToString());
                }
                else
                {
                    sb.AppendLine($"{value}");
                }

                sb.AppendLine();
            }

            sb.AppendLine();
            sb.AppendLine($"changed options count: {_changedOptionKeysSerializable.Count}");
            foreach (var changedKey in _changedOptionKeysSerializable.OrderBy(OptionKeyComparer.Instance))
            {
                SerializeOptionKey(changedKey);
            }

            return(sb.ToString());

            void SerializeOptionKey(OptionKey optionKey)
            {
                Debug.Assert(ShouldSerialize(optionKey));

                sb.AppendLine($"{optionKey.Option.Name} {optionKey.Option.Feature} {optionKey.Option.IsPerLanguage} {optionKey.Language}");
            }
        }