Exemplo n.º 1
0
        private void CheckForProjectFilesNotInProjectAndWarn(ITreeNode element)
        {
            string[] filesToFind = Settings.OrphanedFilesPatterns.Split('|');
            if (filesToFind.Length == 0)
            {
                filesToFind = new[] { "*.cs" }
            }
            ;

            var currentProject = element.GetProject();
            ICollection <VirtualFileSystemPath> directoriesToSkip = currentProject.GetOutputDirectories();

            directoriesToSkip.AddAll(currentProject.GetIntermidiateDirectories());

            var allProjectFileLocations = currentProject.GetAllProjectFiles().Select(p => p.Location).ToList();
            var allProjectFiles         = allProjectFileLocations.Select(loc => loc.FullPath).ToList();
            var allProjectFolders       = allProjectFileLocations.Select(loc => loc.Directory).Distinct();

            allProjectFolders = allProjectFolders.Where(x => !InDirectory(directoriesToSkip, x));

            var filesOnDisk = new List <FileInfo>();

            foreach (string regex in filesToFind)
            {
                filesOnDisk.AddRange(
                    allProjectFolders.SelectMany(
                        directory =>
                        new System.IO.DirectoryInfo(directory.FullPath)
                        .EnumerateFiles(regex, System.IO.SearchOption.TopDirectoryOnly)
                        .Select(f => f))
                    );
            }

            var orphanedFiles = new List <FileInfo>();

            foreach (var fileOnDisk in filesOnDisk)
            {
                if (allProjectFiles.Any(
                        x => String.Compare(x, fileOnDisk.FullName, StringComparison.OrdinalIgnoreCase) == 0))
                {
                    continue;
                }

                orphanedFiles.Add(fileOnDisk);
            }

            if (orphanedFiles.Count > 0)
            {
                IHighlighting highlighting = new FilesNotPartOfProjectWarning(currentProject, orphanedFiles);
                AddHighlighting(element.GetDocumentRange(), highlighting);
            }
        }
 public AddExistingFileToProjectBulbItem(FilesNotPartOfProjectWarning highlight)
 {
     _highlight = highlight;
 }
Exemplo n.º 3
0
 public DeleteFileBulbItem(FilesNotPartOfProjectWarning highlight)
 {
     _highlight = highlight;
 }