====== Macro : Header Source Toggle ====== * 출처 : [[http://bytedevil.tistory.com/7|20Visual Studio에서 *.c, *.cpp(소스) 와 *.h, *.hpp(헤더) 전환하기]] - Alt+F11 로 매크로 편집기 오픈 - 아래 매크로를 추가 - 키보드 설정에서, "매크로." 또는 "Macro." 를 타이핑 해서 내가 작성한 매크로 찾기 - 키 할당 - 사용하기 ++++ 코드 보기 | Public Sub toggleHeaderSource() Dim currentDocumentPath As String = DTE.ActiveDocument.FullName currentDocumentPath = currentDocumentPath.ToLower() Dim currentDocumentPathWithoutExtension As String = currentDocumentPath.Remove(currentDocumentPath.LastIndexOf(".")) Dim correspondingDocumentPath As String Dim correspondingDocumentPath2 As String If (currentDocumentPath.EndsWith(".c") Or currentDocumentPath.EndsWith(".cpp")) Then correspondingDocumentPath = currentDocumentPathWithoutExtension + ".hpp" correspondingDocumentPath2 = currentDocumentPathWithoutExtension + ".h" ElseIf (currentDocumentPath.EndsWith(".h") Or currentDocumentPath.EndsWith(".hpp")) Then correspondingDocumentPath = currentDocumentPathWithoutExtension + ".cpp" correspondingDocumentPath2 = currentDocumentPathWithoutExtension + ".c" End If If (System.IO.File.Exists(correspondingDocumentPath) = True) Then DTE.ExecuteCommand("File.OpenFile", correspondingDocumentPath) ElseIf (System.IO.File.Exists(correspondingDocumentPath2) = True) Then DTE.ExecuteCommand("File.OpenFile", correspondingDocumentPath2) End If End Sub ++++ ====== Visual Studio 매크로 ====== VS2010에는 플러그인 개발이 오픈소스화 되어 좋은 것들을 쉽게 구할 수 있게 되었다. 뭔가 불편하면, 플러그인을 찾으면 된다. 이 스크립트는 낡았다. 그냥 추억으로 나둠. ++++ Old Script | Imports System Imports EnvDTE Imports EnvDTE80 Imports EnvDTE90 Imports EnvDTE90a Imports EnvDTE100 Imports System.Diagnostics Public Module MyMacroModule Public Sub toggleHeaderSource() Dim currentDocumentPath As String = DTE.ActiveDocument.FullName currentDocumentPath = currentDocumentPath.ToLower() Dim currentDocumentPathWithoutExtension As String = currentDocumentPath.Remove(currentDocumentPath.LastIndexOf(".")) Dim correspondingDocumentPath As String Dim correspondingDocumentPath2 As String If (currentDocumentPath.EndsWith(".c") Or currentDocumentPath.EndsWith(".cpp")) Then correspondingDocumentPath = currentDocumentPathWithoutExtension + ".hpp" correspondingDocumentPath2 = currentDocumentPathWithoutExtension + ".h" ElseIf (currentDocumentPath.EndsWith(".h") Or currentDocumentPath.EndsWith(".hpp")) Then correspondingDocumentPath = currentDocumentPathWithoutExtension + ".cpp" correspondingDocumentPath2 = currentDocumentPathWithoutExtension + ".c" End If If (System.IO.File.Exists(correspondingDocumentPath) = True) Then DTE.ExecuteCommand("File.OpenFile", correspondingDocumentPath) ElseIf (System.IO.File.Exists(correspondingDocumentPath2) = True) Then DTE.ExecuteCommand("File.OpenFile", correspondingDocumentPath2) End If End Sub Sub InsertTMacro() Dim selection As EnvDTE.TextSelection Dim startPoint As EnvDTE.EditPoint Dim endPoint As TextPoint Dim commentStart As String selection = DTE.ActiveDocument.Selection() startPoint = selection.TopPoint.CreateEditPoint() endPoint = selection.BottomPoint.CreateEditPoint() DTE.UndoContext.Open("InsertTMacro") Try startPoint.Insert("_T(") endPoint.Insert(")") Finally DTE.UndoContext.Close() End Try End Sub End Module ++++