2014-02-26 39 views
0

我使用Visual在Visual Studio 2008中我定义了一堆的向前声明文件,它们都具有基本相同的格式帮助X:修剪文件名协助片段/宏

namespace ns1 { namespace ns2 { 
    class SampleClassName; 
    boost::shared_ptr<SampleClassName> SampleClassNamePtr; 
}} 

显然,我还会根据我们的编码标准(并且名称空间不是占位符)放入标题警卫,生成的文件注释和其他内容。

问题出在这里:我们将这些文件命名为SampleClassNameForward.h,因此使用$ FILE_BASE $占位符将不会正确工作。有没有办法让我应用正则表达式,并在扩展后从$ FILE_BASE $中删除“Forward”,但在将片段粘贴到我的文件之前?如果我能做到这一点,那么我可以完全自动生成这些前瞻性声明,并为我自己(和我的同事)节省大量时间。

回答

1

不,Visual Assist没有任何支持正则表达式修改文件名的工具,正如你所期望的那样。

另一种方法是创建一个VA片段,用于在临时文件中创建代码块。

  • 创建一个包含所有样板代码的VA片段。
  • 将$ SymbolName $ Forward.h添加到代码的顶部。
  • 调用空白临时文件中的代码片段。
  • 在编辑器的顶部剪切生成的FooForward.h文本。
  • 全选(ctrl + a)。
  • 调用VAssistX |重构|将选择移至新文件
  • 此时,系统会提示您输入新文件的名称,并粘贴以前剪切的文本(FooForward.h)。

选择移到新文件将在同一目录与当前文件创建新的文件,并将其添加到它的。

+0

感谢您的替代解决方案相同的项目。我们使用一个定制的CMake工具包来生成我们的VS解决方案,所以将选择移动到新文件并不完全是我需要将文件添加到项目中的。这就是说,你的建议仍然有效。我通常创建3个文件(头文件,转发头文件,源文件),并在将样本代码添加到CMake之前运行我的片段代码片段。我可以定义正向代码片段,在正常的头文件中运行它,剪切代码,运行正常的头文件片段,并将剪切后的代码粘贴到转发文件中。比手工输入更好! – iamtheddrman