diff --git a/src/SharpIDE.Application/Features/SolutionDiscovery/Folder.cs b/src/SharpIDE.Application/Features/SolutionDiscovery/Folder.cs deleted file mode 100644 index 1fcf04f..0000000 --- a/src/SharpIDE.Application/Features/SolutionDiscovery/Folder.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Text.Json.Serialization; - -namespace SharpIDE.Application.Features.SolutionDiscovery; - -public class Folder -{ - public required string Path { get; set; } - public string Name { get; set; } = null!; - public List Folders { get; set; } = []; - public List Files { get; set; } = []; - public bool IsPseudoFolder { get; set; } - public int Depth { get; set; } - - [JsonIgnore] - public bool Expanded { get; set; } -} - -public class TreeMapFile -{ - public required string Path { get; set; } - public required string Name { get; set; } -} diff --git a/src/SharpIDE.Application/Features/SolutionDiscovery/GetNodesInSolution.cs b/src/SharpIDE.Application/Features/SolutionDiscovery/GetNodesInSolution.cs deleted file mode 100644 index d6ce503..0000000 --- a/src/SharpIDE.Application/Features/SolutionDiscovery/GetNodesInSolution.cs +++ /dev/null @@ -1,60 +0,0 @@ -using Microsoft.Build.Construction; -using Microsoft.Build.Evaluation; -using Microsoft.Build.Globbing; - -namespace SharpIDE.Application.Features.SolutionDiscovery; - -public static class GetNodesInSolution -{ - private static readonly ProjectCollection _projectCollection = new(); - public static SolutionFile? ParseSolutionFileFromPath(string solutionFilePath) - { - var solutionFile = SolutionFile.Parse(solutionFilePath); - return solutionFile; - } - - public static List GetCSharpProjectObjectsFromSolutionFile(SolutionFile solutionFile) - { - var projectList = solutionFile - .ProjectsByGuid.Where(x => x.Value.ProjectType == SolutionProjectType.KnownToBeMSBuildFormat) - .Select(s => ProjectRootElement.Open(s.Value.AbsolutePath)) - .ToList(); - - return projectList; - } - - public static List GetFilesInProject(string projectPath) - { - var project = _projectCollection.LoadProject(projectPath); - var compositeGlob = new CompositeGlob(project.GetAllGlobs().Select(s => s.MsBuildGlob)); - var directory = new DirectoryInfo(Path.GetDirectoryName(projectPath)!); - var files = directory.EnumerateFiles("*", SearchOption.AllDirectories) - .Where(f => - { - var relativeDirectory = Path.GetRelativePath(directory.FullName, f.FullName); - return compositeGlob.IsMatch(relativeDirectory); - }) - .ToList(); - return files; - } -} - - - - - - - - - - - - - - - - - - - - diff --git a/src/SharpIDE.Application/Features/SolutionDiscovery/SharpIdeFile.cs b/src/SharpIDE.Application/Features/SolutionDiscovery/SharpIdeFile.cs new file mode 100644 index 0000000..e63a7e3 --- /dev/null +++ b/src/SharpIDE.Application/Features/SolutionDiscovery/SharpIdeFile.cs @@ -0,0 +1,9 @@ +using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence; + +namespace SharpIDE.Application.Features.SolutionDiscovery; + +public class SharpIdeFile : ISharpIdeNode +{ + public required string Path { get; set; } + public required string Name { get; set; } +} diff --git a/src/SharpIDE.Application/Features/SolutionDiscovery/FileOrFolder.cs b/src/SharpIDE.Application/Features/SolutionDiscovery/SharpIdeFolder.cs similarity index 70% rename from src/SharpIDE.Application/Features/SolutionDiscovery/FileOrFolder.cs rename to src/SharpIDE.Application/Features/SolutionDiscovery/SharpIdeFolder.cs index 87b324e..78c89fc 100644 --- a/src/SharpIDE.Application/Features/SolutionDiscovery/FileOrFolder.cs +++ b/src/SharpIDE.Application/Features/SolutionDiscovery/SharpIdeFolder.cs @@ -2,19 +2,11 @@ namespace SharpIDE.Application.Features.SolutionDiscovery; -public class SharpIdeFile : ISharpIdeNode -{ - public required string Path { get; set; } - public required string Name { get; set; } -} - public class SharpIdeFolder : ISharpIdeNode { public required string Path { get; set; } public required string Name { get; set; } public required List Files { get; set; } public required List Folders { get; set; } - // public required int Depth { get; set; } - public bool Expanded { get; set; } } diff --git a/src/SharpIDE.Application/Features/SolutionDiscovery/TreeMapper.cs b/src/SharpIDE.Application/Features/SolutionDiscovery/TreeMapper.cs deleted file mode 100644 index 0429f8f..0000000 --- a/src/SharpIDE.Application/Features/SolutionDiscovery/TreeMapper.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System.Collections.Concurrent; - -namespace SharpIDE.Application.Features.SolutionDiscovery; - -public static class TreeMapper -{ - public static List GetSubFolders(this Folder folder) - { - var directoryInfo = new DirectoryInfo(folder.Path); - - ConcurrentBag subFolders = []; - - var files = GetFiles(directoryInfo); - if (files.Count is not 0) - { - var pseudoFolder = new Folder - { - Path = folder.Path, - Name = "", - IsPseudoFolder = true, - Files = files, - Depth = folder.Depth + 1 - }; - subFolders.Add(pseudoFolder); - } - - List subFolderInfos; - try - { - subFolderInfos = directoryInfo.EnumerateDirectories("*", new EnumerationOptions { IgnoreInaccessible = false, AttributesToSkip = FileAttributes.ReparsePoint}).ToList(); - } - catch (UnauthorizedAccessException) - { - return subFolders.ToList(); - } - Parallel.ForEach(subFolderInfos, subFolderInfo => - { - var subFolder = new Folder - { - Path = subFolderInfo.FullName, - Name = subFolderInfo.Name, - Depth = folder.Depth + 1 - }; - subFolder.Folders = subFolder.GetSubFolders(); - subFolders.Add(subFolder); - }); - return subFolders.ToList(); - } - - public static List GetFiles(DirectoryInfo directoryInfo) - { - List fileInfos; - try - { - fileInfos = directoryInfo.EnumerateFiles().ToList(); - } - catch (UnauthorizedAccessException) - { - return []; - } - - var files = fileInfos.Select(s => new TreeMapFile - { - Path = s.FullName, - Name = s.Name - }).ToList(); - return files; - } -} diff --git a/src/SharpIDE.Application/Features/SolutionDiscovery/TreeMapV2.cs b/src/SharpIDE.Application/Features/SolutionDiscovery/TreeMapperV2.cs similarity index 96% rename from src/SharpIDE.Application/Features/SolutionDiscovery/TreeMapV2.cs rename to src/SharpIDE.Application/Features/SolutionDiscovery/TreeMapperV2.cs index de33e9e..2604eed 100644 --- a/src/SharpIDE.Application/Features/SolutionDiscovery/TreeMapV2.cs +++ b/src/SharpIDE.Application/Features/SolutionDiscovery/TreeMapperV2.cs @@ -1,5 +1,4 @@ using System.Collections.Concurrent; -using SharpIDE.Application.Features.SolutionDiscovery.VsPersistence; namespace SharpIDE.Application.Features.SolutionDiscovery;