コード例 #1
0
        public override void LoadSettingsFromStorage()
        {
            string path         = mSettingsPathBuilder.GetPath(kTidyOptionsFileName);
            var    loadedConfig = LoadFromFile(path);

            AutoTidyOnSave  = loadedConfig.AutoTidyOnSave;
            FormatAfterTidy = loadedConfig.FormatAfterTidy;

            if (null == loadedConfig.HeaderFilter)
            {
                HeaderFilter = new HeaderFiltersValue(ComboBoxConstants.kDefaultHeaderFilter);
            }
            else if (false == string.IsNullOrWhiteSpace(ClangTidyHeaderFiltersConvertor.ScriptDecode(loadedConfig.HeaderFilter)))
            {
                HeaderFilter = new HeaderFiltersValue(ClangTidyHeaderFiltersConvertor.ScriptDecode(loadedConfig.HeaderFilter));
            }
            else
            {
                HeaderFilter = new HeaderFiltersValue(loadedConfig.HeaderFilter);
            }

            if (null == loadedConfig.TidyMode)
            {
                UseChecksFrom = string.IsNullOrWhiteSpace(loadedConfig.TidyChecksCollection) ?
                                ClangTidyUseChecksFrom.PredefinedChecks : ClangTidyUseChecksFrom.CustomChecks;
            }
            else
            {
                UseChecksFrom = loadedConfig.TidyMode;
            }
        }
コード例 #2
0
 /// <summary>
 /// Get the header filter option from the Clang Tidy Option page
 /// </summary>
 /// <returns>Header filter option</returns>
 private string GetHeaderFilters()
 {
     return(string.Format("{0} ''{1}''", ScriptConstants.kHeaderFilter,
                          string.IsNullOrWhiteSpace(ClangTidyHeaderFiltersConvertor.ScriptEncode(mTidyOptions.HeaderFilter.HeaderFilters)) ?
                          mTidyOptions.HeaderFilter.HeaderFilters :
                          ClangTidyHeaderFiltersConvertor.ScriptEncode(mTidyOptions.HeaderFilter.HeaderFilters)));
 }
コード例 #3
0
        private string GetTidyParameters(ClangTidyOptionsView aTidyOptions, ClangTidyPredefinedChecksOptionsView aTidyChecks, ClangTidyCustomChecksOptionsView aTidyCustomChecks)
        {
            string parameters = string.Empty;

            if (0 == string.Compare(ComboBoxConstants.kTidyFile, ClangTidyUseChecksFromConvertor.ToString(aTidyOptions.UseChecksFrom)))
            {
                parameters   = ScriptConstants.kTidyFile;
                mUseTidyFile = true;
            }
            else if (0 == string.Compare(ComboBoxConstants.kCustomChecks, ClangTidyUseChecksFromConvertor.ToString(aTidyOptions.UseChecksFrom)))
            {
                if (false == string.IsNullOrWhiteSpace(aTidyCustomChecks.TidyChecks))
                {
                    parameters = $",{aTidyCustomChecks.TidyChecks.Replace(';', ',')}";
                }
            }
            else if (0 == string.Compare(ComboBoxConstants.kPredefinedChecks, ClangTidyUseChecksFromConvertor.ToString(aTidyOptions.UseChecksFrom)))
            {
                foreach (PropertyInfo prop in aTidyChecks.GetType().GetProperties())
                {
                    object[] propAttrs          = prop.GetCustomAttributes(false);
                    object   clangCheckAttr     = propAttrs.FirstOrDefault(attr => typeof(ClangCheckAttribute) == attr.GetType());
                    object   displayNameAttrObj = propAttrs.FirstOrDefault(attr => typeof(DisplayNameAttribute) == attr.GetType());

                    if (null == clangCheckAttr || null == displayNameAttrObj)
                    {
                        continue;
                    }

                    DisplayNameAttribute displayNameAttr = (DisplayNameAttribute)displayNameAttrObj;
                    var value = prop.GetValue(aTidyChecks, null);
                    if (Boolean.TrueString != value.ToString())
                    {
                        continue;
                    }
                    parameters = $"{parameters},{displayNameAttr.DisplayName}";
                }
            }

            if (string.Empty != parameters)
            {
                parameters = string.Format("{0} ''{1}{2}''",
                                           (true == aTidyOptions.Fix ? ScriptConstants.kTidyFix : ScriptConstants.kTidy),
                                           (mUseTidyFile ? "" : "-*"),
                                           parameters);
            }

            if (null != aTidyOptions.HeaderFilter && false == string.IsNullOrWhiteSpace(aTidyOptions.HeaderFilter.HeaderFilters))
            {
                parameters = string.Format("{0} {1} ''{2}''",
                                           parameters, ScriptConstants.kHeaderFilter,
                                           true == string.IsNullOrWhiteSpace(ClangTidyHeaderFiltersConvertor.ScriptEncode(aTidyOptions.HeaderFilter.HeaderFilters)) ?
                                           aTidyOptions.HeaderFilter.HeaderFilters : ClangTidyHeaderFiltersConvertor.ScriptEncode(aTidyOptions.HeaderFilter.HeaderFilters));
            }

            return(parameters);
        }
