コード例 #1
0
        /// <summary>
        /// Get the clang flags in the power shell script format
        /// </summary>
        /// <returns>The clang flags</returns>
        private string GetClangFlags()
        {
            CompilerSettingsModel compilerSettings = settingsProvider.GetCompilerSettingsModel();

            return(string.Format("{0} {1}", ScriptConstants.kClangFlags,
                                 compilerSettings.WarningsAsErrors ?
                                 $" (''{ScriptConstants.kTreatWarningsAsErrors}'',''{TransformInPowerShellArray(compilerSettings.CompileFlags)}'')" :
                                 $" (''{TransformInPowerShellArray(compilerSettings.CompileFlags)}'')"));
        }
コード例 #2
0
        public void TreatWarningsAsErrors_ChangeValue_CompareViewToFile()
        {
            var settingsHandler       = new SettingsHandler();
            var settingsProvider      = new SettingsProvider();
            var compilerSettingsModel = new CompilerSettingsModel
            {
                WarningsAsErrors = true
            };

            settingsProvider.SetCompilerSettingsModel(compilerSettingsModel);
            settingsHandler.SaveSettings();
            settingsHandler.ResetSettings();
            settingsHandler.LoadSettings();

            Assert.Equal(compilerSettingsModel.WarningsAsErrors, settingsProvider.GetCompilerSettingsModel().WarningsAsErrors);
        }
コード例 #3
0
        public void ProjectToIgnore_ChangeValue_CompareViewToFile()
        {
            var settingsHandler       = new SettingsHandler();
            var settingsProvider      = new SettingsProvider();
            var compilerSettingsModel = new CompilerSettingsModel
            {
                ProjectsToIgnore = "TestProject"
            };

            settingsProvider.SetCompilerSettingsModel(compilerSettingsModel);
            settingsHandler.SaveSettings();
            settingsHandler.ResetSettings();
            settingsHandler.LoadSettings();

            Assert.Equal(compilerSettingsModel.ProjectsToIgnore, settingsProvider.GetCompilerSettingsModel().ProjectsToIgnore);
        }
コード例 #4
0
        public void AdditionalIncludes_ChangeValue_CompareViewToFile()
        {
            var settingsHandler       = new SettingsHandler();
            var settingsProvider      = new SettingsProvider();
            var compilerSettingsModel = new CompilerSettingsModel
            {
                AdditionalIncludes = ClangGeneralAdditionalIncludes.SystemIncludeDirectories
            };

            settingsProvider.SetCompilerSettingsModel(compilerSettingsModel);
            settingsHandler.SaveSettings();
            settingsHandler.ResetSettings();
            settingsHandler.LoadSettings();

            Assert.Equal(compilerSettingsModel.AdditionalIncludes, settingsProvider.GetCompilerSettingsModel().AdditionalIncludes);
        }
コード例 #5
0
        public void CompileFlags_ChangeValue_CompareViewToFile()
        {
            var settingsHandler       = new SettingsHandler();
            var settingsProvider      = new SettingsProvider();
            var compilerSettingsModel = new CompilerSettingsModel
            {
                CompileFlags = "-Wall"
            };

            settingsProvider.SetCompilerSettingsModel(compilerSettingsModel);
            settingsHandler.SaveSettings();
            settingsHandler.ResetSettings();
            settingsHandler.LoadSettings();

            Assert.Equal(compilerSettingsModel.CompileFlags, settingsProvider.GetCompilerSettingsModel().CompileFlags);
        }
コード例 #6
0
        public void VerboseMode_ChangeValue_CompareViewToFile()
        {
            var settingsHandler       = new SettingsHandler();
            var settingsProvider      = new SettingsProvider();
            var compilerSettingsModel = new CompilerSettingsModel
            {
                VerboseMode = true
            };

            settingsProvider.SetCompilerSettingsModel(compilerSettingsModel);
            settingsHandler.SaveSettings();
            settingsHandler.ResetSettings();
            settingsHandler.LoadSettings();

            Assert.Equal(compilerSettingsModel.VerboseMode, settingsProvider.GetCompilerSettingsModel().VerboseMode);
        }
コード例 #7
0
        public void ClangCompileAfterVsCompile_ChangeValue_CompareViewToFile()
        {
            var settingsHandler       = new SettingsHandler();
            var settingsProvider      = new SettingsProvider();
            var compilerSettingsModel = new CompilerSettingsModel
            {
                ClangAfterMSVC = true
            };

            settingsProvider.SetCompilerSettingsModel(compilerSettingsModel);
            settingsHandler.SaveSettings();
            settingsHandler.ResetSettings();
            settingsHandler.LoadSettings();

            Assert.Equal(compilerSettingsModel.ClangAfterMSVC, settingsProvider.GetCompilerSettingsModel().ClangAfterMSVC);
        }
コード例 #8
0
        public void ContinueOnError_ChangeValue_CompareViewToFile()
        {
            var settingsHandler       = new SettingsHandler();
            var settingsProvider      = new SettingsProvider();
            var compilerSettingsModel = new CompilerSettingsModel
            {
                ContinueOnError = true
            };

            settingsProvider.SetCompilerSettingsModel(compilerSettingsModel);
            settingsHandler.SaveSettings();
            settingsHandler.ResetSettings();
            settingsHandler.LoadSettings();

            Assert.Equal(compilerSettingsModel.ContinueOnError, settingsProvider.GetCompilerSettingsModel().ContinueOnError);
        }
コード例 #9
0
        /// <summary>
        /// Get the parameters from the General option page
        /// </summary>
        /// <param name="mGeneralOptions"></param>
        /// <returns>The parameters from General option page</returns>
        private string GetGeneralParameters()
        {
            CompilerSettingsModel compilerSettings = settingsProvider.GetCompilerSettingsModel();
            var parameters = string.Empty;

            // Get the Clang Flags list
            if (!string.IsNullOrWhiteSpace(compilerSettings.CompileFlags))
            {
                parameters = GetClangFlags();
            }

            // Get the continue when errors are detected flag
            if (compilerSettings.ContinueOnError)
            {
                parameters += $" {ScriptConstants.kContinue}";
            }

            // Get the verbose mode flag
            if (compilerSettings.VerboseMode)
            {
                parameters += $" {ScriptConstants.kVerboseMode}";
            }

            // Get the projects to ignore list
            if (!string.IsNullOrWhiteSpace(compilerSettings.ProjectsToIgnore))
            {
                parameters += $" {ScriptConstants.kProjectsToIgnore} (''{TransformInPowerShellArray(compilerSettings.ProjectsToIgnore)}'')";
            }

            // Get the files to ignore list
            if (!string.IsNullOrWhiteSpace(compilerSettings.FilesToIgnore))
            {
                parameters += $" {ScriptConstants.kFilesToIgnore} (''{TransformInPowerShellArray(compilerSettings.FilesToIgnore)}'')";
            }

            // Get the selected Additional Includes type
            if (0 == string.Compare(ClangGeneralAdditionalIncludesConvertor.ToString(compilerSettings.AdditionalIncludes), ComboBoxConstants.kSystemIncludeDirectories))
            {
                parameters += $" {ScriptConstants.kSystemIncludeDirectories}";
            }

            return(parameters);
        }
コード例 #10
0
        /// <summary>
        /// This function is the callback used to execute the command when the menu item is clicked.
        /// See the constructor to see how the menu item is associated with this function using
        /// OleMenuCommandService service and MenuCommand class.
        /// </summary>
        /// <param name="sender">Event sender.</param>
        /// <param name="e">Event args.</param>
        public void RunIgnoreCompileCommand()
        {
            _ = Task.Run(() =>
            {
                SettingsHandler settingsHandler   = new SettingsHandler();
                SettingsProvider settingsProvider = new SettingsProvider();
                ItemsCollector itemsCollector     = new ItemsCollector();
                List <string> projectsToIgnore    = itemsCollector.GetProjectsToIgnore();

                CompilerSettingsModel settingsModel = settingsProvider.GetCompilerSettingsModel();
                AddItemsToIgnore(projectsToIgnore, settingsModel, "ProjectsToIgnore");
                if (projectsToIgnore.Any() == false)
                {
                    List <string> filesToIgnore = itemsCollector.GetFilesToIgnore();
                    AddItemsToIgnore(filesToIgnore, settingsModel, "FilesToIgnore");
                    settingsHandler.SaveSettings();
                }
            });
        }
コード例 #11
0
        private CompilerSettingsModel LoadOrCreateCompilerSettings()
        {
            CompilerSettingsModel compilerSettings = new CompilerSettingsModel();
            var filePath = JsonSettingsFilePath;

            if (filePath.Exists())
            {
                try
                {
                    var text = System.IO.File.ReadAllText(filePath.FullPath);
                    compilerSettings = JsonConvert.DeserializeObject <CompilerSettingsModel>(text);
                }
                catch
                {
                    // do nothing, it'll just get wiped out and re-saved later
                }
            }

            return(compilerSettings);
        }
コード例 #12
0
 public void SetCompilerSettingsModel(CompilerSettingsModel model)
 {
     compilerSettingsModel = model;
 }