Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Following up on Josh's answer. This VS Macro will search StackOverflow for highlighted text in the Visual Studio IDE. Just highlight and press Alt+F1</p> <pre><code>Public Sub SearchStackOverflowForSelectedText() Dim s As String = ActiveWindowSelection().Trim() If s.Length &gt; 0 Then DTE.ItemOperations.Navigate("http://www.stackoverflow.com/search?q=" &amp; _ Web.HttpUtility.UrlEncode(s)) End If End Sub Private Function ActiveWindowSelection() As String If DTE.ActiveWindow.ObjectKind = EnvDTE.Constants.vsWindowKindOutput Then Return OutputWindowSelection() End If If DTE.ActiveWindow.ObjectKind = "{57312C73-6202-49E9-B1E1-40EA1A6DC1F6}" Then Return HTMLEditorSelection() End If Return SelectionText(DTE.ActiveWindow.Selection) End Function Private Function HTMLEditorSelection() As String Dim hw As HTMLWindow = ActiveDocument.ActiveWindow.Object Dim tw As TextWindow = hw.CurrentTabObject Return SelectionText(tw.Selection) End Function Private Function OutputWindowSelection() As String Dim w As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput) Dim ow As OutputWindow = w.Object Dim owp As OutputWindowPane = ow.OutputWindowPanes.Item(ow.ActivePane.Name) Return SelectionText(owp.TextDocument.Selection) End Function Private Function SelectionText(ByVal sel As EnvDTE.TextSelection) As String If sel Is Nothing Then Return "" End If If sel.Text.Length = 0 Then SelectWord(sel) End If If sel.Text.Length &lt;= 2 Then Return "" End If Return sel.Text End Function Private Sub SelectWord(ByVal sel As EnvDTE.TextSelection) Dim leftPos As Integer Dim line As Integer Dim pt As EnvDTE.EditPoint = sel.ActivePoint.CreateEditPoint() sel.WordLeft(True, 1) line = sel.TextRanges.Item(1).StartPoint.Line leftPos = sel.TextRanges.Item(1).StartPoint.LineCharOffset pt.MoveToLineAndOffset(line, leftPos) sel.MoveToPoint(pt) sel.WordRight(True, 1) End Sub </code></pre> <p>To install:</p> <ol> <li>go to Tools - Macros - IDE</li> <li>create a new Module with a name of your choice under "MyMacros". Or use an existing module.</li> <li>paste the above code into the module</li> <li>add a reference to the System.Web namespace (for HttpUtility) to the module</li> <li>close the macro IDE window</li> <li>go to Tools - Options - Environment - Keyboard</li> <li>type "google" in the Show Commands Containing textbox. The SearchGoogleForSelectedText macro should show up</li> <li>click in the Press Shortcut Keys textbox, then press ALT+F1</li> <li>click the Assign button</li> <li>click OK</li> </ol> <p>This is all taken from Jeff Atwood's <a href="http://www.codinghorror.com/blog/archives/000428.html" rel="noreferrer">Google Search VS Macro</a> post, just modified to search StackOverflow instead.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload