【问题标题】:Trim File Name in Visual Assist Snippet/Macro在 Visual Assist 代码段/宏中修剪文件名
【发布时间】:2014-02-26 19:47:18
【问题描述】:

我在 Visual Studio 2008 中使用 Visual Assist X。我正在定义一堆前向声明文件,所有这些文件的格式基本相同:

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

显然,我还添加了标头保护、生成的文件注释以及我们的编码标准要求的其他内容(并且命名空间不是占位符)。

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

【问题讨论】:

    标签: visual-assist visual-assist-x


    【解决方案1】:

    不,Visual Assist 没有任何工具可以支持您希望对文件名进行正则表达式修改。

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

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

    Move Selection To New File 将在与当前文件相同的目录中创建新文件,并将其添加到它所在的相同项目中。

    【讨论】:

    • 感谢您提供替代解决方案。我们使用自定义 CMake 工具包来生成我们的 VS 解决方案,因此将选择移动到新文件并不能完全满足我将文件添加到项目所需的操作。也就是说,你的建议仍然有效。我通常会创建 3 个文件(头文件、转发头文件、源代码)并运行我的 sn-ps 以获取样板代码,然后再将它们添加到 CMake。我可以只定义正向 sn-p,在普通头文件中运行它,剪切代码,运行普通头文件 sn-p,然后将剪切代码粘贴到正向文件中。比手动输入要好!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多