dotnet / project-system

The .NET Project System for Visual Studio
MIT License
968 stars 387 forks source link

The solution explorer should mirror the file system #200

Open asbjornu opened 8 years ago

asbjornu commented 8 years ago

One thing I and all other developers I've ever talked about it with hate, is the mismatch between what you see in the Solution Explorer of Visual Studio and the file system. Having to create a duplicate folder hierarchy for stuff that isn't within a project (files like README.md on the solution root, for instance) suck.

I think this is somewhat related to #106 and #197, but I believe it's important to express that most developers I know, including me, would like the Solution Explorer to be a physical file browser with a .gitignore applied and not a virtual explorer of incomprehensible stuff within the .sln file that is impossible to hand edit or make sense of.

Mike-E-angelo commented 8 years ago

It would be amazing to be able to rearrange projects and such and have those actually move on the file system as well. The problem I am thinking of is that csproj files are the "folders" right now. So if you view it as a filesystem, you will see something like this:

/root/
    /Namepsace.Project/ (folder)
        /Namepsace.Project/ (project)

I'm sure you have a good answer for this, however. :smile:

asbjornu commented 8 years ago

@Mike-EEE I'm not sure I have any answers, but I agree that it would be very useful to be able to use the solution explorer as an alternative to explorer.exe and have it work as expected without any surprises and virtual abstractions above the actual file system.

What I see in the Solution Explorer is directories and files; a file system. The Solution Explorer not operating on the files and folders like an actual file system is therefore both strange and aggravating.

Mike-E-angelo commented 8 years ago

I definitely see your point, @asbjornu. I am also a (admittedly conditioned) fan of how it is now, as what is now is a "view" of the file system. I am thinking it would be nice to have the ability to switch between the two, or creating a whole new window altogether, so:

Another option is to "fold" projects into their respective folders so that they don't "double-node" as illustrated above. There is always the "Show All Files" option as well. It would be easy enough to hide the project files and then have a "Show All Project Files"-type option.

davkean commented 8 years ago

@asbjornu Can you try the VS 15 Preview, and try this feature: image

image

It sounds like more what you are looking for.

asbjornu commented 8 years ago

@davkean Seeing how the .vs folder is visible there, this doesn't look exactly like what I want. I do enjoy the possibility to hide items from view, but I would like the default of the solution explorer to mirror the file system and the rules in .gitignore, with a "Show All Files" button like we have today.

seangwright commented 8 years ago

@asbjornu Visual Studio Code has the 'view files and folders as they are on the file system' approach while also allowing you to restrict what shows up through (project/folder) configuation. This configuration even accepts some limited conditional logic.

I've been using VS Code a lot for javascript development and comparing the filesystem project approach to the project file project approach has been interesting.

asbjornu commented 8 years ago

@sgwatgit That's exactly what I want in Visual Studio!

jtbrower commented 6 years ago

I agree that it would be great to have this feature. After trying to keep the solution folder documentation contents in sync with the file system's contents I came to an alternative approach.

Create a Windows Short Cut.Ink to your target directory and then place that shortcut in your solution. Right click the short cut and select open with. When the options dialog opens you will likely need to add "explorer.exe" to the list and then set it as the default for the shortcut you added.

For documentation, this actually works out better for me as there is a bug in Visual Studio where if you try to double click a document file too quickly, it will attempt to open the file twice. You must double click slowly. With the shortcut workaround, it opens documents outside of visual studio and this double click issue is a non-issue.

This is my first post, hopefully it helps someone. Cheers.