zoukankan      html  css  js  c++  java
  • Visual Studio 在Cpp和头文件间切换的宏 (Alt + O)

    Visual Studio 在Cpp和头文件间切换的宏 (Alt + O)

    (see link: http://www.codeproject.com/KB/macros/SourceHeaderJumper.aspx)

    Introduction

    How many times c/c++ programmer swaps between source and header files? Hundreds times per a day! Simple macros in DTE essentially accelerates swapping action.
    Create new module, or use existing one, in my case "CommonMacros". To convenience, it is necessary link up this macros to hot key, see picture.

     VCE customizing panel

    Macros code

    Collapse Copy Code
        
    Option Explicit On
    Imports EnvDTE

    Public Module CommonMacros
    Sub SourceHeaderJumper()
    'splitted file name

    Dim SArr As System.Array
    'new filename generated by macros

    Dim NewFN As String
    'file name base (without extention)

    Dim FNBase As String
    'file extention

    Dim Ext As String
    'simple counter

    Dim i As Integer

    If DTE.ActiveDocument() Is Nothing Then
    Exit Sub
    End If
    SArr = DTE.ActiveDocument().Name().Split(".")
    'has file extention?

    If (SArr.GetLength(0) < 2) Then
    Exit Sub
    End If

    'file name base

    FNBase = DTE.ActiveDocument().Path()
    For i = 0 To SArr.GetLength(0) - 2
    FNBase = FNBase + SArr(i) + "."
    Next

    'file extention

    Ext = System.Convert.ToString(SArr(SArr.GetLength(0) - 1)).ToLower()

    'business logic

    If (Ext = "cpp") Or (Ext = "c") Then
    NewFN = FNBase + "h"
    Else
    If Ext = "h" Then
    NewFN = FNBase + "cpp"
    If Not System.IO.File.Exists(NewFN) Then
    NewFN = FNBase + "c"
    End If
    End If
    End If

    'if you don't want add file to tabs uncomment next line

    'DTE.ActiveDocument().Close()

    'opens needed file

    If System.IO.File.Exists(NewFN) Then
    DTE.ItemOperations.OpenFile(NewFN)
    End If
    End Sub

    End Module

    Conclusion

    Try this feature, this macros will save hours of you time during programming from month to month.

  • 相关阅读:
    Linux-进程描述(1)—进程控制块
    C++中的继承(2)类的默认成员
    Linux系统date命令的参数及获取时间戳的方法
    new/new[]和delete/delete[]是如何分配空间以及释放空间的
    golang垃圾回收
    golang内存分配
    go中的关键字-reflect 反射
    go中的关键字-go(下)
    go中的关键字-go(上)
    go中的关键字-defer
  • 原文地址:https://www.cnblogs.com/SunWentao/p/1699216.html
Copyright © 2011-2022 走看看