protected override Task DoLoad()
        {
            var provider    = IoC.Get <CppProjectProvider>();
            var projectInfo = (CppProjectInfo)provider.Load(FilePath);

            if (string.IsNullOrWhiteSpace(projectInfo?.Path))
            {
                return(Task.FromResult(false));
            }

            foreach (var folder in projectInfo.IncludeDirectories)
            {
                FoldersInclude += folder + Environment.NewLine;
            }
            FoldersInclude = FoldersInclude.Trim();

            foreach (var libraryFile in projectInfo.PrebuiltLibraries)
            {
                LibraryFiles += libraryFile + Environment.NewLine;
            }
            LibraryFiles = LibraryFiles.Trim();

            OutputType = projectInfo.OutputType;

            return(Task.FromResult(true));
        }
        protected override async Task DoSave()
        {
            var projectExplorer = IoC.Get <IProjectExplorer>();

            var projectInfo = (CppProjectInfo)projectExplorer.CurrentProjectInfo;

            projectInfo.IncludeDirectories.Clear();
            projectInfo.IncludeDirectories.AddRange(FoldersInclude.Split(new[]
            {
                Environment.NewLine
            }, StringSplitOptions.RemoveEmptyEntries));

            projectInfo.PrebuiltLibraries.Clear();
            projectInfo.PrebuiltLibraries.AddRange(LibraryFiles.Split(new[]
            {
                Environment.NewLine
            }, StringSplitOptions.RemoveEmptyEntries));

            projectInfo.OutputType = projectInfo.OutputType;

            var provider = IoC.Get <CppProjectProvider>();
            await provider.Save(projectInfo, FilePath);
        }