Exemple #1
0
 /// <summary>
 /// Initializes a new instance of the ChangeStyleCopRule class.
 /// </summary>
 /// <param name="highlightingSettingsManager">
 /// The settings manager to use.
 /// </param>
 /// <param name="settingsStore">
 /// The settings store.
 /// </param>
 /// <param name="application">
 /// The UI application.
 /// </param>
 /// <param name="commonIconsComponent">
 /// The icon to use.
 /// </param>
 public ChangeStyleCopRule(
     HighlightingSettingsManager highlightingSettingsManager, ISettingsStore settingsStore, UIApplication application, IThemedIconManager commonIconsComponent)
 {
     this.highlightingSettingsManager = highlightingSettingsManager;
     this.settingsStore        = settingsStore;
     this.commonIconsComponent = commonIconsComponent;
 }
 /// <summary>
 /// Initializes a new instance of the ChangeStyleCopRule class.
 /// </summary>
 /// <param name="highlightingSettingsManager">
 /// The settings manager to use.
 /// </param>
 /// <param name="settingsStore">
 /// The settings store.
 /// </param>
 /// <param name="application">
 /// The UI application.
 /// </param>
 /// <param name="commonIconsComponent">
 /// The icon to use.
 /// </param>
 public ChangeStyleCopRule(
     HighlightingSettingsManager highlightingSettingsManager, ISettingsStore settingsStore, UIApplication application, IThemedIconManager commonIconsComponent)
 {
     this.highlightingSettingsManager = highlightingSettingsManager;
     this.settingsStore = settingsStore;
     this.commonIconsComponent = commonIconsComponent;
 }
 /// <summary>
 /// Initializes a new instance of the ChangeStyleCopRuleAction class.
 /// </summary>
 /// <param name="highlightingSettingsManager">
 /// The settings manager to use.
 /// </param>
 /// <param name="settingsStore">
 /// The settings store.
 /// </param>
 /// <param name="severityId">
 /// The severityId.
 /// </param>
 public ChangeStyleCopRuleAction(
     HighlightingSettingsManager highlightingSettingsManager, ISettingsStore settingsStore, string severityId)
 {
     this.highlightingSettingsManager = highlightingSettingsManager;
     this.settingsStore = settingsStore;
     this.HighlightID   = severityId;
 }
Exemple #4
0
        /// <summary>
        /// Performs the QuickFix, inserts the configured modifier into the location specified by
        /// the violation.
        /// </summary>
        /// <param name="solution">
        /// Current Solution.
        /// </param>
        /// <param name="textControl">
        /// Current Text Control to modify.
        /// </param>
        public void Execute(ISolution solution, ITextControl textControl)
        {
            using (ChangeSeverityDialog dialog = new ChangeSeverityDialog())
            {
                ////var settings = HighlightingSettingsManager.Instance.Settings.Clone();

                ////var severityItem = HighlightingSettingsManager.Instance.GetSeverityItem(this.HighlightID);

                ////dialog.Severity = settings.GetSeverity(this.HighlightID);
                ////dialog.Text = "Inspection options for \"" + severityItem.Title + "\"";

                ////if (dialog.ShowDialog(Shell.Instance.GetComponent<UIApplication>().MainWindow) == DialogResult.OK)
                ////{
                ////    settings.SetSeverity(this.HighlightID, dialog.Severity);
                ////    HighlightingSettingsManager.Instance.Settings = settings;

                ////    Daemon.GetInstance(solution).Invalidate();
                ////}
                IContextBoundSettingsStore settingsStore             = PsiSourceFileExtensions.GetSettingsStore(null, solution);
                IContextBoundSettingsStore contextBoundSettingsStore =
                    settingsStore.SettingsStore.BindToContextTransient(ContextRange.Smart(textControl.Document.ToDataContext()));
                HighlightingSettingsManager settingsManager = HighlightingSettingsManager.Instance;
                HighlightingSettingsManager.ConfigurableSeverityItem item = settingsManager.GetSeverityItem(this.HighlightID);
                dialog.Severity   = settingsManager.GetConfigurableSeverity(this.HighlightID, solution);
                dialog.Text       = string.Format("Inspection Options for \"{0}\"", item.FullTitle);
                dialog.CanBeError = !item.SolutionAnalysisRequired;
                if (dialog.ShowDialog(Shell.Instance.GetComponent <UIApplication>().MainWindow) == DialogResult.OK)
                {
                    contextBoundSettingsStore.SetIndexedValue(HighlightingSettingsAccessor.InspectionSeverities, this.HighlightID, dialog.Severity);
                }
            }
        }
 /// <summary>
 /// Initializes a new instance of the ChangeStyleCopRuleAction class.
 /// </summary>
 /// <param name="highlightingSettingsManager">
 /// The settings manager to use.
 /// </param>
 /// <param name="settingsStore">
 /// The settings store.
 /// </param>
 /// <param name="severityId">
 /// The severityId.
 /// </param>
 /// <param name="commonIconsComponent">
 /// The icon to use.
 /// </param>
 public ChangeStyleCopRuleAction(
     HighlightingSettingsManager highlightingSettingsManager, ISettingsStore settingsStore, string severityId, IThemedIconManager commonIconsComponent)
 {
     this.highlightingSettingsManager = highlightingSettingsManager;
     this.settingsStore        = settingsStore;
     this.commonIconsComponent = commonIconsComponent;
     this.HighlightID          = severityId;
 }
