9

Visual Studio でコードの操作と自動化に役立つマクロは何ですか?

4

5 に答える 5

9

これは、ソリューションを閉じ、IntelliSense ファイルを削除して、ソリューションを再度開くマクロです。ネイティブ C++ で作業している場合は必須です。

Sub UpdateIntellisense()
    Dim solution As Solution = DTE.Solution
    Dim filename As String = solution.FullName
    Dim ncbFile As System.Text.StringBuilder = New System.Text.StringBuilder
    ncbFile.Append(System.IO.Path.GetDirectoryName(filename) + "\")
    ncbFile.Append(System.IO.Path.GetFileNameWithoutExtension(filename))
    ncbFile.Append(".ncb")
    solution.Close(True)
    System.IO.File.Delete(ncbFile.ToString())
    solution.Open(filename)
End Sub
于 2008-08-28T17:41:12.390 に答える
5

これは、私が HTML および XML ファイルで使用する便利なものの 1 つです。

''''replaceunicodechars.vb
Option Strict Off
Option Explicit Off
Imports EnvDTE
Imports System.Diagnostics

Public Module ReplaceUnicodeChars

    Sub ReplaceUnicodeChars()
        DTE.ExecuteCommand("Edit.Find")
        ReplaceAllChar(ChrW(8230), "…")   ' ellipses
        ReplaceAllChar(ChrW(8220), "“")   ' left double quote
        ReplaceAllChar(ChrW(8221), "”")   ' right double quote
        ReplaceAllChar(ChrW(8216), "‘")   ' left single quote
        ReplaceAllChar(ChrW(8217), "’")   ' right single quote
        ReplaceAllChar(ChrW(8211), "–")   ' en dash
        ReplaceAllChar(ChrW(8212), "—")   ' em dash
        ReplaceAllChar(ChrW(176), "°") ' °
        ReplaceAllChar(ChrW(188), "¼") ' ¼
        ReplaceAllChar(ChrW(189), "½") ' ½
        ReplaceAllChar(ChrW(169), "©") ' ©
        ReplaceAllChar(ChrW(174), "®") ' ®
        ReplaceAllChar(ChrW(8224), "†")   ' dagger
        ReplaceAllChar(ChrW(8225), "‡")   ' double-dagger
        ReplaceAllChar(ChrW(185), "¹") ' ¹
        ReplaceAllChar(ChrW(178), "²") ' ²
        ReplaceAllChar(ChrW(179), "³") ' ³
        ReplaceAllChar(ChrW(153), "™")   ' ™
        ''ReplaceAllChar(ChrW(0), "�")

        DTE.Windows.Item(Constants.vsWindowKindFindReplace).Close()
    End Sub

    Sub ReplaceAllChar(ByVal findWhat, ByVal replaceWith)
        DTE.Find.FindWhat = findWhat
        DTE.Find.ReplaceWith = replaceWith
        DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
        DTE.Find.MatchCase = False
        DTE.Find.MatchWholeWord = False
        DTE.Find.MatchInHiddenText = True
        DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral
        DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
        DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
        DTE.Find.Execute()
    End Sub

End Module

あらゆる種類のデータ入力を行う必要があり、すべてを一度にエスケープしたい場合に便利です。

于 2008-08-18T19:27:01.330 に答える
1

これは私が作成したもので、ソリューション内のすべてのプロジェクトのターゲット フレームワーク バージョンを簡単に変更できます: http://geekswithblogs.net/sdorman/archive/2008/07/18/visual-studio-2008-and-targetframeworkversion。 aspx

于 2008-08-28T17:23:48.720 に答える
1

Jean-Paul BoodhooBDD マクロを使用しています。メソッド シグネチャのヘッダー行内の空白文字をアンダースコアに置き換えます。このようにして、たとえば通常の文としてテスト ケースの名前を入力し、キーボード ショートカットを押すと、有効なメソッド シグネチャが得られます。

于 2008-08-28T17:29:45.303 に答える
0

コード スニペットを追加することもできます。これらは、開発時間を短縮し、生産性を向上させるのに役立ちます。

標準の VB コード スニペットは、デフォルトのインストールに付属しています。C# コード スニペットは、個別にダウンロードして追加する必要があります。(そんな人は下のリンク)

マクロに関する限り、私は通常、マクロを使用したことがありませんが、Visual Studio 2005 の操作に関する本にはかなり優れたマクロがいくつか含まれています。

C# コード スニペット リンク: http://www.codinghorror.com/blog/files/ms-csharp-snippets.7z.zip (Jeff Atwood がリンクを提供) HIH

于 2008-08-18T19:23:52.990 に答える