One pain point that keeps recurring for me and several other users is working with projects and files by recursing the dte:/solution/projects node. Since this node contains all projects and file items, as well as the code model for each file, recursion
generally takes a gignormous amount of time.
I'd like to remove the code model from dte:/solution/projects/<projectname>/<filename>/codemodel/ and isolate it somewhere else in the path node tree. This will allow project and project-item recursive ops without the pain. And it
should also make the code less cumbersome to describe in a path.
Moreover, since there are two ways to access the code model - across an entire project and within a single file - I want to expand the tree to encompass them both.
I'd like move the project-level code model root node to dte:/codemodel/<projectname>. The entire project code model will be available at each <projectname> node; e.g., creating a new method may look like so:
new-item -path dte:/codemodel/PoshRabbit/PoshRabbit/Extensions/ -name Create -type method -membertype 'void'
For the file-level code model, I'd like to keep them under the dte:/solution/codemodel/<projectname>/<projectitemname>. So the same call above could be rewritten as:
new-item -path dte:/solution/codemodel/PoshRabbit/Extensions.cs/PoshRabbit/Extensions -name Create -type method -membertype 'void'