/// <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; }
/// <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; }
/// <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; }
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); }
/// <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; } } }
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); } } }
/// <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); } } } }
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); } }