Ejemplo n.º 1
0
        private ProjectItem GetPlaceholder(OutputFile outputFile)
        {
            var key = GetKey(outputFile);

            if (_placeholders.ContainsKey(key))
            {
                return(_placeholders[key]);
            }
            else
            {
                ProjectItem pi = VsManager.GetTemplateProjectItem(_templateProjectItem.DTE, outputFile, _templateProjectItem);
                _placeholders.Add(key, pi);
                return(pi);
            }
        }
Ejemplo n.º 2
0
        private void ProjectSync(ProjectItem templateProjectItem, IEnumerable <FileBuilder.OutputFile> keepFileNames)
        {
            var groupedFileNames = from f in keepFileNames
                                   group f by new { f.ProjectName, f.FolderName }
            into l
                select new
            {
                ProjectName = l.Key.ProjectName,
                FolderName  = l.Key.FolderName,
                FirstItem   = l.First(),
                OutputFiles = l
            };

            _templatePlaceholderList.Clear();

            foreach (var item in groupedFileNames)
            {
                ProjectItem pi = _vsManager.GetTemplateProjectItem(item.FirstItem, templateProjectItem);
                ProjectSyncPart(pi, item.OutputFiles);
                if (UseAutoFormatting)
                {
                    FormatDocument(pi.ProjectItems);
                }
                if (pi.Name.EndsWith("txt4"))
                {
                    _templatePlaceholderList.Add(_vsManager.GetProjectItemFullPath(pi));
                }
            }

            // clean up
            bool hasDefaultItems = groupedFileNames.Any(f => string.IsNullOrEmpty(f.ProjectName) && string.IsNullOrEmpty(f.FolderName));

            if (hasDefaultItems == false)
            {
                ProjectSyncPart(templateProjectItem, new List <OutputFile>());
            }
        }