2011年2月6日日曜日

C#の#regionのインデントを削除するマクロ


VisualStudioを使ってC#をコーディングしている際に、#regionを書くとコードのインデントと揃ってしまって不快なので、力技で置換するマクロを作ってみた。

  1. Option Strict On  
  2. Option Explicit On  
  3.   
  4. Imports System  
  5. Imports EnvDTE  
  6. Imports EnvDTE80  
  7. Imports EnvDTE90  
  8. Imports EnvDTE90a  
  9. Imports EnvDTE100  
  10. Imports System.Diagnostics  
  11.   
  12. Public Module FindAndReplace  
  13.     Sub RemoveeRegionIndent()  
  14.         DTE.Windows.Item("{CF2DDC32-8CAD-11D2-9302-005345000000}").Activate()  
  15.         DTE.Find.Target = vsFindTarget.vsFindTargetCurrentProject  
  16.         DTE.Find.FindWhat = "^.+{(\#region|\#endregion).*}$"  
  17.         DTE.Find.ReplaceWith = "\1"  
  18.         DTE.Find.MatchCase = False  
  19.         DTE.Find.MatchWholeWord = False  
  20.         DTE.Find.MatchInHiddenText = False  
  21.         DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr  
  22.         DTE.Find.KeepModifiedDocumentsOpen = False  
  23.         DTE.Find.FilesOfType = ""  
  24.         DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone  
  25.         DTE.Find.Action = vsFindAction.vsFindActionReplaceAll  
  26.         If (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound) Then  
  27.             'Throw New System.Exception("vsFindResultNotFound")  
  28.         End If  
  29.         DTE.Windows.Item("{CF2DDC32-8CAD-11D2-9302-005345000000}").Close()  
  30.     End Sub  
  31. End Module  

0 件のコメント:

コメントを投稿