Visual Studio 11 Developer Preview: Search Everywhere

Visual Studio 11 Developer Preview: Search Everywhere

Rate This
  • Comments 17

During usability studies on previous versions of Visual Studio, we found many users were spending quite a lot of time browsing long lists of data from files in Solution Explorer to controls in the Toolbox, errors or warnings in the Error list, menus, bugs, etc. More often than not you know what you want but finding it in the list can be tedious. Visual Studio 11 Developer Preview aims at increasing productivity by reducing the amount of time it takes to traverse through these lists by adding search to a number of common windows.

Video: VS11 Developer Preview Search Everywhere

Search in Solution Explorer

image

Location: Between Solution Explorer toolbar and Solution

Keyboard Shortcut: Ctrl + ;

Navigating through huge projects or solutions to find the file, class, or member you want is extremely easy with search in Solution Explorer. Pressing Ctrl+; will place focus in the Solution Explorer search box and allow you to filter down the tree view. You don’t need to remember the entire name of a file or even how it starts, because this search is a ‘contains’ search. So as long as you know any part of the substring, type it in (no need to press ‘enter’ – Search starts the moment you start typing to give you instant results) and all results that ‘contain’ the keyword will show.

image

Pascal Case search is also enabled in Solution Explorer. Pascal Casing is when the first letter of every word in the name of a folder or file is capitalized. By typing in just the capitalized letters you can search for the class or member. For example, search “BJG” for the class name BlackJackGame. NOTE: The Developer Preview doesn’t support Pascal Casing on projects, files, or folders yet – only language nodes are searchable through Pascal Casing. We are looking to add full support later this release

image

Search in Error list

image

Location: Top right corner of Error List window

Finding the right error in the Error List can be challenging at times, so for VS11 we’ve added a search box to the Error List to help you find the right error, warning, or message. The search will look through all columns, not just the error description, thus allowing you to easily scope the results through a file or project name.

image

As a complement to search, the Error List now has a filtering button in the top-left which allows you to scope the results in the list to the errors, warnings, and messages in the Open Documents, Current Project, Current Document. When you switch files, the filter is applied to that file allowing you to zero in on just the files you are interested in.

Location: Top left corner of Error List window

image

image

image

Search in Other Windows

We’ve talked about two of our favorite new search additions, but you’ll find that search has been added to a number of places throughout VS, including:

  • Add Reference Dialog
  • Team Explorer – includes search filters for narrowing down the bug list.
  • Quick Find
  • Intellitrace Summary Page
  • Parallel Watch Window
  • C++ Graphics Event List
  • And More

Quick Launch

image

Location: Top right corner of IDE

Keyboard Shortcut: Ctrl + ` [back quote]

Probably the most useful new search box is the one in the upper right corner of VS: Quick Launch. The keyboard shortcut to place focus in Quick Launch is Ctrl + ` [back quote]. (Back Quote shares the key with ~ on US keyboards, and is to the left of the ‘1’ button). NOTE: You can change the keyboard shortcut via Tools->Options->Environment->Keyboard and searching for “Window.QuickLaunch”.

Quick Launch will search over commands, options, and open documents within VS. To create a new project, just type “new project” and press ENTER. Too add a class, just type “Add Class” and press ENTER. Quick Launch makes it very easy to execute actions inside VS. Additionally, the keyboard shortcut for the commands will be listed next to the result, allowing you to quickly memorize keyboard shortcuts.

image

image

Quick Launch will also maintain a most recently used (MRU) list of your frequently executed commands allowing common results to show up first in your search results. While Quick Launch ships with these out-of-the-box categories, we support the ability of 3rd parties to add search categories as well.

image

For detailed coverage on Quick Launch functionality check out Zain Naboulsi’s blog here.

Feedback

We’d love to hear from you! All customer feedback is reviewed and constantly used to improve the product, so please let us know what you think about these new features in Visual Studio 11 Developer Preview.

If you encounter a bug or find something working different than you expect, please file a bug by logging onto Microsoft Connect. If you have a suggestion, please add it to User Voice and also vote on other suggestions so we know what is important to you.

