如何在resharper中的多文件模板中使用原始文件名?

时间:2014-05-20 11:22:07

标签: templates resharper

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

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

任何人都知道这是否可行或我如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

不幸的是,没有一个宏会给你这个。我已经添加了一项功能请求,您可以对其进行投票和跟踪(以及有关您的要求有用的更具体的详细信息) - http://youtrack.jetbrains.com/issue/RSRP-415055

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

答案 1 :(得分:1)

作为一种变通方法,您可以在第一个文件中创建参数$FILENAME$(宏"当前文件名不带扩展名"),例如在评论中,如:

class Foo
{
     //$FILENAME$
}

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