【问题标题】:How to use the original filename in a multi file template in resharper?如何在 resharper 的多文件模板中使用原始文件名?
【发布时间】:2014-05-20 11:22:06
【问题描述】:

我在 resharper 中有一个多文件模板,我可以使用 $NAME$ 宏来获取原始文件的名称,用于命名模板中的其他文件。但是我也想在其他文件模板的内容中使用原文件的$NAME$

这可能吗?我看不到似乎适合内部变量的宏,因为只有当前文件名似乎可用。

有人知道这是否可行,或者我可以如何解决这个问题?

【问题讨论】:

    标签: templates resharper


    【解决方案1】:

    作为一种解决方法,您可以在第一个文件中创建一个参数$FILENAME$(宏“当前文件名不带扩展名”),例如在 cmets 中,例如:

    class Foo
    {
         //$FILENAME$
    }
    

    然后您可以在多文件模板的其他文件中调用此参数 - 此参数将包含第一个文件的名称,因为第一个文件将在其他文件之前生成。

    【讨论】:

    • 谢谢。这就是我们所做的,尽管不在 cmets 中。这是一个好主意,我会改变或实施来做到这一点。干杯。
    【解决方案2】:

    很遗憾,没有一个宏可以为您提供此功能。我添加了一个功能请求,您可以对其进行投票和跟踪(以及有关您的要求的更具体的详细信息会很有用)-http://youtrack.jetbrains.com/issue/RSRP-415055

    write your own macros 可以作为插件的一部分,但没有可靠的方法来获取创建的文件集中的第一个文档的名称。通过IHotspotSession.Context 属性传递给宏的IHotspotSessionContext 实例包含IDocument 的可枚举,您可以从中获取IDocument.Moniker,这将是基于文件的文档的完整路径。但是,无法保证可枚举的顺序 - 它由哈希集支持。您可能可以依靠实现细节(小集合,无删除)来使用第一个文档作为原始文档,但实际上并不能保证这一点。

    【讨论】:

    • 谢谢马特!棒极了。明天我将用我的示例更新功能请求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多