Skip to content

Commit 5aab8dd

Browse files
Fixed Package Class
1 parent 1097b68 commit 5aab8dd

1 file changed

Lines changed: 18 additions & 30 deletions

File tree

EZCode/Package.cs

Lines changed: 18 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@ namespace EZCodeLanguage
55
public static class Package
66
{
77
public static string PackagesDirectory = "D:\\EZCodeLanguage\\Packages\\";
8-
public static string LibraryDirName = "Libraries";
9-
public static void AddPackageToExecutionDirectory(Project project, string executionDirectory, out string[] files)
8+
public static void AddPackageToExecutionDirectory(Project project, string executionDirectory)
109
{
11-
files = [];
1210
string projectPath = GetPackageDirectory(project.Name);
13-
string libraryDirectory = Path.Combine(projectPath, project.LibraryDirectory ?? throw new Exception("Project.LibraryDirectory is null"));
14-
string executionSubDirectoryName = LibraryDirName;
11+
string libraryDirectory = Path.Combine(projectPath, project.Configuration?.LibraryDirectory ?? throw new Exception("Project.LibraryDirectory is null"));
12+
string executionSubDirectoryName = project.Configuration.LibraryDirectory.Split(['/', '\\']).First();
1513
string executionSubDirectory = Path.Combine(executionDirectory, executionSubDirectoryName);
1614

1715
Directory.CreateDirectory(executionSubDirectory);
@@ -22,37 +20,28 @@ public static void AddPackageToExecutionDirectory(Project project, string execut
2220
string libraryFileName = Path.GetFileName(libraryFile);
2321
string executionSubDirectoryFile = Path.Combine(executionSubDirectory, libraryFileName);
2422
File.Copy(libraryFile, executionSubDirectoryFile);
25-
files = [.. files, executionSubDirectoryFile];
2623
}
2724
}
28-
public static void RemovePackageFromExecutionDirectory(string[] projectFileNames)
25+
public static void RemovePackageFromExecutionDirectory(Project project, string executionDirectory)
2926
{
30-
foreach(string file in projectFileNames)
31-
{
32-
File.Delete(file);
33-
}
27+
string libraryDirectory = project.Configuration?.LibraryDirectory ?? throw new Exception("Project.LibraryDirectory is null");
28+
string executionSubDirectory = Path.Combine(executionDirectory, libraryDirectory);
29+
30+
Directory.Delete(executionSubDirectory, true);
3431
}
3532
public static void RemoveAllPackagesFromExecutionDirectory(string executionDirectory)
3633
{
37-
try
34+
string[] directories = Directory.GetDirectories(executionDirectory);
35+
foreach (string directory in directories)
3836
{
39-
string executionSubDirectory = Path.Combine(executionDirectory, LibraryDirName);
40-
string[] files = Directory.GetFiles(executionSubDirectory);
41-
foreach (string file in files)
37+
try
4238
{
43-
try
44-
{
45-
File.Delete(file);
46-
}
47-
catch
48-
{
49-
50-
}
39+
Directory.Delete(directory, true);
5140
}
52-
}
53-
catch
54-
{
41+
catch
42+
{
5543

44+
}
5645
}
5746
}
5847
public static string GetPackageDirectory(string package_name)
@@ -76,10 +65,7 @@ public static Parser GetPackageAsParser(string package_name)
7665
Parser[] parsers = [];
7766
foreach (var pack in global_packages)
7867
{
79-
string path = GetPackageFile(pack);
80-
string contents = File.ReadAllText(path);
81-
Parser p = new Parser(contents, path);
82-
p.Parse();
68+
Parser p = GetPackageAsParser(pack);
8369
parsers = [.. parsers, p];
8470
}
8571
foreach (string f in project.Files)
@@ -104,6 +90,8 @@ public static Parser ReturnParserWithPackages(Parser parser, string[] package_na
10490
Parser p = GetPackageAsParser(package_names[i]);
10591
parser = CombineParsers(parser, p);
10692
}
93+
parser.Classes = parser.Classes.DistinctBy(x => x.Name).ToList();
94+
parser.Methods = parser.Methods.DistinctBy(x => x.Name).ToList();
10795
return parser;
10896
}
10997
public static Parser RemovePackageFromParser(Parser main_parser, Parser remove)

0 commit comments

Comments
 (0)