Files via lokale HTML-Links öffnen

Visual Studio ist – unter vielem anderen – ein ganz passabler HTML-Editor, wenn man sich damit anfreunden kann, direkt in HTML zu arbeiten. Es muss ja nicht immer gleich eine Riesending wie Microsoft Expression Web oder Dreamweaver sein für Modifikationen an ein paar Seiten.

Eine Funktion habe ich allerdings so vermisst, dass ich sie per Makro nachgerüstet habe: eine Funktion, um einem lokalen HTML-Link zu folgen und das referenzierte File zu öffnen. Hat man z.B. im HTML-Text das folgende:

<a href=“sample.html“>

sollte es auf ganz einfache Weise möglich sein, dem Link zu folgen und das File sample.html in Visual Studio zu öffnen, auch wenn man kein Projekt hat, das dieses File enthält, weil man einfach mit einer Directory voller HTML-Files arbeitet.

Mit dem folgenden Makro braucht man nur den Cursor in den Filenamen zu positionieren und dann das Makro zur Ausführung zu bringen. (Am besten konfiguriert man natürlich eine Tastenkombination oder mindestens ein Icon in einer Toolbar hierzu.)

  Public Sub OpenFileAtCursor()
    Dim activeDoc As Document
    Dim sel As TextSelection
    Dim line As String
    Dim fileName As String
    Dim basePath As String
    Dim cursorColumn As Integer
    Dim startPos As Integer
    Dim endPos As Integer
    activeDoc = DTE.ActiveDocument
    sel = activeDoc.Selection
    cursorColumn = sel.AnchorPoint.LineCharOffset
    sel.SelectLine()
    line = sel.Text
    sel.Collapse()
    startPos = InStrRev(line, """", cursorColumn)
    endPos = InStr(cursorColumn, line, """")
    fileName = Mid(line, startPos + 1, endPos - startPos - 1)
    fileName = Replace(fileName, "/", "\")
    If Left(fileName, 1)  "\" Then
      basePath = Path.GetDirectoryName(activeDoc.FullName)
      fileName = basePath + "\" + fileName
    End If
    If File.Exists(fileName) Then
      DTE.ExecuteCommand("File.OpenFile", fileName)
    Else
      DTE.StatusBar.Text = "File """ + fileName + """ not found"
    End If
  End Sub
Veröffentlicht in Keine Kategorie. Schlagwörter: , , . Leave a Comment »

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: