StefanKert / BuildVision

A Visual Studio extension to visualize the building process.
MIT License
261 stars 43 forks source link

suggestions #40

Open muellerto opened 7 years ago

muellerto commented 7 years ago

I use BuildVision for years and it's a good help in Visual Studio.

One thing I always missed is that warnings are not visualized by color. In C++ there are a lot of warnings which have the importance of errors. The user should notice (and handle) them very seriously. But BuildVision gives him only a very tiny number in a column. You can easily overlook it. I would like to see a yellow icon instead of the green one on this row which tells me "Hey, you have warnings! Look at them!".

Next is accessing warnings from the BuildVision window: If you have compilation errors you can display them by clicking on the row. If you have only warnings you must indeed into the Output window and search them there. This is not good. You should handle errors, warnings and messages (#pragma message) in the same style.

The following is related to the activation of the BuildVision window when the build process starts. Sometimes, when I have a damned stubborn compilation error, I just compile a single C++ file several times (after modifications), without linking. In this case I want rather see the Output window. In this situation the BuildVision window does rather hide informations I want to see, again and again. Question: would it be possible to avoid the activation of the BuildVision window when I compile just a single file? Better: I suggest to activate the BuildVision window ONLY when the user builds the entire solution, not when he compiles a single file and also not when he builds a single project of the solution.

Thanks for reading.

JohnyWS commented 7 years ago

As for the "do not display when building single project" I would have to disagree, since that can trigger other projects to build as well, and that's where BuildVision really shines.

I would suggest you set up your windows differently though. Instead of having BuildVision in the same dock as your output window, you could move it to the same dock as your source code. I've had mine setup like that the last year or so, and I find it to give me a much butter workflow, since, when I'm building, I'm no longer interested in the source code, but how it all works together:

2017-08-17_11-13-31

StefanKert commented 7 years ago

Hey @muellerto,

first of all thanks a lot for these awesome suggestions!

So the first two suggestions are really cool. I like this idea and we should totally look closer to them. Could you please create separate Issues for these, so we can keep track of them and start a separate discussion on impl details?

The third suggestion is somehow difficult. I really do get the point and I think this could be useful to many other users, but I really don´t want to break the current behaviour. I would suggest another setting, but this is a good point to start a discussion.

So basically I would ask you to create separate issues for these 3 suggestions because all of them are really nice!

StefanKert commented 7 years ago

@JohnyWS sweet! this could also solve the issue with the window overlapping your output window.

TSchmiedlechner commented 7 years ago

Thanks for the suggestions, as @StefanKert already said!

In my opinion, especially the second point describes a behaviour that is definitly unwanted in this context and should be fixed.

Coloring the warnings could be an optional setting, maybe even in combination with certain project types - as a C# developer that works with a lot of generated code, I have to deal with many warnings I can basically ignore.

I also understand that the overlapping window can be annoying. I "solved" this issue by splitting the VS panel and putting the output window beside BuildVision:

image

In my opinion that works well on a 16:9 screen, but of course that's a matter of taste.

StefanKert commented 7 years ago

@TSchmiedlechner I think what @muellerto was talking about is to display the Warning Sign instead of the green checkmark (correct me if I´m wrong). I totally agree that displaying all kind of warnings should not be implemented as default behaviour, but maybe we could opt in these warnings by clicking on the warning sign in the header:

image

muellerto commented 7 years ago

Oh, thanks a lot for the discussion! (Never thought about so much feedback ... Thanks a lot for taking this seriously.)

@StefanKert did understand right, I meant a new warning icon for each project instead of the green checkmark, when a compilation led to one or more warnings (but no errors). This would give much better overview about the compilation results if you have a big solution. Hey, I have solutions with 80 (!) projects (was not my idea ...)

@ the folks who suggest me another window layout, it's as follows: I tried a lot. But after all I don't use many docked windows anymore. Indeed I hate everything that shrinks the space I have for my source code, even while the screens are getting bigger and bigger. I have only a SolutionExplorer on the left side, not more at all. Especially I don't have BuildVision and the Output window beside each other. I need the ability to have long lines in the Output, also because the Output window receives a lot of debug output, and scrolling horizontally is no solution. In C++ I have also the situation that one complicated error fills an entire screen in the Output window, this happens especially when you made an error related to templates. That's why I have the Output window always docked as a big tabbed window like my source code editor windows. I pinned it, so it doesn't close by accident. When I later installed BuildVision it was only natural to dock and pin it the same way. So my Output window and the BuildVision window are completely overlapping tabs. This evolved itself as the best solution, I use this constellation for years and normally this doesn't lead to conflicts at all, except compiling a single file or project.

About the fact that building a single project can also cause other projects to build I didn't thought. I switched this off ten years ago. Because of the long compilation times I must always explicitly decide what I build, not the machine. This led to very annoying build sessions in history, I remember that very well.

May be my view is "simpler" than other developers might see this. I never developed C#. Everyone has his own way to do things, also his own experiences. But I could imagine this activation of the window could easily be improved by one or two options which allow to control this process. If anyone doesn't like my idea just don't set these options and use it as it has been until now.