ObfusCo
>
The List
>
Visual Studio
Visual Studio Blog
Right now, I'm using VS2k5. The sundry below
are also from VS6 and VS7 and VS.Net of various ilk.
One common theme is that VS just doesn't want to
let you use it as anything less than the complete
control system; if you try to use it as just an editor
tool, for example, it will do some secret things to
screw you over and over.
- 202)
When I add an existing project to a solution, it always gets
marked to be built. There is on way that I've seen to tell VS
to defalut to not building added projects. What a pain.
- 202)
It bugs the crap outta me that when you add a source file to
a C# project, it secretly copies the file unless you use "Add as Link".
And yet, for C++ projects, it doesn't do that copy crap.
- 201)
Things that VS2k5 still doesn't fix: Text search doesn't have a long
history, it only has the 2 output panes to dump to. Text search cannot
show you lines of context like grep -C. If you have a single statement
inside curly braces, like { string foo = Bar(); } and you want to see
what foo is in the debugger, you are out of luck as far as I can tell
(JDB is the same). The "toggle breakpoints" feature doesn't have
a keyboard shortcut. Also, it doesn't respect whatever you have
hilighted in the breakpoints list. Why can't I (that I've noticed)
break on a method call for a given instance? I want to be able to
step into a function call without having to go into-outof each function
call in the arguments. I'd like to be able to break when a given
object (or class, or interface, etc.) is referenced in any way. It
is funny how debuggers and multi-threaded apps just never get along.
They use '...' even when there is still plenty of room horizontally
to show the rest of the contents of the variable. You can't add a
project to a solution while you are debugging, which wold be useful
to track down references. I wish there were easily found and
easily used ways to break on
arbitrary things like "any dynamic library load".
- 200)
Here's another thing that drives me nuts about VS: the project
and solution files are like a billion times more complex looking than
a seemingly equivalent nmake file.
- 199)
You have to realize that VS is not just an editor, it is an IDE,
and if you try to use it with other tools it will be a jealous
god and screw you. For example, when I add an already existing source
file to my solution, the solution doesn't use that already existing
file on disk - it actually makes a copy of the file in VS's
own little world. So then any changes to the file I make via VS
won't be seen by any other part of my build system. Great. Genius.
Thanks. Screw me some more, Microsoft.
- 198)
I love how the VS 2005 installer has a progress bar that
gets to 100% long before it is done. The installer will
keep rotating the beautiful-people-clip-art images
at some interval, so I guess you have some
indication that it is still alive, but isn't that
really the raison d'etre of the bloody progressbar?!
- 197)
When calling native code from managed, you might get an exception
such as DLL not found, but you might also discover that the debugger
can't, or just won't, show you which bloody DLL it failed to find.
As much as all the .Net and Java stuff is cool, what with all the
interoperability, my experience is that things are too bloody
complicated and poorly fleshed-out, so you end up with no (common)
tools that can actually help.
- 196) VS doesn't do a good job of helping
you figure out a file that has lots of
#ifdefs in it. There's the 'outline' mode,
but what I'd rather have is proper indentation;
it just lines up all directives on the far left,
so #if/#else/#endif stuff of any depth is
hard to understand.
- 195) Face it, the whole thing is a joke.
Just compare the capabilities of
the system for e.g.: searching for text
in files vs. using plain old unix utilities
like grep: there is nothing like -A or -B.
- 194) The whole UI is just suck when it comes to having
multiple files open, because they are listed in the order
they were opened and there is no way to tell the system
to order their tabs in some logical / conceptual order.
So pretty much all the time the files are in some random order,
which obviously does nothing to help you be organized.
Feel the hate.
- 193) If I'm doing a big file string search, and then decide in
the middle of it that I want to do another one, then I want
the first one to be cancelled and the second one started. But
the way VS is treating my second request is to only stop the
first search. Then, I have to go back to the find-in-files
UI and it has lost the second string I was looking for and is
showing me the first one again. So I have to re-enter my search
terms and only then will it get cracking on the second search.
Whatever!
- 192) It drives me up the wall when documentation or code browsers
do not show return values. MSDN doesn't. Visual Studio often
doesn't. Java docs? They do!
- 191) Is it me, or can I not get an old school, fat,
block cursor in VS?
- 190) I wish everything could do EMACS's "replace
strings, and use the case of the string that
is being replaced so I don't have to laboriously
first replace all lower case ones and then all upper
case ones." Argh.
- 189) What is the point of having a list of "Recent Files"
when it doesn't actually list the files I've recently
been looking at? E.g.: if I open a file from the Solution
view itself, that file isn't added to the list. Only if
I get to the file via File/Open/File (that last part
is new in VS7, and utterly hateful) command will it be
added to the list. Whatever.
- 188) When using regular expressions in a search,
you cannot use tagged matches in the Find string,
only in the Replace string. So you can't easily
find C++ constructors, which is easy in Perl using
something like "m/([^:\s]*?)::\1/".
- 187) You can't take multi-file search results
and do a narrowing search on those results. What
would be grep-pipe-grep in Unix.
- 186) Okay, more cause for pistol-whipping. The
Find in File dialog can expand into a Find-and-Replace
dialog. However, once you've expanded it by clicking
on the button with the "more" arrows on it, you cannot
revert back to the play and simple find functionality.
Instead you have to close the whole dialog box and
bring it back up again. Hello?
- 185) Fascist piece of crap. The whole implementation
of the Solution Explorer window sucks, but leaving
aside that I think the approach is wrong from the
get-go, let me pick on one detail. When you open
a file from the File menu, if that file is in your
Solution Explorer, the SE will zoom to that file,
opening any parent folders. Which I kinda hate.
But, then it goes and fails to clean up after itself;
when you close the file, it doesn't automatically
close the SE's path to it either (assuming no other
files in that path are open, yadda yadda).
- 184) Maybe there is and I just don't know, but
there doesn't seem to be a way to easily switch
between the .cpp and the .h versions of a method.
That sucks.
- 183) The tabs of open files aren't arranged in
an order that I'd like. I'm anal and always
want the .h immediately to the left of the .cpp.
I wish this piece of poo IDE had that ability.
How hard can a regexp like that be?
- 182) There's a new file I have. I've got
it open for editing in VS. I want to add
it to the current project. Can I right-click
on the file's title bar and add it? No.
I apparently have to laboriously go through
the regular steps of adding an existing file
to the project. That sucks.
- 181) Dunno if I've mentioned this one, but
when I close a file in VS7, it
moves the Solution Explorer view based
on the next window in the stack. If
the Solution Explorer has lots of stuff in it, that
could be really fara way. And. I. Hate. That.
When I open a file and realize that oh, wait, I wanted
the one next to it, I close th wrong one first - but
that changes my Solution Explorer view drastically,
and I have to manually renavigate to open the other
file. The other file which was right in front of me
in the SE view a second ago, before this bloody program
decided to go and cock everything up. Hate!
- 180) I know HTML can render differently in different
places, and so the concept of line numbers is sketchy,
but I have an HTML file that really is just a text
file with explicit line breaks in it and everything.
I really want line numbers here, even if they are
fake ones. Just give me the bloody option.
- 179) When I have a single file in a window that has
a split bar in it, and I double-click on the split
bar, I want the part of the window that last got
a mouse click (setting the text karet) to become
the full window. Instead, it seems to always choose
the bottom one. Whatever.
- 178) It doesn't keep undo/redo information per-buffer,
apparently. I delete something, switch files, do stuff,
then switch back and do Ctrl-Y... and nothing happens.
Nice!
- 177) In pretty much any view of a file, you can have
horizontal split bars so you can simultaneously look
at two places in the same file. Oh, wait, except
for rendered HTML. Whatever.
- 176) I'm pissed off that it is so modal. When I am debugging,
all my windows are different than when I'm not debugging.
I understand the reasons for that, but it is annoying to
start debugging and then try to click on something only
to have it move or disappear or be replaced by something
I really didn't want to click on, you know? Bah,
humbug!
- 175) How many times have I written C/C++ code
where I've had a set of regular parenthases
and inside them I used curly brackets? Off the
top of my head, I'd say probably never.
Yet, when I save a .cpp file, I get no warnings.
- 174) Let me reiterate that the whole Solution vs.
Project thing is a steaming pile of poo, at least
when it comes to the UI. E.g.: why is it called
Recent Projects, and yet is shows solutions?
- 173) Apparently, you can't do simple addition or
subtraction of memory addresses in the "Memory 1"
etc. windows. Lame!
- 172) It can be useful that VS shows you, via tooltips,
the values of things you hover your mouse pointer
over e.g.: enums, but it only shows them in decimal.
32768 sucks when your enums are flags and you want
to see 0x8000 instead.
- 171) I love how when you open a large file in VS it
just goes out to lunch. No feedback - no progress bar
no nothing. Oh, also, it freaks out drawing the
really big line numbers, tee hee.
- 170) VS7 lets you collapse functions. The widgets
to do that get in the way of letting me select the
whole line by clicking at the far left of it. It
sucks. I never even want to collapse things. Yet
I cannot turn that off. I'm in hell.
- 169) Breakpoints are shown as file and line number. Which is
nigh useless when you have more than one breakpoint in a file.
Why doesn't it tell me what method the breakpoint is in?
- 168) Ctrl-G in VS7 brings up the "Go To Line" dialog box. It automatically
puts in the current line number, blowing out anything that
was in there the last time you used it. Now, the current line number
is just about always guaranteed to be the wrong thing - I mean,
that's the point of bringing up the dialog, is to go somewhere
else. Whatever!
- 167) Why, yes, more killing does need to be done: In VS7
if you have your text cursor in a word and do Ctrl-H (or whatever
you have it bound to) it will copy the word into the Find/Replace
dialog. However, if you have a larger string selected and do Ctrl-H
it won't put that string in. So you have to copy and paste it. Uh, yeah,
that's brilliant. Update: well, sometimes it works, sometimes it
doesn't. No clear rhyme or reason.
- 166) When setting up debugging in VS7, there's the Working Directory
entry. However, it doesn't have a button to let you browse to
find the directory. No, you have to type it in textually.
Whatever.
- 165) I find it annoying that VS7 says "Save FooBar As..."
rather than just "Save As..." because it is much harder
to just let my brain to auto-pattern-matching when looking
at the File menu when the bloody string keeps changing.
- 164) Somehow, VS7 is in a mode now where when I type
the double quote mark on my keyboard in the Find
text field, it does smart quotes. Which have never
been used in the source code I'm working on, so of
course the match never happens. I have never had this
happen before, and I have absolutely no idea how it
got into this mode. Or even why it would have
such a mode. What a living hell.
- 163) I feel compelled to explain yet another completely
ass-backwards thing about VS7. When you have multiple
files opened, you see them as tabs. They have a linear
order from left to right. However, apparently this has
nothing to do with the stacking order, which I guess
is the order you'd see in the list-of-Windows menu.
So if you click on a tab and close that file, there
is nothing in the tabs to indicate what buffer will
be shown next. This has bitten me several times where
I want to close e.g.: all-but-one of the windows because
basically random windows are brought forward as I close
things. Very stupid and hateful and annoying! Basically,
the fundamental problem is that there are too many representations
of the set of windows, and they conflict in their ordering
information. Hate.
- 162) I know I'm overly sensitive, but why do computers
have to such so much on a regular basis? Like, I'm
working in VS all night on a project. I quit and
go home and come back the next day and load up VS
and the project (sorry, "solution" - bite me!)
I just spent the last gazillion hours
working on isn't even in the list of recent
ones, so I have to manually go load it. What. Ever.
- 161) In e.g.: the Locals window in VS7 once
you select a line, you can't unselect them
all. Like, you can't click on the blank
line at the bottom of the list and end up
with no line selected. Which is a pain because
the inverse-video that shows what is selected
really sucks when the thing just changed because
you get red-on-blue. Blah.
- 160) We all know that macros in C suck a lot of
buttocks. So you'd think that a modern compiler
would try to maybe help you out, by giving you
a really good, explanatory description of what
went wrong in the application/parsing of the
macro. But, no, it just says "syntax error
near ')'" and I want to start the shooting.
- 159) VS7 is supposed to be hot poop on a stick that
can edit everything, right? So I open a .xml file
in it and it doesn't even give me a way to collapse
stuff in tag begin/end pairs down. Whatever.
- 158) At least in VS7, you can't copy the name of a file
from the Solution/Project Explorer. Or anywhere else
that I can find. Or the path to it. Yay.
- 157) So in some windows in VS7 you can do Ctrl-BackSpace
to delete the previous word. However, it doesn't work
in all text fields. E.g.: when you are in the Help Search
fields. What a living hell.
- 156) In VS7 once you add a file or folder to a project,
you can't move its around in the list. That I've figured
out. Anyway. Please, just start the killing already, will
you?
- 155) I do a file search across "All Searchable Items;d:/foo"
and then I do one across "All Searchable Items;" and then
finally "All Searchable Items". The middle one returns
no hits... Where Can I Start The Whippings Please?
- 154) Any editor without a dired mode like EMACS
is not a real editor.
- 153) I want to find out what is #defining DEBUG.
Why don't IDEs give you a way to debug the preprocessor
interactively or something? So I can have a 'watch'
on DEBUG so I can see what is defining it? (I've
already gone through all the VS project
files and removed any DEBUG crap, so I'm completely
at a loss to explain what in the heck is going on.)
- 152) Is it just me, or shouldn't our IDEs be able
to tell us which #ifdef we're #ending? This is
the next millenium, you know. God, hell.
- 151) Why is it apparently too much to ask for
VS7 to be able to show you argv in a useful
way? Like an actual list of the strings? Instead
it only shows the first one. WTF?
- 150) The Find in VS7 sucks, yay. You can choose to
search "Current Project" but there isn't any option
to search "Current Solution". There is "All Searchable
Items", but what the hell does that mean?
Why not have a "Current Solution" when VS7 introduced
the whole idea?
- 149) Why is it that the Configuration Manager dialog, which is
dirt simple, has a Help button, but the Project Properties dialog,
which is way more complicated does not?
- 148) I'm looking at the Properties of a Project in VS7 and it has
a field in the dialog box called "Start Application." Yet when
I search for "start application" in the help index, it finds no
exatch match. Nice.
- 147) I love how in VS7 there are windows (e.g.: the Task List) with tables
in them where double-clicking on the column seperator doesn't auto-adjust
their width. Whatever.
- 146) In VS6 if you did a build and got errors,
it wouldn't run the program. In VS7 now it
asks you if you want to run the program. I
pretty much don't, and so it sucks to have this
extra step of telling the dialog box what I want
to do. I wish it were clear how I could tell
VS7 to assume I don't want to run it, and not ask
me. Blah!
- 145) You find text in many files. You change
the text. You then go back to the find results
and double-click on the hits. They no longer
do anything, presumably because you've changed
the text so they no longer match. Yet, the results
contain the line number at the time they matched.
Why doesn't it just take you there, at least? Sheesh.
- 144) I start a multi-file text search. It goes.
I want to do another search. The Find button
is grayed out. I click on the Stop button and
nothing happens. The search will not die. Yes!
Is it only when I use searching with regular
expressions? Who knows. All I know is this
thing is a tub of poo.
- 143) Is it me, or is there no readily apparent
way to step a given number of times? Like, if
I want to tell the debugger to step twenty times,
I have to physically hit F10 twenty times, right?
Lame!
- 142) You can have a solution in VS7 with files in it
but there isn't a way to copy a filename out of there.
The properties of the file in the Solution Explorer
don't include the filename, so you can't copy it
from there. I haven't found any place I can right-click
on the name and choose Copy and have it copy the text
of the filename. Whatever!
- 141) If you open a project/solution in VS7 using
the File/Open/Project command, and that project already
exists in the File/Recent Projects list, the project
is not bumped up to be the first entry in that list.
Which is what should happen. Duh!
- 140) I love how, for pretty much any search dialog,
VS does its damndest to put the wrong default
values in there. Like, I do Ctrl-g to go to a line,
enter a value, do stuff, switch to other files,
come back (haven't done any other Ctrl-g's although
I did do text searches) to the original file and
go Ctrl-g again, and the default value is not the
last value I entered. What. Ever.
- 139) For this, I really would start the you-know-what-ing.
I've got a few files open in VS7. One of them is being
written to by another process, so it is changing. I'm
not looking at that file, though, I'm editing a different
one at the time. However, VS decides to, every 5 to 20
seconds, put up a dialog box telling me that the other
file has changed, and asking me if I want to revisit
the file. It doesn't give me the option of telling it
to go to hell and leave me alone - at least, not
in that dialog box; you know, the "never show me this
stupid thing ever again you jerk" type options as
seen in IE (you can apparently turn detection off
from elsewhere, though. Update: sure, you
can turn it off, but there doesn't appear to be any
menu command like "Refresh" so I guess you have to manually
close and reopen the file?!!!!). Emacs is smart
enough to only ask you if you want the new version
of the file when you switch to that buffer. You cannot
begin to comprehend how annoying this all is.
- 138) What is the point of the Recent Files list
when it doesn't update to include - get this -
files that you've recently visited? Please, give
me strength. (Update: Specifically, if another application
sends a request to VS to look at a file, then
that file doesn't show up on the Recent Files list.)
- 137) In VS6 you could click on the toolbar button to
stop the Find-in-Files, but apparently you can't
do that in VS7. You have to go a further step, and
press the Stop button in the dialog box that comes
up. What a living hell.
- 136) In the Find-in-Files dialog box, when you click
on the path, the whole text is immediately selected
and the view is scrolled to the end of the text. I
am hard pressed to convey how completely mind-blowingly
evil and hateful and wrong that is. It gets worse
the longer your path is, and the closer to the start you
want to perform an edit. God, I hate everyone.
- 135) Is it me, or can I not use regular expressions
when trying to replace text, only when finding it?
Can everybody just go to hell already?
- 134) It pisses me off that I can only have breakpoints based
on source line numbers. So if I want to debug code that
is like if(foo){bar;} I have to split it so the
bar; is on its own line. Right?
- 133) Apparently, you cannot 'undo' deleting a breakpoint. Sucks.
- 132) In VS6, there's View / Output, but then the actual docked window
you want it titled "Debug". Yay.
- 131) Here's a feature suggestion: When you get the results of a Find,
you might get a bazillion hits in some subdirectory you don't care
about. It would be nifty if there were a way to collapse those down
so you didn't have to manuall scroll through to find their end, and
the start of interesting results.
- 130) In VS6, as the results of a Find came in you could scroll
up through them no problem. VS7 apparently keeps the cursor
in the window at the end of the text, and appends new results
there, and forces the scroll position to the end whenever
it adds results. So if you scroll up, the view will immediately
scroll back down to the very end. You have to manually move the
cursor somewhere else and then you can scroll. Did
nobody use VS7 before they shipped it?
- 129) VS C++ 6.0 and now 7.0/.Net both have a really
crappy thing about their debugger: when you go up
the call stack, the little pointer shows the next
instruction, not the one you are currently inside. If
the code above has any sort of branching, it can be
hard if not impossible to determine which branch is
being executed! This is insane!
- 128)
This. Is. Killing. Me. I'm working on a couple of source trees
at the same time, and VS (any version) just completely bites
my poop in dealing with this. Like, there's the XP-or-something style Open
dialog box that has a shortcut bar on the left, and yet I cannot add
anything to that. Augh!
- 127) MS programs seem to always start off in the wrong folder when I'm
trying to open a file. VS7 will start off in the folder that the
currently-being-edited file is in. That sucks when I: navigate to a new
folder, open a file there, figure out I want a different file from there,
close the file, and then try to open the new one - because now I'm back in
the old folder that is light years away from where I wanna be, namely the
last folder where I opened a document. I think if it just opened from the
last visited folder it would end up being less annoying? Or if there were
at least a quick list of the last 5 folders I've visited to get me there,
so I don't have to re-navigate through the torturous file hierarchy?
- 126) Up until now, most of the eXtremely suPid things
about VS .Net have been annoying... but this really
takes the cake: in the Locals window, it will no longer show
you the string value of a pointer. Running the same thing
in VS6, on the other hand, does show the string vlaue of it.
So they explicitly and purposefully got rid of
something that was obviously useful. This. Is. Insanity. Furthermore,
the Type column lists it as "--" which I guess means unknown. But the thing
is a member variable, so it must have a type, even if it is just
void or something. What the hell is this crap?
- 125) VS7 screws the pooch yet again. It used to be in VS6 that
Ctrl+K would do ConditionalDown to find the next matching
preprocessor statements. That binding is
no longer thus
in VS7 and, furthermore, the help contains absolutely no
references to "ConditionalDown".
- 124) VS7 rules again: "No suitable target for find was specified or
another find error occurred." God, I hate everybody. Wait, I mean, "whatever,
ship it!"
- 123) I am obviously living in some kind of parallel hell universe.
In VS7's Locals window, you can see the Name, Value and Type of
variables. Okay, that's nice. You could do that in VS6. So the new
thing they added to VS7 is that you cannot, apparently, copy out
the Value. If you try to double-click on the row's Value field, it
only serves to select the whole row. When you Copy and Paste, you
see that the entire row was copied. This is utter insanity. Update:
turns out those values are read-only so VS doesn't want you selecting
the Value and editing it. Unfortunately, the side effect is that
I cannot even copy the values easily, a task which obviously
doesn't need to threaten the constantcy of the Value. Whatever. Jerks.
- 122) In VS7, when I right-click on a Solution in the Solution Explorer,
the menu which comes up is different when the debugger is running. I
realize that right-click is supposed to be context-sensitive but it
kinda sucks ass that in one mode I get "Add Existing Project" in addition
to "Add Existing Item", and in the other I only get "Add Existing Item".
Actually, the interface is even worse than that because it is "Add"
with entries "Existing Project" and then - get this - "Add Existing
Item" so that is really "Add Add Existing Item". Whatever, it is just
one complete cluster you-know-what.
- 121) I'm trying to open a project in VS7. The "Add Existing Project" dialog
is showing me the contents of a directory. It is in "List" mode. The
things it shows are not in any order that makes any sense - they certainly
aren't alphabetically listed. Whatever.
- 120) The VS7 insanity continues. If I'm typing stuff into the Find
dialog, and I hit Ctrl-a, everything in the text file gets selected
rather than the whole word in the dialog box text entry field. What.
The. Hell. Kind. Of. Crack. Are. These. People. On?
- 119) Whoever did the UI in VS7 just completely keeps on screwing the pooch.
It used to be in VS6 that with Find/Replace you could use Alt-r to keep
on replacing. Now it is all cocked up. The first replace you do puts focus
somewhere other than on the Find/Replace docked dialog, which means when
you hit Alt-r nothing happens (well, the bell rings to let you know it
isn't mapped, or something). In VS6 this all worked just fine.
- 118) Nice! I go to VS7's Help Contents and get a dialog box saying "Help is
updating to reflect your recent changes. This may take several minutes."
There is no cancel button. The app is totally unresponsive and out
to lunch. It doesn't even tell me what the hell it is doing; I guess
I can tell it is doing something because I can hear
the hard drive churning! Yay. So much for usability.
- 117) It finally gets done doing whatever it had to do
to bring up Help (took like literally 5 minutes), and
now the Help windows are docked in VS. I want them
large so I undock them. I do a search, the results show
up elsewhere, docked in VS. The undocked help appears
to be always-on-top, so I can't even really see the
results. This is just insanity. What a complete crock
of crap, what a complete step backwards from how it all
was in VS6.
- 116) Lo, I am full of hate. VS6 would take you back if you
hit Ctrl-* (on the numeric keypad I think), and VS7 completely
does absolutely nothing instead.
- 115) VS7 has also apparently done away with the VS6 useful file type
filters for the multi-file search. E.g.: there's nothing for
searching just .h type files.
- 114) There are some modes in VS7 that won't give you "All Files (*.*)"
in the Open File dialog. What is up with that?
- 113) Sufficeth to say, the way you add External Tools to VS7 sucks
a lot of hairy buttocks. Like, you can't copy a tool entry and
edit it. You always have to start a tool setup from scratch. And
if you try to click on another tool while creating a new one,
so you can see what the params you want are, it tells you
that you must have a command entered before it will let you
do that. But the point is I want to find out what the full
command is from the other, already existing, tool! Cripes!
- 112) The way you tell VS7 to do a text search in certain
directories is really really bad.
- 111) The tooltips in VS6 used to tell you the keyboard shortcut
(e.g.: for Step In, in the debugger). They no longer appear
in VS7. That pretty much sucks hairy buttocks. Why they go to
all the trouble of removing good ideas and then apparently
putting effort into crappy ones, I do not know.
- 110) Riddle me this:
Why does VS7 let me set a break point in a text file?
And, why doesn't it let me double-click to select a word
in the Output window? I can click and drag to select things, but
double-clicking on a word, which would select that word in any
editor window, does nothing. What. Ever!
- 109) Is it still me? I've got the Class View showing and
I am working on source code, on a particular class, but
I don't see how to get the Class View to select the
class I'm working on. This. Is. Insane.
- 108) Is it me? In VS7/.Net I've got ClassA, which has
some pure virtual functions, and then it has descendants.
More than one. There's like 2 direct descendants, and then
more from there. ClassB is a direct child. In the Class View
or Object Browser, I can see ClassB but not ClassA. So I open
up ClassA and it says that ClassB is its parent. But there
doesn't appear to be any way to see all the children of
ClassA. Which is what I would like to be able to do,
of course...
- 107) As if the UI for VS wasn't bad enough, they had to
go and add the idea of a "Solution" to VS7, so now you
have "Projects" and "Solutions" (dunno whatever happened
to "Workspaces"). What. Ever. To be even more confusing,
you can open Recent Files, and Recent Projects, but there
is nothing about Recent Solutions.
- 106) Say you have a file open in VS .Net, from the top of
your list of items in your current Project, er, sorry, "Solution". Then
you go and open a new file that is at the bottom of the list
of items. So you have to scroll the project view all the
way to the bottom. But you double-clicked on the wrong one - you wanted
the one next to it. So you close the window. Ah, now it gets
good! VS decides that since the main text window that is open
is the first one, it scrolls the project view all the way back
up to the top so you can see where the file is in the project.
Which means you then have to manually scroll to the bottom
again!
- 105) VS .Net's variable watching windows apparently don't
support auto-resizing of columns when you double-click
on the seperators. Kinda lame.
- 104) VS 6 had this lame thing where the File menu had "Open" and
then also had a seperate "Open Workspace" entry. That seems
really stupid and annoying to me. I think there should just be
one single Open, and it should do the right thing if I load
a workspace, rather than a .cpp file, or whatever. Now, with
VS .NET, they've gone and gotten rid of the "Open Workspace"
command and instead the "Open" command now has a sub menu. This
is actually even more annoying to me, because now when I'm opening
a file I have to go through an extra step. That just seems completely
soft in the head to me. Bah! Humbug!
- 103) I'm so glad that apparently the default keybindings
in Visual Studio .NET are significantly different from those
for previous versions e.g.: in version 6, Alt+9 would bring
up the list of breakpoints. Now that appears to be some meta
key in the .NET version. Whatever.
- 102) Why is it that keyboard mapping editing is always
a super suckful experience? Like, in Visual Studio I haven't
seen a way to find out what command a key actually runs. Like,
I can hit F12, and it does something, but I want to know the
name of the command so I can, for example, rebind it. God, hell.
- 101) Let me count the ways I hate Visual Studio... Oh, well,
okay, that would take forever so I'll just tell you the
latest one: the name given to windows follows no rhyme
or reason that respects human expectations. I have two
files with the same name "A" but in different directories,
one being a sub directory of the other; "/dir1" and "/dir1/dir2".
However I loaded those files in VS, they end up named
"A" and "/dir1/A" which makes completely no sense to me
what-so-ever. If anything, they should read "A" and "dir2/A"
or "/dir1/A" and "/dir1/dir2/A" etc. You
catch my drift.
- 100) VS6 can actually pretty nicely completely screw you; say
you are looking at a variable in the debugger.
Say it is currently being shown in decimal.
You select it. Then, you decide you'd rather see it in hex.
It is still selected. You right-click and choose the hexidecimal
view. Things in the Variables window now change to show themselves
as hex values... however, the variable value you had selected changes
to be just the decimal numbers in hex. So if you had 10, now you'd
have 0x10 when it should be 0xa (the other fields transform
correctly). This is pretty mind blowing. So, anwyay, now you keep
on chugging and your variable value has changed! And you might
not have noticed VC's screw up, and you could pretty much be
in total hell. Nice! That's what the Danes call quality!
- 99) Couldn't they have made VS6 make a different
noise when it finishes a build with vs. without
any errors?
- 98) So I was working on a workspace in VC++. So then I switch
to working on an entirely different workspace. Whenever I
go to open a file now, Visual Studio starts the file
browser off in a directory from the old workspace.
Lord in heaven give me strength. If I rename the old
directory so that VS can't find it, it correctly puts
me into a directory of the new workspace. If, however,
I reset the old directory's name, VS goes back to using
it. So who, exactly, do I get to thrash for this?
- 97) It doesn't seem like you can customize (let alone easily)
the way VS6 does it's formatting (vs., say, EMACS). And their
autoformatter can get pretty confused like when you have complex
parts of a for loop. Whatever.
- 96) VS6 shows you all the errors in the Output frame, but
isn't smart enough to keep the view at the top of the output
when you compile. Since you always want to look at the very
first error, since that often is what caused all the others,
in a chain-reaction, you always have to manually scroll all
the way back up to the top of the output. Stoooopid!
- 95) Visual Studio continues to shock me with just how much
of a steaming piece of dog poop it really is. I'm sure the
compiler is okay, but the UI - even on version six, so they've
had plenty of time to get it right - is pretty much pathetic.
For example, in the Debug output, you can't double-click on
a word to select it. That's a big "Whatever!"
- 94) I start a build in VS6. Then I realize I want to add
a file into one of the project folders. I right-click on the
folder, intending to use the Add File command. But it isn't
there. It isn't that it is grayed out, it just completely
isn't there. Apparently VS6 is really modal; I have to stop
the compilation to get the command back. It just seems really
wrong to me for the command to disappear rather than
be disabled and grayed out.
- 93) Running some code in the VC++ debugger. It is loading
a file. It isn't writing to the file. The file is write
protected on disk. I can't cat or stat or od or view the file
while the debugger is reading it. Apparently the Win2K file
system has a lock on the whole thing. That's what the Danes
call quality.
- 92) Sure, Visual Studio has the ability to search for things in files, but
you can't chain filters - the idea of unix stdin and stdout is just so
much more useful at times. E.g.: if you are looking only for hits on line
101 or something, you have to search through Visual Studio's results manually.
Whatever.
- 91) Sure, I can remap Ctrl-W to close windows in Visual Studio...
sometimes. Like, it now works for text files, but when I'm editing
a binary file it still does something entirely different. There
isn't anything which tells me what editor mode binary files use
so I don't know which of "Main", "Text", "Dialog" or "Image"
to update. Whatever. Piece of crap. Let alone having
it nicely show you what and where Ctrl-w is already bound to.
- 90) Hm. I have 2 copies of Visual Studio going. I think they
share the same "last place I was in the Open File Dialog"
so when I muck around in one, I have to re-naviagte back
to where I was in the other. Sucks ass!
- 89) Visual Studio is just such a complete piece of crap.
It tries to give you the ability to find the definitions
of methods and stuff, but unless you manually delete
all the .sbr and .bsc files and rebuild everything, as
soon as I edit like five lines of code the thing has lost
its mind. If you are going to have some feature then don't
be half-assed about it becuase it just ends up looking like
you didn't know what the hell you were doing, okay?
- 88) Which brings up another point: too many things in Visual Studio are
called Windows. That is a really bad. There are things like the
Definitions and References window. But the menu bar entry "Window" doesn't
contain the Definitions and References window, it only contains the names
of the buffers of the files I'm editing. Argh!
- 87) Visual Studio has "Help Keyboard" which is a dialog that
shows you what commands are available and what keys they
are bound to. The kicker? It is a modal dialog.
Can we please start the torture?
- 86) It is just peachy that underscores aren't considered
to be word seperators in Visual Studio. Actually, in
general, Ctrl-Left and Ctrl-Right Arrow are both pretty
stupid and broken; if you have "LongWord1LongWord2"
then there is no way to get the cursor to the end of LongWord1,
before the space, using the Ctrl-Arrows. (In EMACS, you
can get there.)
- 85) It is so great that you can't do multiple line search and
replace in Visual Studio (without resorting to regular expressions,
which I haven't tried, so I don't know for sure that it is even
possible then). Like, the obvious thing of selecting a few
lines of text, hitting Ctrl-H and entering the replacement
word (I'm not even trying to replace with more than one line
of text!), totally doesn't work. At all.
- 84) Uh, so if I have a selection region of text in Visual
Studio, is there no way to sort those lines? The help sucks
ass, of course; I try to search for 'sort' in just the
Visual Studio set of documents and get a million hits
for C++. Whatever.
- 83) I don't suppose Visual Studio has any little icon
that shows you when a file is read-only, does it?
Like, that would be too useful?
- 82) I'm so glad that Visual Studio is such a piece
of crap that it can get confused about how big a text
file is and break all the scroll bars.
- 81) VC++ will fill in the name of the method if you hit
tab (when the little autocomplete helper thing is turned
on), yet it will not fill out the type of the parameter
to the method. Whatever.
- 80) I kinda wish Visual Studio had some kind of revision markings
for text. Sometimes I'm flipping through files, cutting and
pasting text, and I'll hit some keys out of synch and then
it can be kinda confusing to figure out what I just pasted
wrongly where.
- 79) Is it me, or can you not re-order things in Visual
Studio's Workspace?
- 78) Trying to get Help documentation for Visual Studio is crap. I pick
"Visual Studio Product Documentation" as my Active Subset and I
still get all these crappy references to things like the MFC
CFindReplaceDialog class when all I bloody well want is to find out how to
use the Mark All stuff in the Find dialog (like, I know it marks them all,
but I want to then be able to skip from one to the next with some keyboard
shortcut, I don't want to have to scroll looking for marks) when I'm
searching through a source file. Hate hate hate.
- 77) Visual Studio has tabbed views of, like, the Build, Debug and
Find output. So I'm looking through the Debug output and I find
some string I want to search for in the project. So I do that,
and it switches me to the Find output. When I switch back to the
Debug output, you'd expect that it would have the same view as
when I left, with the text I was searching for hilighted and
everything. Instead, it seems to reset the view to wherever
the cursor was before I selected a region. Basically,
it puts me somewhere that is completely unrelated to where
I was when it (not me!) changed the view. Whatever.
- 76) The debugger in VC++ is really pissing me off. Say you put
in a breakpoint. So now there is a little red stop sign icon
in the left margin. When the program stops there, you also
see the yellow arrow that points to the current statement.
If you then tell the program to 'Go', the little yellow arrow
doesn't go away, so it looks like the app hasn't
actually gone anywhere. The only way to tell is to look and
see if the 'Go' and 'Step' toolbar buttons are grayed out
(woe if you don't have that toolbar showing). Hell, even
those are sometimes grayed out when they shouldn't be. All in
all, it is just a huge piece of excrement. And remember,
we're talking about like version six of this
bloody thing.
- 75) I'm debugging something in VC++. I'm looking at the
output from the program in the Output window. I want
to copy something out of there. I double-click on it.
Nothing is selected. Ooookayyy...
- 74) I'm using the debugger in VC++ ("Well, there's your
problem!"). I have some breakpoints. The app I'm debugging takes
focus, and then a breakpoint is hit in the debugger. The task
bar entry for VC++ flashes annoyingly and eventually the window
for VC++ changes its titlebar from the de-activated gray color
to the activated blue color. Yet the app doesn't really have
focus; typing any keys doesn't do anything! Whatever.
- 73) Oy veh. The Open dialog in VC++ will show you a list of file
name completions based on what you've typed in so far. If you use
your mouse to pick one of those, it takes a while for the thing
to actually close the menu and put the text in the field. Meanwhile,
as you move your mouse around the selection in the menu of completions
is still updating, so you are really unsure what in the hell it
finally decided to put in there. Just a completely lame feedback
scenario.
- 72) I want to copy the return value of some routine
in the VC++ debugger so I can paste it in elsewhere.
If the value were a regular variable, I'd be able
to select it and copy it. Since it isn't a variable,
the debugger doesn't want me to be able to select
it in the same way, because I shouldn't be able to
edit the value. However, it seems to also not let
me just copy the value.
- 71) You can see a dump of memory in the VC++ debugger,
but you can't then actually edit the memory, as far
as I can tell. Suck ass. Oh, wait, I'm told that maybe
it will let me edit the mems if they aren't locked by
the system. Good thing there isn't any indication of
that in the UI, or and explanation of that in the Help
(and just try searching for "memory window" and see
how helpful the results are).
- 70) VC++ has a dialog box to show you what threads are around,
but you can't leave it up while running. It would be nice to
not have to bring it up and dismiss it every time I want
to run to the next breakpoint. I mean, it doesn't even have
to update until the next breakpoint. Whatever.
- 69) Use can Alt-drag to make a rectangular selection in VC++
but you can't then replace only in that selection; the option
is grayed out in the Replace dialog box. Great.
- 68) In VC++ you can tell the debugger to start the running app
all over again from the beginning. There's a specific button for
that. It bugs me that it doesn't actually just start the app,
but breaks at the start so you have to hit the Go button again
before it actually restarts.
- 67) VC++ is apparently limited to having 2048 characters on a line.
It will forcibly wrap the line by inserting a break. That pretty
much breaks (get it?) the line, and your program stops working.
Yeah, that is really smart. Boy, look at EMACS. Look at how it
has a line limit of 2048 characters... oh, wait, it doesn't.
- 66) I bet I've mentioned this before, but it was killing me again so:
It sucks how in VC++ the Recent File and Recent Workspace sub menus
take a while to actually appear. So, like I go to the Recent Files
and then realize I want the Recent Workspaces, so I move the mouse over
that entry and then I even click... and still nothing has happened; the
Recent File sub menu hasn't even gone away. Great. Nice. Perfect.
- 65) You know, I don't think there has ever been a time
when VC++ asked me if, after I told it to run,
I wanted to build out-of-date files that I've said
No, I don't want it to build the out-of-date files.
That dialog just plain sucks ass, as far as I'm
concerned. And there's no way to turn it off?
- 64) Seems like every day I have to go through the whole
deal of blowing away all the .sbr files, and the .bsc
to get stupid poop-headed VC++ to have browse information
that is even remotely like right.
- 63) VC++ doesn't have scroll bars in the data
view windows in the debugger. So if the variable
you want to look at happens to be a long string,
you are screwed. I have to ask what the point
of a variable watch window is if you can't even see
what the values are? I mean, it goes to all the trouble
of dereferencing the pointer so you can see what the
string is, but then it just lops it off with no way
to see the rest of it!
- 62) Have I mentioned that recently the toolbars in VC++
cannot remember where I placed them last? Seems like
ever day that I fire up VC++, the toolbars are back to their
old broken stupid annoying wrong hateful location.
- 61) I love how you can use the mouse wheel in
VC++ but it doesn't realize you have moved into another
window for a second so it first scrolls the other
window you were just in rather than the one you are currently
pointing too. Because detecting which window your mouse
pointer is currently in is an NP-complete problem? Oh,
yeah, and furthermore how some windows absolutely
refuse to move until you click in them, while others
just have this stupid delay. Oh, yeah, and also
how sometimes you can roll up up up but there is still
a final line that won't show itself until you use the scroll
bar up arrow?! So, basically, there is nothing that
works totally right. Magnifique!
- 60) The debugging output of VC++ is always scrolled such
that the last line of output is in the middle. So half of
the space is completely wasted. Which means if you want to
see a larger region of stuff as the program is running,
you have to make your window twice as tall. Stooopid!
- 59) So you can change between seeing things as hex values
and decimal values in the VC++ debugger. However, it doesn't
ever show pointers in decimal, apparently.
- 58) I have two projects I'm working on; one is a branch
of another. So, they look awefully similar. I can't tell
which is which from anything VC++ displays normally.
Any file paths are cut off so I can't see up far
enough to know which project I'm in. So, I go to try
and change the name of the workspace by right-clicking
on the Workspace and getting the Properties and trying
to edit the Workspace Name field. But it doesn't let me.
Of course, it doesn't give me any explanation for why
I cannot edit it, or, thus, how I might possibly get the
ssytem into a state where I could edit it. Nuke
it from orbit. It is the only way to be sure.
- 57) I have a variable I'm looking at in the debugger in
VC++. It is a string. I am shown the pointer value
and the string value in the Variables window. Unfortunately,
I can only copy out the pointer value. Sweet.
- 56) I have a return value shown in the Variables window.
It is a pointer. I cannot drag and drop that into the Memory
window. Even though I can do that with all other pointer variable
values. Can we please start the ass-whoopin'?
- 55) Is it me, or does VC++ lack a little interpreted
expression evaluator? Hm. I guess you have to just go
into the debugger and enter it into the Watch window.
- 54) Say you are hacking up some C++ code. You run your thing, and you get
a division by zero error. If, like me, you are on a box that
doesn't have a debugger available, it would be neat if I could
search through my C++ source code for places where I do divisions. VC++
can't do that. You only get a text search, and searching for '/' isn't
going to give you useful results, now is it?
- 53) Okay, so I can pick a command in VC++ and bind a key
to it, but I can't simply find what commands are bound
to a given key stroke sequence. So if, for example, I want
to turn off some really annoying, pain-in-the-ass binding
that VC++ uses by default, it sucks. Suck! Sheesh.
- 52) Seems like every time I start up VC++, my toolbars
have moved from where I set them to be the last time
I used it. This is driving me bonkers!
- 51) Is it me, or... In VC++ you can select a method and then
hit Alt-F12 to find out where that method is defined & referenced.
It appears to me that it doesn't distinguish among different
constructors for an object, though! It seems to do that okay
for other kinds of methods with multiple signatures?
- 50) Is it me? Just me? I am trying to add a file to my
project in VC++ and it gives me a dialog box telling
me that the file already exists in the project. Does
it tell me where the bloody thing thinks it
exists? Nooooo, that would maybe be too
helpful. Instead, I want to look through the 20+
folders and zillion+ files manually to see if that
frikkin' file name is in there, somewhere. Gimme
strength.
- 49) VC++ can try to auto-indent stuff as you type.
So I'm editing a .h file and I've got the constructor
and destructor signatures. After them, I'm working
on some comments. I want the comments to be more
to the left than the signatures (since the signatures
don't have any return types, the first non-whitespace
characters on those lines are pretty far over to the
right due to the way I like to format my text).
So I hit return a couple of times after the constructor.
VC++ is trying to line up my comments with the first
non-whitespace character of the previous signatures,
so I have to hit backspace to get the comment starting
from the left. No big deal, until I hit return
after the first comment line I entered, and the cursor
on the new line doesn't line up with the comment
immediately above it. Instead, it lines up with the singatures
above that, so it is way too far to the right. Turns out,
by the way, that if I use C-style /* */ comment delimiters
rather than C++-style // ones, the indenting works better.
Update: Oh my lord in heaven. This is killing me.
If you use /* */ things work unless you hit enter
twice, to have a blank line in your comments. When you do
that, suddenly the indentation goes like way over
to the left. Too far to the left. Argh!
- 48) I'm trying to save a workspace in VC++ and it tells me that
the workspace file cannot be written to. It doesn't
tell me what the damned file path and name is.
- 47)
The VC++ Help / MSDN Library thing is killing me.
I enter "wsawait" in the Search, and it tells me
there are no topics that match. Bloody stooopid.
- 46) How come whenever I start VC++, the first time
I use the File menu it takes like 3 or 4 seconds
after I click on the "File" menu bar entry before
the menu actually appears? What is so bloody hard
about drawing a menu? Whatever.
- 45) And another thing... In VC++ when you do
Find in Files (which, for some strange copy-editing reason,
they call Find In Files), you may get results. Those results
are shown with the path to the file the individual hit is in,
followed by the text. Since the path tends to be long,
the text you are interested in is off the right-hand edge.
So you scroll over to see which text you are really interested
in. When you find something, you double-click on it to bring
up that text in a window... and then all of a sudden the
results of the Find are redrawn from the far-left side
of the results, which means you then have to scroll
back over to the right to see the hits again.
Stoooopid!
- 44) Man. Every time I explore some new functionality in some
MS app, I end up discovering "A Whole New World of Suck! (tm)"
Like, I've got a ton of windows open in VC++ and the ones
I want are not available in the Window drop-down menu.
So I go into the list-o-windows dialog and select the two
that I want. The Activate button then gets disabled (apparently
happens whenever you have more than 1 window selected), and
if I hit OK then nothing happens; those windows that I wanted
don't come to the front or anything. So what is the point
of the bloody dialog in the first place then? I mean,
if it was designed to be completely useless
then why in the heck does it have so many buttons
on it? God this stuff blows my mind.
- 43) Oh, sure, you can restrict replacing text to the
selection in VC++, but you can't do that for finding
text.
- 42) I get an assertion while running under the VC++ debugger.
It says "blah blah blah press Retry to debug the application."
So why not just label the damned button Debug instead,
you shmucks? Oh, hey, and really it says "(Press Retry
to debug the application)" which I think is funny, that
they made it parenthetical.
- 41) I'm using VC++. I search for a string in the files of the project
(well, really just some files in directories, but whatever). I find one
I want, and I edit it. The file isn't checked out. It checks it out for me.
It switches from the "Find in Files 1" tab of the output window to some
other tab that is like nine hundred tabs away from the "Find in Files 1"
tab. So then I have to use the suck-ass little scroll arrows to get
back to the damned "Find in Files 1" tab. There isn't any way to speed
it up, there isn't any scroll bar I can move, there aren't
any obvious keys to hold down to modify how quickly it scrolls through
the tabs... and then the kicker is that it doesn't even remember
my vertical scroll position in the "Find in Files 1" tab contents when
I finally get there and choose it. Okay, so who can I slap silly over
this one?
- 40) Have I mentioned how much I love the fact that the
Help in VC++ crashes the whole app like once a week?
And that when the Help is searching, you can't do
anything in the other windows? Why isn't the Help
thing just a completely different app? Sheesh.
- 39) Wow. Just, like, wow. This happens in VC++ and I
suspect it potentially happens in any Windows application with
hierarchical menus. I hit Alt-f to get into the menu bar. I
can use the left and right arrow keys to move from menu to
menu (e.g.: File to Edit to View). However, in each
of those menus the first entry is always hilighted. It isn't
that my selection is at the name-of-the-menu level, it is
actually the first thing in the currently active menu. So,
if that first thing is itself a hierarchical entry then when
I hit the right arrow... the sub menu appears, rather than
moving me to the next top level menu! Grn.
- 38) Two files in the same project with similar code. For
one of them, VC++ gives me no warnings. For the other, it
tells me that a variable hasn't been set before passing
it into a method. So what gives? Why isn't it warning
me about that in the first file?
- 37) Is it me, or does VC++ completely not handle
multi-line search & replace? Like, you have a block that
you want to replace with another block. If it can do it,
the UI sure isn't apparent. What a pathetic piece of junk.
- 36) VC++ will sometimes show you a list of choices when you hit F12
on a method name that is used in more than one class. It hilights
the one it thinks you want, and it gets it right pretty often.
The stooopid thing about it all is that the dialog
it puts up to verify that it guessed correctly has the hilighted
one generally just edging off the bottom of the list, so you can't
read it. So you pretty much always have to scroll to check. Why
didn't they just have it in the middle or at the top of the
visible list? Sheesh.
- 35) This happens a lot: VC++ is set up to use source control
(in this particular case, Perforce). I do some stuff with Perforce
outside of VC++ (like sync to the latest version of everything)
and then I go back to VC++ to do work. I click on some menu
and then just as I'm about to pick the thing I want from the menu,
VC++ decides to put up a dialog saying "hey, I noticed that some
files have changed, do you want me to reaload them?" The kicker is
that the dialog box appears beneath the pull-down menu I was working
with, yet also steals all focus, and VC++ doesn't get rid of that
pull-down. So I'm left facing: a menu on top that refuses to take
any input, so there is no way to get rid of it, a dialog box
beneath that with only part of the dialog box showing (so I can't
even read what the dialog box is about, or what the buttons are -
it is only because I've used VC++ enough that I know what it
probably is), and which has stolen all focus and won't let me
do anything else until I've told it what to go and do, and then
the app window below the dialog box which obviously isn't getting
any input. It's truely beautiful.
- 34) I'm in a file in VC++. I'm looking at a constant like 'WAIT_FOREVER'.
I want to know what that constant's value is. So I hit F12 to try and
get to wherever it is defined. Doesn't work (instead, I get shown where
it is used as a default parameter value in a method). Nice. Yeah,
that's so really just what I wanted it to do.
- 33) VC++ (and probably lots of other compilers, if not all)
doesn't let you step into a virtual function table. I think
I would have noticed that I was calling a pure virtual function
a lot sooner if stepping into the call showed what happened in
the vftable. I mean, the lookup is happening at run time, no?
So shouldn't the debugger let me see that action? Sheesh.
- 32) I've got an enum. VC++ is nice enough to show me its
name in the debugger. However, it refuses to show me its
integer value. At all. It seems. Jerks.
- 31) Unix grep lets you get back just the matching file names,
once. Like, if a file hits more than once, you only see the
file name once. VC++'s Find in Files doesn't have that. Suck
ass.
- 30) Is it me, or is setting a breakpoint in a for loop in VC++
just completely stupid and broken and wrong and dysfunctional?
Like, I just want to put a breakpoint on the last thing in
the loop, the incrementer. It seems to stop there whenever
it goes through the for loop, like, even the first time, when
the incrementer shouldn't be called at all. There's just seems
to be no way to differentiate in VC++. Grrrrn.
- 29) So VC++ thinks, on the one hand, that I have a file checked out
(there's a little red check mark next to the file name) but then when I go
to edit it, it rings the bell and won't let me. So it apparently was smart
enough to figure out that the file status changed, and that I'm not
allowed to mess with it. So how about asking me if it should update it's
source control status, since that is pretty much what I always want to do
in this situation?
- 28) Controlling breakpoints in VC++ is a huge pain in the
ass. The UI is completely stupid.
- If there is no breakpoint on the line,
the menu entry reads "Insert/Remove Breakpoint"
even though there is nothing to remove.
- If there is a breakpoint, and
it is disabled, you again get the "Insert/Remove"
which is again really stupid, and
when you pick that it just turns the breakpoint
back on. Only then can you remove it.
- The Build MiniBar has a button for "Inserting/Remove
Breakpoint," but nothing for toggling it.
- (more strewn below)
- 27) How do I get VC++ to tell me what a key combination
does? Like, I want to assign something but I don't know
if it is already being used for something else. Suck!
- 26) Sure, VC++ has auto completion of things but it falls kinda
short of orgasmic:
- It doesn't fill out the signature when you are
writing the method in your .cpp file. It knows everything
from the .h, it even shows it to you, but it
refuses to just put that stuff in for you when you hit tab.
- If you have Foo() and FooBar(), you type F, hit tab
and get Foo with no option of getting FooBar, as far as
I can tell.
- 25) The "Find in Files" dialog in VC++ has a little pop up menu
next to the text field that lets you add regular expression stuff
to your search. The menu that comes up appears over the Find
and Cancel buttons. When you click on the little tab that brings
up the regex list, it doesn't make the list go away. It just redraws
it. So you have to click somewhere else entirely to get the damned
thing to go away so you can hit the Find button. Whatever.
- 24) Oh, the hate. VC++ has tabbed output windows, including the results of
Find in Files operations and Build messages. Say you are going through and
fixing up something that occurs in lots of files. You do your Find in
Files and get the list of stuff. Then, you are trying to edit the files.
Say the files are under source control; whe you go to make the edit, it
brings up a dialog asking you if you want to check it out. When you check
it out, it also switches the tabbed view to the Source Control output that
shows what, e.g.: the Perforce server said. So now when you switch back to
your Find in Files window, the cursor is no longer where you had it, like
part way through the huge list of hits. No, now it is back at the top and
you have to find where you were a second ago. This is rather
frustrating.
- 23) VC++ apparently isn't so good about warning you when
you use unsigned ints with signed ints. Nice.
- 22) VC++ says that an int declared inside a for statement
is visible outside it. Uh, shyeah, whatever.
- 21) It bugs me that the debugger in VC++ doesn't show bool
types as 'true' and 'false' but as '0x01' and '0x00'. Maybe
I just dislike C++.
- 20) Since new/delete causes so much trouble when debugging
(like, screwing up when you use new/delete is pretty common),
how about letting me set a watch that says 'if memory XYZ
is ever deleted, break!'? (Maybe you can, but I sure haven't
figured out how.)
- 19) The Watch window in VC++ is stupid; you should have to
double click to edit the contents of the Name so you can
easily delete entries
- 18) The little windows in VC++ suck a lot of ass because they
do not give you much room for viewing their contents, and they
don't tend to wrap the text, and they don't tend to give you
a horizontal scrollbar. So you have to futz around with resizing
them just to see the data. I mean, what is the point in having
a window for viewing data when it sucks so hard?
- 17) Once again, VC++ is killing me. I've got a linked list. The items
inside it inherit from a CLinkable class. They have a single char as
member data. When I look at the items in the debugger, part of the time it
doesn't show me the member data. The whole point of the char was
to give me something to more easily see what was going on for testing, but
since this piece of excrement doesn't show me the data it doesn't do me
much good, now does it? I assume the problem is that inside the routine,
it is just a CLinkable rather than the subclass. But, the
debugger is showing me that it knows it is really of the subclass
type, but then it limits what it shows to the stuff defined in the
superclas. Ugh.
- 16) So the Address/Memory window in VC++ lets you choose Byte,
Short or Long hex format. However, if you just open a binary
file and VC++ shows it to you as a hex dump, you do not have
those options in that window.
- 15) VC++ command icons suck ass. There is an icon on a toolbar that means
'Build' and only does out-of-date files. There is another icon in the
Build menu does 'Rebuild All' and hits all files. Unless you look really
closely, these icons look pretty much exactly the same. Dumb ass crap, if
you ask me. Remember, it should at least be the smallest
significant difference.
- 14) Sometimes, you can toggle the hexidecimal display mode of
the Context / Stack window in VC++, and have nothing change;
everything stays in hex!
- 13) So the Address display in VC++ is - can you guess? - yes, a
crock of crap. It always wants to put the address you enter
into the middle of the display, so you can see the data around
it, not just after it. (Actually, I'd like to point out that
sometimes it just puts your address at the top of the dump
rather than in the middle, and it appears to pretty randomly
decide which to do.) Okay, that's fine, but it doesn't hilight
your address in any way. So, then you can do some math in the
Address field e.g.: 0x002f469e + 0x16, which works
but: your address is again in the middle, with no
hilight - so you'd have to do the math to figure out which
address that equation works out to be, defeating the
whole purpose of having the math in there in the first
place.
- 12) You can undock some windows from VC++. But you cannot
undock actual file windows. Like, so you could look at two documents
side by side or, as I want, on two different monitors. Whatever.
- 11) My lord. Trying to set up conditional break points
in VC++ is so completely stupid. Wow. Like, it is as if
they designed it to be as far away from the
right UI as possible. I'm pretty impressed!
- 10) The way you set and clear breakpoints in VC++ sucks
a lot. Like, the menu item changes its text, and also
what it does. And it is hard to see where you right-clicked
sometimes, so you end up marking the line before or after
the one you really wanted. Surely other people have noticed
that the UI is kinda frustrating? I'd suggest letting me
just click on the red spot to toggle its state or something
nice and direct like that. I'm really hating the current
right-clicking method.
- 9) Just trying to view some memory in VC++ sucks so much ass.
I have a pointer, and I want to see a bunch of data from there
on out. The regular Watch or Variables windows refuse to show
me more than the first element. So I bring up the Memory window.
Of course, I can't just drag a variable name onto that window
to have it set the address there because that would be
useful. Not to mention that the window just sucks because
it doesn't even like remember the last few memory locations
you entered into the Address field.
- 8)
I wish VC++'s Find and Replace dialog had an option to
replace just until the end of the file, rather than
like me having to do it interactively so I stop it
when it loops around, or me having to pre-select
from a point on down to the bottom of the file. It
is especially cool when VC++ decides not
to scroll the window to show me where it has found
a match. Like, it is merrily matching things but
they are outside the current viewport. Normally,
it scrolls so you can see what it found, but sometimes
(maybe when you switch focus some?) it just bugs out.
Piece o' crap. Oh, wait, I see what is happening:
the things it found are underneath the dialog box
so I can't see them. So Word solved the problem by
actually moving the dialog box around which
is pretty clearly the completely wrong thing
to do: instead, the text should scroll so that I
can see the match; so that it isn't hidden under
the dialog box. These people, sheesh. Hey, wait!
There's more! It looks like another problem
is that if the window with the text in it loses focus,
then it doesn't draw the selected text with the hilight
background color. Sweet! So it is merrily matching,
but I don't actually get to see anything.
The mind boggles.
- 7) So pretty much whenever I hit the Execute Program toolbar button
in VC++, it asks me if I want to build out-of-date files. Why isn't
there a check box in that dialog saying "don't ever ask me this
bloody question again?"
- 6) Boy, I sure am glad that VC++ doesn't seem to warn me about
empty while statements. Yeah!
- 5) I left off the parenthases from the definition of a destructor
once, and VC++ couldn't handle it at all:
COMPILER ERROR
(compiler file 'msc1.cpp', line 1794)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
Error executing cl.exe.
I mean, it would be nice if
it could notice something as silly as some missing parens and
warn me about them, rather than just completely exploding.
- 4) When you have something like Foo* var; in VC++,
and the cursor is over the 'v' in 'var' and you do Ctrl-backspace,
I would expect it to just delete the space. Unfortunately, somebody
decided it would be a good idea for it to also delete the '*' which
just seems really wrong to me. (So, without the '*', it actually
deletes the Foo... hm. I guess that makes sense. Maybe I wish that
whitespace were treated as a word? But, like, four tabs in a row
with some spaces after them would all be treated as a single chunk,
so that would all get deleted at once if you did Ctrl-backspace.)
- 3) Hey, now this is impressive: VC++ has gotten itself
all locked up, probably trying to do something with Perforce.
So I bring up the Task Manager to see if it lists the application
as not responding. Ha ha. It doesn't even list the application
at all. Of course, there is no status from VC++. Eventually
it came back (I was afraid of killing it - although I'm not sure
how I would since it didn't appear in the application list, and
I didn't see anything obvious in the processs list) but the entire
time it did nothing to tell me "hey, don't kill me, I'm just waiting
on Perforce." Whatever. Everything is a tub of crap.
- 2) I have a Workspace in Visual C++. The project has multiple folders
under the Source Files and the Header Files sections. When I add files to
the project from disk, it will put .h files into the top level Header
Files section. The files actually belong in a sub folder (why it can't
figure it out since it knows the path to the files I don't know) but it is
okay because by putting them at the top level they are seperated from
files already in the project. Of course, that is only because in this
project we don't have any such top level files, so that is a stroke of
luck. Unfortunately, .cpp files are being put, not into the top level
Source Files, but into a sub folder. The kicker is that they
are being put into the wrong bloody folder. So VC++ manages
to screw things up in every possible way, and absolutely guarantees
that it will not do the right thing. Incredible. Genius!
- 1) MS VC++ kinda sucks in some pretty dumb ways:
- It apparently cannot blink matching parens while you are
typing.
- It apparently cannot warn you when you have if( x = NULL
) rather than if( x == NULL ).
- It has a Window list. There is no useful order to it, however.
Maybe it is the order in which the files were opened, whatever, it is
useless to me. It should be sorted alphabetically by the name of the file,
not including the path. Then it would be useful.
- It takes whatever word the cursor is in and puts that in the
text field. And there is no way that I can find to turn it off.
- So I know there is a keyboard shortcut for Find Next.
So why the hell isn't it shown when I right click on the Find Next button
and choose "What's this?" Where the hell do I have to go to find out what
the obscure shortcuts are? So I look for Help, and find "Finding Text in a
Single File / To start a find without using the Find dialog box" which
goes on to never mention keyboard shortcuts:
- Type or select a search string in the Find box on the Standard toolbar, and press ENTER.
Note You can use regular expressions with the Find box on the Standard toolbar if you have previously selected the Regular expression check box in the Find dialog box.
So then, it goes on to talk about the Keyboard Map, which should show you
what commands use what key combinations. Of course, it expects you to know
what the internal command name is, and lists all the whacky
commands that exist, alphabetically, for a given menu. This is just
too far removed from how a user has experienced the commands,
namely getting to them via menus, which is exactly the interface they
should have for finding out what the blasted shortcuts are, like I wanted
in the first place.
- This is awesome! The MSDN Library interface gives you
a Search. The window is split vertically into two frames. The results of a
search are given in the left frame, in a window that has columns like
Title, Location, etc. If the frame split is such that the search results
window is narrow, the vertical scrollbar goes away.
- Say someone has put a bunch of classes in a single file. I
want Visual C++ to give me a way of browsing those classes. I
don't want to see all the other classes from all the other files
in the project. How the hell do I do that?
- If you are doing a Find in files in VC++ and you hit the Esc
key, it doesn't stop the search. Instead, it just hides the output window.
Brilliant.
- The Breakpoints command is under (get this) the Edit menu, not
something more obvious like the View / Debug menu entry... Where
everything else like that is kept.
- The memory viewer in Visual C++ doesn't have a base 10 (or
base 8) mode?!
- In Visual C++, you can have a window with a scrollbar and
stuff in it. If the last thing in the window is wider than the window and
you mose over it, a tooltip type thing comes up to show you the full text.
The kicker is that the text overlaps the down button on the scrollbar, and
you can't click on it! You have to wait until the tooltip goes away.