@@ -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