Rekisa 取扱説明書

Visual Studio .NET との連携

ここでは、Visual Stuido .NET 2003 との連携の例を紹介します。

世代バックアップを取る

次のマクロ "SaveEx()" は、バックアップを取ってから上書き保存をするマクロです。

"上書き保存" の代わりに使用すれば、頻繁にバックアップを取る事ができるでしょう。

なお、勝手にBackupというフォルダを作成するので注意してさい。

Sub SaveEx()
    If Not DTE.ActiveDocument Is Nothing Then
        SaveEx_As(DTE.ActiveDocument)
    End If
End Sub

Private Sub SaveEx_As(ByRef doc As Document)
    If doc.Saved Then Return

    Dim srcTitle As String = doc.Name
    Dim srcPath As String = doc.FullName
    Dim pathExt As String = Path.GetExtension(srcTitle)
    Dim destDir As String = Path.Combine(doc.Path, "Backup")
    Dim destTitle As String = Path.GetFileNameWithoutExtension(srcTitle) + "_" + Format(Now(), "yyyy_MMdd_HHmmss")
    Dim destPath As String = Path.Combine(destDir, destTitle) + pathExt

    If Directory.Exists(destDir) = False Then
        Directory.CreateDirectory(destDir)
    Else
        Dim n As Integer = 0
        While File.Exists(destPath)
            destPath = Path.Combine(destDir, destTitle + "_" & n & pathExt)
            n = n + 1
        End While
    End If

    If File.Exists(srcPath) Then
        File.Move(srcPath, destPath)
    End If

    If doc.Save(srcPath) = vsSaveStatus.vsSaveCancelled Then
        File.Move(destPath, srcPath)
    End If
End Sub

世代バックアップとSubversionリポジトリを閲覧する

次のマクロ "ShowDiff()" は先ほど紹介した "SaveEx()" マクロで作成したバックアップと Subversion リポジトリのファイルを閲覧するマクロです。

このマクロを使用すれば、今までどんな編集を加えてきたがわかりやすく表示されます。

なお、


    ps.StartInfo.FileName = "C:\Applications\ris\Rekisa\Rekisa.exe"

の部分は、各自でRekisaのパスに書き換えておいてください。

Sub ShowDiff()
    If DTE.ActiveDocument Is Nothing Then Return

    Dim ps As System.Diagnostics.Process = New System.Diagnostics.Process
    Dim filePattern As String
    Dim doc As TextDocument = DTE.ActiveDocument.Object

    filePattern = "-ViewCount=3 -Sort=ModifyTime_Reverse -Encoding=Auto:Japanese "

    ' 開いているファイル
    filePattern += """" + DTE.ActiveDocument.FullName + """ "
    filePattern += """-ActiveFile=" + DTE.ActiveDocument.FullName + """ "
    filePattern += "-Y+1=" + doc.Selection.TopPoint.Line.ToString + " "
    filePattern += "-X+1=" + doc.Selection.TopPoint.VirtualCharOffset.ToString() + " "

    ' バックアップファイル
    filePattern += """" + Path.GetDirectoryName(DTE.ActiveDocument.FullName)
    filePattern += "\?Backup/?"

    ' Subversion リポジトリ
    filePattern += Path.GetFileNameWithoutExtension(DTE.ActiveDocument.Name) _
        + "_.*\" + Path.GetExtension(DTE.ActiveDocument.Name) + """ "
    filePattern += """Subversion:" + DTE.ActiveDocument.FullName + "[0:BASE]"""

    ps.StartInfo.FileName = "C:\Applications\ris\Rekisa\Rekisa.exe"
    ps.StartInfo.Arguments = filePattern
    ps.Start()
End Sub