public static SuppressWarningAction Create(RapidXamlDisplayedTag tag, string file, SuggestedActionsSource suggestedActionsSource) { var result = new SuppressWarningAction(file) { Tag = tag, DisplayText = StringRes.UI_SuggestedActionDoNotWarn.WithParams(tag.ErrorCode), ErrorCode = tag.ErrorCode, Source = suggestedActionsSource, }; return(result); }
public void SetAsHiddenInSettingsFile(RapidXamlDisplayedTag tag) { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); if (string.IsNullOrWhiteSpace(tag.FileName)) { SharedRapidXamlPackage.Logger?.RecordInfo(StringRes.Info_FileNameMissingFromTag); return; } var proj = ProjectHelpers.Dte.Solution.GetProjectContainingFile(tag.FileName); if (proj == null) { SharedRapidXamlPackage.Logger?.RecordInfo(StringRes.Info_UnableToFindProjectContainingFile.WithParams(tag.FileName)); return; } var settingsFile = Path.Combine(Path.GetDirectoryName(proj.FullName), RapidXamlDisplayedTag.SettingsFileName); Dictionary <string, string> settings; bool addToProject = false; if (System.IO.File.Exists(settingsFile)) { var json = System.IO.File.ReadAllText(settingsFile); settings = JsonConvert.DeserializeObject <Dictionary <string, string> >(json); } else { settings = new Dictionary <string, string>(); addToProject = true; } settings[this.ErrorCode] = nameof(TagErrorType.Hidden); var jsonSettings = new JsonSerializerSettings { Formatting = Formatting.Indented }; System.IO.File.WriteAllText(settingsFile, JsonConvert.SerializeObject(settings, settings: jsonSettings)); if (addToProject) { proj.ProjectItems.AddFromFile(settingsFile); } }