Thanks!                                                                                                                                                                                                     RadhikaTadinada                                                                                                                                                                                     Program Manager (Visual Studio Platform)

Leave a Comment
  • Please add 5 and 5 and type the answer here:
  • Post
  • FYI, in the "Quick Launch" section, it says:

    Keyboard Shortcut: ***Ctrl + ;***

    ...and later:

    The keyboard shortcut to place focus in Quick Launch is ***Ctrl + ` [back quote].***

    (feel free to delete this comment)

  • thanks... blog is updated to show Ctrl + ' [back quote] consistently

  • This is really great news as we've waited for search capabilities in VS for several years.

    What about Toolbox though? It's the one tool window which I miss search most in.

    Additional question regarding the search boxes: Does Ctrl+Backspace work correctly in them?

  • @Ooh - :) Yes, Search has been added to toolbox too. [Ctrl + Backspace] deletes the whole search keyword.

  • Please do a search-and-replace on this post to change Camel to Pascal :)  I'd normally not comment on something like this, but I don't want people getting the names wrong and confusing themselves or others. :)

    msdn.microsoft.com/.../ms229043.aspx

    Notice that when something is 'camelCased' there's a hump in the middle (like a camel, get it?), so even if you don't know what the other casing style is, camel case should be somewhat intuitive. :)

    One of the bits of info that makes this mistake quite painful (IMHO) is that the reason it's called PascalCase in the first place is because of Anders, creator of C# and technical fellow in DevDiv, so an official VS blog post really shouldn't get this kind of thing wrong. :)

    blogs.msdn.com/.../67024.aspx

    www.microsoft.com/.../default.mspx

  • Two other places that really need a "Find-as-you-type" box are:

    1. The Exceptions window

    This window seems archaic, and should be redesigned. Using it from the keyboard -only is clumsy. A context-menu on the listed exceptions could make it easier to check/uncheck the options. Also, perhaps, a "recent exceptions" list.

    2. The Options window

    There are more and more options than ever. It would be nice to have a search box to type the name/abbreviation of the specific option I'm looking for. While you're at it, it'd be nice to be able to resize that dialog. Also, an Apply button would be much more convenient than having to close it to save my settings.

  • @Mystic Taz - Thanks for the suggestions! If you could, please feel free to add them to our User Voice site where we track all our user suggestions: visualstudio.uservoice.com/.../121579-visual-studio

    This will help us track them and also allow other users to vote and comment on them. Thanks again!

  • @Mystic Taz -

    1. Options Search: Quick Launch is enabled to search Tools > Options even though Options itself doesn't have search. You can also scope your resultset to show results just from Options by typing '@opt ' in front of search keyword. e.g. @opt quick launch

    2. Options resize: Thanks for the suggestion. We have received a lot of user feedback on this and are tracking it on the UserVoice site here (visualstudio.uservoice.com/.../2028623-make-the-options-dialog-resizable). While the fix is not trivial we do have this issue as part of our backlog.

    3. Apply button in Options: Thanks for the suggestion. Please add it to the User Voice site where all user suggestions are tracked allowing other users to vote and comment on them.

    Thanks for reading / watching!

  • @James Manning

    Thanks for the feedback - blog text has been edited.

    Usage:

    If you search for the capital letters in a string it will match. For example

    1. BlackJackGame - searching for 'BJG' will work - as will 'JG'

    2. playerNameTextBox - searching for 'NTB' will work

    *NOTE - video hasn't been changed, so it still says camelCasing, while (technically) i mean PascalCasing :).

    Thanks for reading / watching!

  • About time :-D

  • That embedded video doesn't show up in IE9 even if your Youtube preference is set to the HTML5 beta - so much for the beauty of the web :-)

    For Solution Explorer search, could you please fix this issue: connect.microsoft.com/.../keyboard-shortcut-for-search-solution-explorer-doesnt-work-properly-if-pane-is-hidden

    The keyboard shortcut doesn't actually take you to the search field if the pane is hidden.

    As for searching options through quick launch, why doesn't it search the names of the individual options in addition to the page tree? That would be much better than an arbitrary list of keywords defined by each options page's author. Surely users are overwhelmingly going to be searching for a particular option, rather than which page it's on. The list of fields must be available, why can't the code just run through those as well?

    It's clunky that there's no search field in the options dialogue itself though. I suspect many users won't notice that quick launch works for this. Perhaps the existing UserVoice item requesting this feature could become a request for a search field here: visualstudio.uservoice.com/.../2071741-add-search-in-options-menus

    And, in case people didn't see the conversation in the other blog post (blogs.msdn.com/.../visual-studio-11-developer-preview-quick-launch.aspx) the default keyboard shortcut for quick launch isn't necessarily ctrl+backquote - it depends on your keyboard layout.

  • @Andrew McDonald -

    Thanks for your feedback! and for pointing out the difference in keyboard shortcut for quick launch depending on the layout.

    - Not sure why the video isn't working for you, i'll look into it and get back ASAP. [seems to work for me on IE9]

    - The connect bug 'keyboard shortcut doesn't work if Solution Explorer is hidden' is on our plate and we are looking at a fix for it (thanks for pointing it out)

    - Search in Options is on our wishlist but we didn't have the schedule bandwidth to fit it in. The Options pages are in a format where it is difficult to parse them. So, considering the cost of changing the format of all Options pages where they are parsable vs allowing options page owners to surface keywords, we chose to go with the latter.

    Thanks!

    Radhika Tadinada

  • Whats about the properties window? It would be nice to search it too. When you are dealing with WinForms GUIs it's a real nightmare to scroll to the whole list of properties just to find a single one.

    Regards

  • Hi James,

    Thanks for the suggestion.

    We have considered enabling search for Properties Window, but don't have it enabled yet. It is however part of our backlog.

    If you'd like, please add this to our UserVoice site visualstudio.uservoice.com/.../121579-visual-studio where we track all suggestions. This will give other users an opportunity to vote and comment on it.

    Thanks!

    Radhika Tadinada

    Program Manager

    Visual Studio Platform

  • @Andrew: > "As for searching options through quick launch, why doesn't it search the names of the individual options in addition to the page tree? That would be much better than an arbitrary list of keywords defined by each options page's author."

    The main reason why this isn't done as you suggest is performance.

    Option pages are identified by GUIDs, and packages implementing those have full control of the content presented.

    Some pages are implemented as Win32/native dialogs, but others are Windows Forms or WPF windows. The shell doesn't know how to instantiate such managed pages (they may need additional constructor parameters) to load them from resources and search the control names.

    Even for native dialogs (where it's possible to load DIALOGEX templates from resources without instantiating a class), the shell doesn't have access to the resource IDs of individual pages, and it's possible the package owners set names of controls on the page at runtime composed from other string resources.

    Therefore, to search the individual options displayed by option pages, we'd have to ask each package to instantiate their pages. This has big performance problems:

    1) First, that will increase VS memory consumption. We'd have to load in memory all packages that have Tools/Options pages (and their resources)

    2) Some pages are very slow on first creation, e.g. WindowsForms or Workflow Designer pages may take 15 seconds (they deserve a bug for this)

    3) Once the pages are created, searching ther content may be slow, too. E.g. enumerating controls in WPF pages can only be done with UIA (msdn.microsoft.com/.../ms747327.aspx) or with MSAA (msdn.microsoft.com/.../ms971310.aspx) and  this process is not going to be fast.

    To give you some ideas on the perf implications, you can try opening Tools/Options dialog and instantiate all pages by navigating the tree with arrows keys.

    It took me 90 seconds to instantiate all pages. During this time, the working set was increased with ~230MB. (Before opening the dialog, VS had 95M working set / 48M private working set / 67M commit size, and after instantiating all pages, it had 322M working set / 200M private / 235MB commit size).

    These numbers are unacceptable for the first QuickLaunch search.

    Therefore we allow packages to provide Keywords strings where they can describe the options available the in their pages.  These strings are also loaded from a resource cache, so we don't have to load all packages/their resources.

    For Beta release we'll be improving the Tools/Options pages Keywords, and we hope you'll have a better search experience (if not, we'd like to hear about it).

    Alin

    VS Platform Developer

Page 1 of 2 (17 items) 12