Exemple #6
0
 /// <summary>
 /// Initializes a new instance of the ChangeStyleCopRule class.
 /// </summary>
 /// <param name="highlightingSettingsManager">
 /// The settings manager to use.
 /// </param>
 /// <param name="settingsStore">
 /// The settings store.
 /// </param>
 /// <param name="application">
 /// The UI application.
 /// </param>
 public ChangeStyleCopRule(
     HighlightingSettingsManager highlightingSettingsManager,
     ISettingsStore settingsStore,
     UIApplication application)
 {
     this.highlightingSettingsManager = highlightingSettingsManager;
     this.settingsStore = settingsStore;
 }
 /// <summary>
 /// Initializes a new instance of the ChangeStyleCopRuleAction class.
 /// </summary>
 /// <param name="highlightingSettingsManager">
 /// The settings manager to use.
 /// </param>
 /// <param name="settingsStore">
 /// The settings store.
 /// </param>
 /// <param name="severityId">
 /// The severityId.
 /// </param>
 /// <param name="commonIconsComponent">
 /// The icon to use.
 /// </param>
 public ChangeStyleCopRuleAction(
     HighlightingSettingsManager highlightingSettingsManager, ISettingsStore settingsStore, string severityId, IThemedIconManager commonIconsComponent)
 {
     this.highlightingSettingsManager = highlightingSettingsManager;
     this.settingsStore = settingsStore;
     this.commonIconsComponent = commonIconsComponent;
     this.HighlightID = severityId;
 }
Exemple #8
0
 public static Severity GetSeverity([NotNull] this HighlightingSettingsManager manager, [NotNull] IHighlighting highlighting,
                                    [CanBeNull] IDocument document, [CanBeNull] ISolution solution)
 {
     if (solution == null)
     {
         return(Severity.INVALID_SEVERITY);
     }
     return(manager.GetSeverity(highlighting, solution));
 }
        public ClassUsageTextStyleProvider(Lifetime lifetime, IThreading threading, IHighlighterCustomization highlighterCustomization,
                                           DefaultTextControlSchemeManager textControlSchemeManager, HighlightingSettingsManager highlightingSettingsManager, 
                                           ISettingsStore settingsStore)
        {
            this.threading = threading;
            this.highlighterCustomization = highlighterCustomization;
            this.highlightingSettingsManager = highlightingSettingsManager;
            this.settingsStore = settingsStore.BindToContextLive(lifetime, ContextRange.ApplicationWide);

            textControlSchemeManager.ColorsChanged.Advise(lifetime, Refresh);
        }
