Beispiel #1
0
        private static void IncreaseServiceFormatPriority(IClassificationFormatMap formatMap, IClassificationTypeRegistryService registry, string formatName,
                                                          IClassificationType highestPriorityType)
        {
            IClassificationType         predefinedClassificationType = registry.GetClassificationType(formatName);
            IClassificationType         artificialClassType          = registry.CreateTransientClassificationType(predefinedClassificationType);
            TextFormattingRunProperties properties = formatMap.GetExplicitTextProperties(predefinedClassificationType);

            formatMap.AddExplicitTextProperties(artificialClassType, properties, highestPriorityType);
            formatMap.SwapPriorities(artificialClassType, predefinedClassificationType);
            formatMap.SwapPriorities(highestPriorityType, predefinedClassificationType);
        }
        /// <summary>
        /// Swap priority of items from <paramref name="classificationType"/> to classification: <para/>
        /// * [...,cur,a1,a2,tar,...] -> [...,a1,a2,tar,cur,...]<para/>
        /// * [...,tar,a1,a2,cur,...] -> [...,tar,cur,a1,a2,...]
        /// </summary>
        private static void SetPriority(
            IClassificationFormatMap formatMap,
            IClassificationType classificationType,
            int classificationPosition)
        {
            var index = formatMap.CurrentPriorityOrder.IndexOf(classificationType);

            if (index < classificationPosition)
            {
                while (index < classificationPosition)
                {
                    formatMap.SwapPriorities(classificationType, formatMap.CurrentPriorityOrder[++index]);
                }
            }
            else
            {
                while (classificationPosition < --index)
                {
                    formatMap.SwapPriorities(formatMap.CurrentPriorityOrder[index], classificationType);
                }
            }
        }
Beispiel #3
0
 public void SwapPriorities(IClassificationType firstType, IClassificationType secondType) =>
 categoryMap.SwapPriorities(firstType, secondType);