Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I open links in Visual Studio in my web browser and not in Visual Studio?

There is an extension that provides this behavior called Open in External Browser. It works in Visual Studio 2012, 2013, 2015 and 2017. (An old version available on GitHub supports Visual Studio 2010.)

Thanks goes to Dmitry for pointing this out in his answer to this similar question.

EDIT: The Visual Studio team is finally starting to work on putting this right into Visual Studio. Status of this feature request just moved from "Under Review" to "Started".


I could not find a setting for this so I wrote a simple macro that you can use. You can bind this to a key-combo like all macros. This will get the job done until we get a better answer.

Sub OpenURLInChrome()
   'copy to end of line
   DTE.ActiveDocument.Selection.EndOfLine(True)

  'set var
   Dim url As String = DTE.ActiveDocument.Selection.Text

   'launch chrome with url
   System.Diagnostics.Process.Start( _
      Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) _
      + "\Google\Chrome\Application\chrome.exe", url)
End Sub

Just put your cursor in front of the url and run the macro...


This is an improvement on the macro suggested above by mracoker.

This macro looks for a URL on the current line and does not capture text after the URL as the previous answer did.

Sub OpenURLInChrome()

   ' Select to end of line
   DTE.ActiveDocument.Selection.EndOfLine(True)
   Dim selection As TextSelection = DTE.ActiveDocument.Selection

   ' Find URL within selection
   Dim match = System.Text.RegularExpressions.Regex.Match( _
      selection.Text, ".*(http\S+)")

   Dim url As String = ""
   If (match.Success) Then
      If match.Groups.Count = 2 Then
         url = match.Groups(1).Value
      End If
   End If

   ' Remove selection
   selection.SwapAnchor()
   selection.Collapse()

   If (url = String.Empty) Then
       MsgBox("No URL found")
   End If

   ' Launch chrome with url
   System.Diagnostics.Process.Start( _
      Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) _
      + "\Google\Chrome\Application\chrome.exe", url)
End Sub

To use: place cursor somewhere before the URL; Run Macro (I mapped to Ctrl-Shift-G)