Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }