i can't believe it's been over nine months since i've blogged anything.
i guess i shouldn't be surprised, last time i blogged we had just
finished work on beta 2 and now we're getting to that point for RTM
("release to manufacturing", otherwise known as the whole taco). i
guess i shouldn't say "finished", but my part in it is pretty much
wrapped up, so it's done to me.
lately i've been trying to use the VS text editor, mostly on C++ code and a little C#, and i have to say: could this thing be
any more useless? i'll admit it now, i'm a vi user (vim, actually),
and i find trying to use a non-vi editor extremely trying. but on top
of that it seems to be missing the most basic functionality for a
programmer's editor. intellisense, autocompletion, all that stuff is
great, but what good is it when i can't do basic text editing chores
without getting RSI?
i set about trying to write some VS macros to alleviate some of my
pain. (of course writing VB code causes an entirely different kind of
pain, and i'm not sure it's entirely worthwhile enduring it, but,
well... time will tell anyway). some of the shortcomings of the editor
that i wanted to 'fix' include:
1) no "go to next function"/"go to previous function" navigation
2) no functionality to quickly drop/goto "named" bookmarks (ala vi, brief, emacs, just about any decent programmers editor ever)
3) no "center display to cursor" function
4) no ability to cut/copy/paste to and from "named" buffers (again ala almost any decent editor ever created)
5) no functionality to go to the start or end of a function
6) 5) no functionality to go to the start or end of an #if/#ifdef block
these are operations i constantly perform while navigating through
code, and the lack of them is painful to my productivity. perhaps if i
could replicate them in the VS text editor then using said editor
wouldn't be quite so painful...? that remains to be seen.
i wrote macros to cover these six "missing features", and found that
the macro for #3 is actually not needed, as there is a command,
"Edit.ScrollLineCenter" that does this, I just needed to map it to a
key. in writing these macros I was unable to discover any programmatic
access to the breakpoints collection or the clipboard "ring" that VS
maintains. because of this I had to write the second and fourth items
"from scratch" and they don't really work all that well. (the bookmarks
aren't real VS bookmarks with icons etc, and after using my "paste from
named buffer" macro undo/redo don't work exactly the way you'd want).
c'est la vie.
i also found out that trying to figure out what keystrokes are already
in use and map commands to new ones is a very frustrating and
RSI-inducing experience. the dialog for doing these operations
(tools->options->keyboard) is completely inadequate. it provides
no way to see what keystrokes are used for what in one central list, no
way to quickly unset a keystroke that is already in use and when you
need to set a lot of keystrokes it just about kills you. (I had to set
(26 * 5) + 7 keystrokes for my new macros and let me tell you, my
wrists are killing me right now).
in all, the VS editor doesn't seem designed to actually draw customers.
it seems more like it was written to be just "good enough" to pass
muster. the idea being, I guess, that all the "cool" features and
"integration" that VS provides would be enough to actually get people
to use the product. the problem with this, from my perspective as a
developer, is that the text editor itself is the most important aspect
of the IDE. when actually writing code my productivity is largely gated
on how efficiently I can use the text editor. now, i'm the first to
admit that most of my job no longer consists of writing code (were that
it wasn't so!), but nonetheless, expecting developers to use this
sub-standard offering seems ludicrous.
but perhaps i'm overreacting? how do other developers find the VS text editor? am i alone in my assessment? opinions anyone?