mono/monodevelop — pull request #363 by luiscubal (2013-07-31 21:59:21+00:00)
Title: C# Split project

New addin project "CSharpSplitProject".
Requires recent Xwt version to compile.

Split project is meant to be used when an user who has a big project wants to move portions of that project to a new class library project.
The dialog shows all files in that project so the user can pick which ones should be moved to the new project.
The addin will take care of creating the project with the proper settings, moving the files and adding the required references.

This action has basic support for files that inside other files (`ProjectFile.DependsOn`).

It also has a bug. Consider two files - 'A' and 'B'. A has a type in namespace `NsA`, and B has a type in namespace `NsB`.
If A contains `using NsB;` but does not actually use anything in that namespace (that is, if the using statement is useless) and the user picks only file A to move to the new project, then the worthless using statement will be a compile error in the new project (since there is no `NsB`).
These using statements can be safely removed but if this is a significant inconvenience then I can fix it.

Works with files that aren't C# (such as 'README.txt'). For those files, the addin will assume they have no dependencies nor dependent files.