Thanks to Brittany on the Visual Studio Editor team (blog here) for a great tip on moving through code. There are some great tips in there on the theme of ‘Navigating Code’. Some points are new, some we’ve been able to chew on for the last few versions of the IDE.
I’ve already mentioned symbol highlighting in a previous post. This is where you see all instances of a symbol when your caret is in the symbol:
Here’s the tip part: you can use CTRL+Shift+Up/Down Arrows to navigate between the highlighted texts.
There are a couple of ways that these features could be even more useful and allow even easier movement between symbols, token use and files.
I’ve posted before on my desired ability to navigate through code easier using a thumbnail view of the code. If that thumbnail were in a persistent view like other tool windows you’d also be able to see the highlights as you moved from symbol to symbol.
Also, and I would have to think through this more, but it might be useful to be able to move not just through the current file when navigating, but into other files as well. The current behaviour is to loop back to the beginning of the current file.
We’re in WPF, though, right? Let’s do some cool stuff. First, give me an adorner of sorts when I activate the CTRL+Shirt+Arrow symbol browsing, like in Office 2010’s copy/paste feature or the CTRL+. to help with the namespace/object binding in Visual Studio. Show me the count of uses, give me a link to the definition and make it keyboard accessible. Have a button that will pull up the find symbol results.
I am a huge supporter of bringing things into context and providing users the highest level of manoeuvrability possible in their work.
If you’re on the customer, you should see invoices. Click on an invoice to see products, click on a product to see orders. Click on an order and see company. Click on a company and see contacts. Click on a contact and see the invoices their name is tied to. Lather, rinse, repeat.
As far as I can tell, the IDE team has opened a Pandora’s Box of sorts: by tying into one of the most advanced, extensible UX frameworks we’ve seen as developers (that being WPF), they’ve now got years of development to do with the innovative features that have not yet been developed.