Exemple #10
0
        /// <summary>
        /// Adds the default option for highlights - currently set to SUGGESTION.
        /// </summary>
        /// <param name="highlightManager">
        /// The highlight manager.
        /// </param>
        private static void AddDefaultOption(HighlightingSettingsManager highlightManager)
        {
            const string RuleName    = "Default Violation Severity";
            const string GroupName   = "StyleCop - Defaults (Requires VS Restart)";
            const string Description =
                "Sets the default severity for StyleCop violations. This will be used for any Violation where you have not explicitly set a severity. <strong>Changes to this setting will not take effect until the next time you start Visual Studio.</strong>";
            const string HighlightID = DefaultSeverityId;

            if (!SettingExists(highlightManager, HighlightID))
            {
                highlightManager.RegisterConfigurableSeverity(HighlightID, GroupName, RuleName, Description, Severity.SUGGESTION);
            }
        }
        /// <summary>
        /// Registers the rules. Do not put the contents of this method in the constructor.
        /// If you do *sometimes* the StyleCop object won't be loaded be the time you construct it.
        /// </summary>
        private void Init()
        {
            StyleCopCore core = new StyleCopCore();

            core.Initialize(new List <string>(), true);

            Dictionary <SourceAnalyzer, List <StyleCopRule> > analyzerRulesDictionary = StyleCopRule.GetRules(core);

            HighlightingSettingsManager highlightManager = HighlightingSettingsManager.Instance;

            Severity defaultSeverity = highlightManager.GetConfigurableSeverity(DefaultSeverityId, null);

            this.RegisterRuleConfigurations(highlightManager, analyzerRulesDictionary, defaultSeverity);
        }
        /// <summary>
        /// Registers the rules. Do not put the contents of this method in the constructor.
        /// If you do *sometimes* the StyleCop object won't be loaded be the time you construct it.
        /// </summary>
        private void Init()
        {
            StyleCopCore core = new StyleCopCore();

            core.Initialize(new List <string>(), true);

            Dictionary <SourceAnalyzer, List <StyleCopRule> > analyzerRulesDictionary = StyleCopRule.GetRules(core);

            HighlightingSettingsManager highlightManager = HighlightingSettingsManager.Instance;

            // TODO Not sure how to get a configurable severity id with the settings store so default to warning for now
            //// var defaultSeverity = highlightManager.GetConfigurableSeverity(DefaultSeverityId, null);
            this.RegisterRuleConfigurations(highlightManager, analyzerRulesDictionary, Severity.WARNING);
        }
            public override void CommitHighlighters(DaemonCommitContext context)
            {
                HighlightingSettingsManager instance = HighlightingSettingsManager.Instance;

                foreach (HighlightingInfo highlightingInfo in context.HighlightingsToAdd)
                {
                    if (highlightingInfo.Range.Contains(myCaretRange) && instance.GetSeverity(highlightingInfo.Highlighting, SourceFile) == Severity.INFO)
                    {
                        if (highlightingInfo.Highlighting is CSharpIdentifierHighlighting)
                        {
                            HighlightingInfo = highlightingInfo;
                        }
                        break;
                    }
                }
            }
Exemple #14
0
        private static void RegisterConfigurableGroup(HighlightingSettingsManager highlightManager, string groupId, string groupName)
        {
            HighlightingSettingsManager.ConfigurableGroupDescriptor item = new HighlightingSettingsManager.ConfigurableGroupDescriptor(groupId, groupName);

            FieldInfo field = highlightManager.GetType().GetField("myConfigurableGroups", BindingFlags.Instance | BindingFlags.NonPublic);

            if (field != null)
            {
                Dictionary <string, HighlightingSettingsManager.ConfigurableGroupDescriptor> items =
                    field.GetValue(highlightManager) as Dictionary <string, HighlightingSettingsManager.ConfigurableGroupDescriptor>;

                if (items != null)
                {
                    items.Add(groupId, item);
                }
            }
        }
