3F/MvsSln

More simplified work with solution folders

3F opened this issue · 1 comments

3F commented
new SolutionFolder
(
	new ProjectItem()
	{
		pType = Guids.SLN_FOLDER,
		name = "MyFolder1",
		path = "MyFolder1", // recommended to be same
		pGuid = Guid.NewGuid().ToString()
	},
	new List<RawText>()
	{
		".gnt\\gnt.core",
		".gnt\\packages.config",
		// ...
	}
),
...

too verbose ...

Related issue: #6

3F commented

Fully updated constructors and implemented native object comparison for ProjectItem + SolutionFolder + RawText. Polynom function: extracted as HashPolynom + CalculateHashCode

Now it should be really easy to create/modify/or just use parsed folders, projects, and other.

Safely compare anything:

if(new ProjectItem(...) == new ProjectItem(...)) { ... }
if(new SolutionFolder(...) == new SolutionFolder(...)) { ... }
if(new RawText(...) == new RawText(...)) { ... }
if(new ConfigItem(...) == new ConfigItem(...)) { ... }
if((RawText)"data" == (RawText)"data") { ... }

Use Subdirectories:

new SolutionFolder("dir1", 
    new SolutionFolder("dir2", 
        new SolutionFolder("dir3", "hMSBuild.bat", "DllExport.bat")
    )
);
...
new SolutionFolder("{EE7DD6B7-56F4-478D-8745-3D204D915473}", "MyFolder2", dir1, ".gnt\\gnt.core");
...

Projects and Folders:

new ProjectItem("Project1", ProjectType.Cs);
new ProjectItem("Project1", ProjectType.Cs, new SolutionFolder("dir1"));
new ProjectItem("Project2", ProjectType.Vc, "path 1");
new ProjectItem("{EE7DD6B7-56F4-478D-8745-3D204D915473}", "Project1", ProjectType.Cs, dir2);
...

See related unit tests!