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