/// <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> /// 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) { JB::JetBrains.DataFlow.LifetimeDefinition definition = JB::JetBrains.DataFlow.Lifetimes.Define(solution.GetLifetime()); JB::JetBrains.DataFlow.Lifetime lifetime = definition.Lifetime; try { unsafe { ChangeInspectionSeverityDialog dialog = new ChangeInspectionSeverityDialog(lifetime, this.commonIconsComponent); IContextBoundSettingsStore contextBoundSettingsStore = this.settingsStore.BindToContextTransient(ContextRange.Smart(textControl.Document.ToDataContext())); HighlightingSettingsManager.ConfigurableSeverityItem item = this.highlightingSettingsManager.GetSeverityItem(this.HighlightID); dialog.Severity = this.highlightingSettingsManager.GetConfigurableSeverity(this.HighlightID, contextBoundSettingsStore); dialog.SeverityOptionsTitle = string.Format(item.FullTitle + ":"); dialog.CanBeError = !item.SolutionAnalysisRequired; if (dialog.ShowDialog(User32Dll.GetForegroundWindow()) == true) { IContextBoundSettingsStore store = contextBoundSettingsStore; if (dialog.SelectedSettingsLayer != null) { store = dialog.SelectedSettingsLayer.Model.SettingsStoreContext; } store.SetIndexedValue(HighlightingSettingsAccessor.InspectionSeverities, this.HighlightID, dialog.Severity); } } } finally { definition.Terminate(); } }
/// <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()) { HighlightingSettings settings = HighlightingSettingsManager.Instance.Settings.Clone(); HighlightingSettingsManager.ConfigurableSeverityItem 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(); } } }
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); } } } }
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); } } } }
/// <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); } } } }