に「tabify」コマンドがあります
編集>詳細>選択した行をタブ化
(そしてPower Tools 2010もファイルごとにこの機能を提供します)しかし、これを行う方法はありますかソリューション内のすべてのコードファイル?
ReSharperにはクリーンアップコマンドがありますが、私が見つけた唯一の半分適切なオプションは、すべてのファイルに対してフォーマットを実行することです。
Microsoft Productivity Power tools拡張機能を追加した場合(まだ追加していない場合は、オプションを追加します)ファイルを集計します。これは、ソリューション内のすべてのファイルに適用されるわけではありませんが、各ファイルを編集するときに、ファイルごとにプロンプトが表示されます。あなたが求めているものではありませんが、助けになります。
また、タブを使用するようにIDEエディター設定を設定してから、menu-edit-advanced-formatドキュメント(CTRL + E、D)を実行してみてください。これにより、タブ長スペースのグループがタブであり、マクロを介してソリューション内のすべてのファイルに対してスクリプト可能である必要があります。
リクエストには、ジョブを実行できるIDEマクロへのリンクが含まれています:
http://blogs.msdn.com/b/kevinpilchbisson/archive/2004/05/17/133371.aspx
http://web.archive.org/web/20090217094033/http://chriseargle.com/post/Format-Solution.aspx
これは、開いているソリューションですべての* .cs、*。h、*。cpp、および* .hppファイルを自動的にフォーマットするVisualStudioマクロのサンプルコードです。これには、スペースのタブへの変換が含まれます([ツール]>の[タブ設定]によって異なります)オプション>テキストエディタ>特定の言語または「すべての言語」>タブ):
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Public Module ConvertTabsToSpaces
Public Sub FormatSolution()
Dim sol As Solution = DTE.Solution
For i As Integer = 1 To sol.Projects.Count
FormatProject(sol.Projects.Item(i))
Next
End Sub
Private Sub FormatProject(ByVal proj As Project)
If Not proj.ProjectItems Is Nothing Then
For i As Integer = 1 To proj.ProjectItems.Count
FormatProjectItem(proj.ProjectItems.Item(i))
Next
End If
End Sub
Private Sub FormatProjectItem(ByVal projectItem As ProjectItem)
If projectItem.Kind = Constants.vsProjectItemKindPhysicalFile Then
If projectItem.Name.LastIndexOf(".cs") = projectItem.Name.Length - 3 Then
Dim window As Window = projectItem.Open(Constants.vsViewKindCode)
window.Activate()
projectItem.Document.DTE.ExecuteCommand("Edit.FormatDocument")
window.Close(vsSaveChanges.vsSaveChangesYes)
ElseIf ((projectItem.Name.LastIndexOf(".cpp") = projectItem.Name.Length - 4) OrElse (projectItem.Name.LastIndexOf(".hpp") = projectItem.Name.Length - 4) OrElse (projectItem.Name.LastIndexOf(".h") = projectItem.Name.Length - 2)) Then
Dim window As Window = projectItem.Open(Constants.vsViewKindCode)
window.Activate()
projectItem.Document.DTE.ExecuteCommand("Edit.SelectAll")
projectItem.Document.DTE.ExecuteCommand("Edit.FormatSelection")
window.Close(vsSaveChanges.vsSaveChangesYes)
End If
End If
'Be sure to format all of the ProjectItems.
If Not projectItem.ProjectItems Is Nothing Then
For i As Integer = 1 To projectItem.ProjectItems.Count
FormatProjectItem(projectItem.ProjectItems.Item(i))
Next
End If
'Format the SubProject if it exists.
If Not projectItem.SubProject Is Nothing Then
FormatProject(projectItem.SubProject)
End If
End Sub
End Module
手順(Visual Studio 2005ですが、新しいバージョンでも同様です):
編集
ここでSiegmundFrenzelのコードを使用して、*。h、*。cpp、および* .hppファイルもサポートするようにコードを更新しました: https://stackoverflow.com/a/14766393/90287
「Tabify」の機能はこれです。「」(4つのスペース)をタブに置き換えるだけで、フォーマットなどは変更されません。
ドキュメントの書式設定を使用することをお勧めしますが、「タブ化」は、必要なすべてのファイルで同じアクションを模倣するカスタムアプリケーションを介して簡単に実行できます。
お役に立てれば!
Vs2010の場合、次の検索と置換を使用できます(この例は4つのスペースへのタブ用です)。
検索ボックスに次のように入力します。^{ *}
(^{
space *}
tab)
置換ボックスに、\1
(\1
スペーススペーススペーススペース)と入力します。
条件ボックスをチェックして、正規表現に設定します。 vsの新しいバージョンは異なる正規表現構文を使用しますが、同じことが実行可能であるはずです。
更新これはvbファイルに対して1回実行することで機能しましたが、resxファイルに対しては複数のパスが必要であったため、ファイルの種類によっては複数回実行する必要がある場合があります。