コード例 #4
0
        /// <summary>
        /// Get the header filter option from the Clang Tidy Option page
        /// </summary>
        /// <returns>Header filter option</returns>
        private string GetHeaderFilters()
        {
            var tidySettings = SettingsProvider.TidySettings;

            return(string.Format("{0} ''{1}''", ScriptConstants.kHeaderFilter,
                                 string.IsNullOrWhiteSpace(ClangTidyHeaderFiltersConvertor.ScriptEncode(tidySettings.HeaderFilter.HeaderFilters)) ?
                                 tidySettings.HeaderFilter.HeaderFilters :
                                 ClangTidyHeaderFiltersConvertor.ScriptEncode(tidySettings.HeaderFilter.HeaderFilters)));
        }
コード例 #5
0
        /// <summary>
        /// Get the header filter option from the Clang Tidy Option page
        /// </summary>
        /// <returns>Header filter option</returns>
        private string GetHeaderFilters()
        {
            TidySettingsModel tidySettings = SettingsViewModelProvider.TidySettingsViewModel.TidyModel;

            return(string.Format("{0} ''{1}''", ScriptConstants.kHeaderFilter,
                                 string.IsNullOrWhiteSpace(ClangTidyHeaderFiltersConvertor.ScriptEncode(tidySettings.HeaderFilter)) ?
                                 tidySettings.HeaderFilter :
                                 ClangTidyHeaderFiltersConvertor.ScriptEncode(tidySettings.HeaderFilter)));
        }
コード例 #6
0
        public override void SaveSettingsToStorage()
        {
            string path = mSettingsPathBuilder.GetPath(kTidyOptionsFileName);

            var updatedConfig = LoadFromFile(path);

            updatedConfig.AutoTidyOnSave  = this.AutoTidyOnSave;
            updatedConfig.FormatAfterTidy = this.FormatAfterTidy;

            updatedConfig.HeaderFilter =
                true == string.IsNullOrWhiteSpace(ClangTidyHeaderFiltersConvertor.ScriptEncode(this.HeaderFilter.HeaderFilters)) ?
                this.HeaderFilter.HeaderFilters : ClangTidyHeaderFiltersConvertor.ScriptEncode(this.HeaderFilter.HeaderFilters);

            updatedConfig.TidyMode = this.UseChecksFrom;

            SaveToFile(path, updatedConfig);
        }
コード例 #7
0
        public override void SaveSettingsToStorage()
        {
            string path = mSettingsPathBuilder.GetPath(kTidyOptionsFileName);

            ClangTidyOptions updatedConfig = LoadFromFile(path);

            updatedConfig.AutoTidyOnSave  = AutoTidyOnSave;
            updatedConfig.FormatAfterTidy = FormatAfterTidy;

            updatedConfig.HeaderFilter =
                true == string.IsNullOrWhiteSpace(ClangTidyHeaderFiltersConvertor.ScriptEncode(HeaderFilter.HeaderFilters)) ?
                HeaderFilter.HeaderFilters : ClangTidyHeaderFiltersConvertor.ScriptEncode(HeaderFilter.HeaderFilters);

            updatedConfig.TidyMode      = UseChecksFrom;
            updatedConfig.ClangTidyPath = ClangTidyPath;

            SaveToFile(path, updatedConfig);

            SetEnvironmentVariableTidyPath();
        }