Exemple #15
0
        /// <summary>
        /// Registers the rule configurations.
        /// </summary>
        /// <param name="highlightManager">
        /// The highlight manager.
        /// </param>
        /// <param name="analyzerRulesDictionary">
        /// The analyzer rules dictionary.
        /// </param>
        /// <param name="defaultSeverity">
        /// The default severity.
        /// </param>
        private void RegisterRuleConfigurations(
            HighlightingSettingsManager highlightManager, Dictionary <SourceAnalyzer, List <StyleCopRule> > analyzerRulesDictionary, Severity defaultSeverity)
        {
            foreach (KeyValuePair <SourceAnalyzer, List <StyleCopRule> > analyzerRule in analyzerRulesDictionary)
            {
                string analyzerName = SplitCamelCase(analyzerRule.Key.Name);
                string groupName    = string.Format(GroupTitleTemplate, analyzerName);
                List <StyleCopRule> analyzerRules = analyzerRule.Value;

                foreach (StyleCopRule rule in analyzerRules)
                {
                    string ruleName    = rule.RuleID + ":" + " " + SplitCamelCase(rule.Name);
                    string highlightID = GetHighlightID(rule.RuleID);

                    if (!SettingExists(highlightManager, highlightID))
                    {
                        highlightManager.RegisterConfigurableSeverity(highlightID, groupName, ruleName, rule.Description, defaultSeverity);
                    }
                }
            }
        }
        private static void RegisterConfigurableSeverity(
            HighlightingSettingsManager highlightManager, string highlightId, string groupName, string ruleName, string description, Severity defaultSeverity)
        {
            FieldInfo allConfigurableSeverityItems = highlightManager.GetType().GetField("myConfigurableSeverityItem", BindingFlags.Instance | BindingFlags.NonPublic);

            if (allConfigurableSeverityItems != null)
            {
                Dictionary <string, HighlightingSettingsManager.ConfigurableSeverityItem> configurableSeverityItems =
                    allConfigurableSeverityItems.GetValue(highlightManager) as Dictionary <string, HighlightingSettingsManager.ConfigurableSeverityItem>;

                if (configurableSeverityItems != null)
                {
                    if (!configurableSeverityItems.ContainsKey(highlightId))
                    {
                        HighlightingSettingsManager.ConfigurableSeverityItem item = new HighlightingSettingsManager.ConfigurableSeverityItem(
                            highlightId, null, groupName, ruleName, description, defaultSeverity, false, false);
                        configurableSeverityItems.Add(highlightId, item);
                    }
                }
            }

            FieldInfo configurableSeverityImplementation = highlightManager.GetType()
                                                           .GetField(
                "myConfigurableSeverityImplementation", BindingFlags.Instance | BindingFlags.NonPublic);

            if (configurableSeverityImplementation != null)
            {
                JB::JetBrains.Util.OneToListMap <string, PsiLanguageType> mapToLanguage =
                    configurableSeverityImplementation.GetValue(highlightManager) as JB::JetBrains.Util.OneToListMap <string, PsiLanguageType>;

                if (mapToLanguage != null)
                {
                    if (!mapToLanguage.ContainsKey(highlightId))
                    {
                        PsiLanguageType languageType = Languages.Instance.GetLanguageByName("CSHARP");
                        mapToLanguage.Add(highlightId, languageType);
                    }
                }
            }
        }
Exemple #17
0
        private static void RegisterConfigurableSeverity(
            HighlightingSettingsManager highlightManager, string highlightId, string groupName, string ruleName, string description, Severity defaultSeverity)
        {
            HighlightingSettingsManager.ConfigurableSeverityItem item = new HighlightingSettingsManager.ConfigurableSeverityItem(
                highlightId, null, groupName, ruleName, description, defaultSeverity, false, false);

            FieldInfo field = highlightManager.GetType().GetField("myConfigurableSeverityItem", BindingFlags.Instance | BindingFlags.NonPublic);

            if (field != null)
            {
                Dictionary <string, HighlightingSettingsManager.ConfigurableSeverityItem> items =
                    field.GetValue(highlightManager) as Dictionary <string, HighlightingSettingsManager.ConfigurableSeverityItem>;

                if (items != null)
                {
                    if (!items.ContainsKey(highlightId))
                    {
                        items.Add(highlightId, item);
                    }
                }
            }
        }
 /// <summary>
 /// Checks if the highlight setting already exists in the HighlightingSettingsManager.
 /// </summary>
 /// <param name="highlightManager">
 /// The highlight manager.
 /// </param>
 /// <param name="highlightID">
 /// The highlight ID.
 /// </param>
 /// <returns>
 /// Boolean to say if this setting already exists in the HighlightingSettingsManager.
 /// </returns>
 private static bool SettingExists(HighlightingSettingsManager highlightManager, string highlightID)
 {
     HighlightingSettingsManager.ConfigurableSeverityItem item = highlightManager.GetSeverityItem(highlightID);
     return(item != null);
 }
        private static void RegisterConfigurableSeverity(
            HighlightingSettingsManager highlightManager, string highlightId, string groupName, string ruleName, string description, Severity defaultSeverity)
        {
            HighlightingSettingsManager.ConfigurableSeverityItem item = new HighlightingSettingsManager.ConfigurableSeverityItem(
                highlightId, null, groupName, ruleName, description, defaultSeverity, false, false);

            FieldInfo field = highlightManager.GetType().GetField("myConfigurableSeverityItem", BindingFlags.Instance | BindingFlags.NonPublic);

            if (field != null)
            {
                Dictionary<string, HighlightingSettingsManager.ConfigurableSeverityItem> items =
                    field.GetValue(highlightManager) as Dictionary<string, HighlightingSettingsManager.ConfigurableSeverityItem>;

                if (items != null)
                {
                    if (!items.ContainsKey(highlightId))
                    {
                        items.Add(highlightId, item);
                    }
                }
            }
        }
        /// <summary>
        /// Registers the rule configurations.
        /// </summary>
        /// <param name="highlightManager">
        /// The highlight manager.
        /// </param>
        /// <param name="analyzerRulesDictionary">
        /// The analyzer rules dictionary.
        /// </param>
        /// <param name="defaultSeverity">
        /// The default severity.
        /// </param>
        private void RegisterRuleConfigurations(
            HighlightingSettingsManager highlightManager, Dictionary<SourceAnalyzer, List<StyleCopRule>> analyzerRulesDictionary, Severity defaultSeverity)
        {
            foreach (KeyValuePair<SourceAnalyzer, List<StyleCopRule>> analyzerRule in analyzerRulesDictionary)
            {
                string analyzerName = SplitCamelCase(analyzerRule.Key.Name);
                string groupName = string.Format(GroupTitleTemplate, analyzerName);
                List<StyleCopRule> analyzerRules = analyzerRule.Value;

                RegisterConfigurableGroup(highlightManager, groupName, groupName);

                foreach (StyleCopRule rule in analyzerRules)
                {
                    string ruleName = rule.RuleID + ":" + " " + SplitCamelCase(rule.Name);
                    string highlightID = GetHighlightID(rule.RuleID);

                    if (!SettingExists(highlightManager, highlightID))
                    {
                        RegisterConfigurableSeverity(highlightManager, highlightID, groupName, ruleName, rule.Description, defaultSeverity);
                    }
                }
            }
        }
 /// <summary>
 /// Checks if the highlight setting already exists in the HighlightingSettingsManager.
 /// </summary>
 /// <param name="highlightManager">
 /// The highlight manager.
 /// </param>
 /// <param name="highlightID">
 /// The highlight ID.
 /// </param>
 /// <returns>
 /// Boolean to say if this setting already exists in the HighlightingSettingsManager.
 /// </returns>
 private static bool SettingExists(HighlightingSettingsManager highlightManager, string highlightID)
 {
     ConfigurableSeverityItem item = highlightManager.GetSeverityItem(highlightID);
     return item != null;
 }
        private static void RegisterConfigurableSeverity(
            HighlightingSettingsManager highlightManager, string highlightId, string groupName, string ruleName, string description, Severity defaultSeverity)
        {
            // TODO: This can be implemented with ICustomConfigurableSeverityItemProvider
            FieldInfo allConfigurableSeverityItems = highlightManager.GetType().GetField("myConfigurableSeverityItem", BindingFlags.Instance | BindingFlags.NonPublic);

            if (allConfigurableSeverityItems != null)
            {
                Dictionary<string, ConfigurableSeverityItem> configurableSeverityItems =
                    allConfigurableSeverityItems.GetValue(highlightManager) as Dictionary<string, ConfigurableSeverityItem>;

                if (configurableSeverityItems != null)
                {
                    if (!configurableSeverityItems.ContainsKey(highlightId))
                    {
                        ConfigurableSeverityItem item = new ConfigurableSeverityItem(highlightId, null, groupName, ruleName, description, defaultSeverity, false, false, null);
                        configurableSeverityItems.Add(highlightId, item);
                    }
                }
            }

            FieldInfo configurableSeverityImplementation = highlightManager.GetType()
                                                                           .GetField(
                                                                               "myConfigurableSeverityImplementation", BindingFlags.Instance | BindingFlags.NonPublic);

            if (configurableSeverityImplementation != null)
            {
                JetBrains.Util.OneToListMap<string, PsiLanguageType> mapToLanguage =
                    configurableSeverityImplementation.GetValue(highlightManager) as JetBrains.Util.OneToListMap<string, PsiLanguageType>;

                if (mapToLanguage != null)
                {
                    if (!mapToLanguage.ContainsKey(highlightId))
                    {
                        PsiLanguageType languageType = Languages.Instance.GetLanguageByName("CSHARP");
                        mapToLanguage.Add(highlightId, languageType);
                    }
                }
            }
        }
        private static void RegisterConfigurableGroup(HighlightingSettingsManager highlightManager, string groupId, string groupName)
        {
            HighlightingSettingsManager.ConfigurableGroupDescriptor item = new HighlightingSettingsManager.ConfigurableGroupDescriptor(groupId, groupName);

            // TODO: WTF!? Reflection. Oh boy.
            FieldInfo field = highlightManager.GetType().GetField("myConfigurableGroups", BindingFlags.Instance | BindingFlags.NonPublic);

            if (field != null)
            {
                Dictionary<string, HighlightingSettingsManager.ConfigurableGroupDescriptor> items =
                    field.GetValue(highlightManager) as Dictionary<string, HighlightingSettingsManager.ConfigurableGroupDescriptor>;

                if (items != null)
                {
                    if (!items.ContainsKey(groupId))
                    {
                        items.Add(groupId, item);
                    }
                }
            }
        }
        /// <summary>
        /// Adds the default option for highlights - currently set to SUGGESTION.
        /// </summary>
        /// <param name="highlightManager">
        /// The highlight manager.
        /// </param>
        private static void AddDefaultOption(HighlightingSettingsManager highlightManager)
        {
            const string RuleName = "Default Violation Severity";
            const string GroupName = "StyleCop - Defaults (Requires VS Restart)";
            const string Description =
                "Sets the default severity for StyleCop violations. This will be used for any Violation where you have not explicitly set a severity. <strong>Changes to this setting will not take effect until the next time you start Visual Studio.</strong>";
            const string HighlightID = DefaultSeverityId;

            if (!SettingExists(highlightManager, HighlightID))
            {
                // Done at assembly level for R#6
                // highlightManager.RegisterConfigurableSeverity(HighlightID, GroupName, RuleName, Description, Severity.SUGGESTION);
            }
        }