【发布时间】:2014-05-20 11:22:06
【问题描述】:
我在 resharper 中有一个多文件模板,我可以使用 $NAME$ 宏来获取原始文件的名称,用于命名模板中的其他文件。但是我也想在其他文件模板的内容中使用原文件的$NAME$。
这可能吗?我看不到似乎适合内部变量的宏,因为只有当前文件名似乎可用。
有人知道这是否可行,或者我可以如何解决这个问题?
【问题讨论】:
我在 resharper 中有一个多文件模板,我可以使用 $NAME$ 宏来获取原始文件的名称,用于命名模板中的其他文件。但是我也想在其他文件模板的内容中使用原文件的$NAME$。
这可能吗?我看不到似乎适合内部变量的宏,因为只有当前文件名似乎可用。
有人知道这是否可行,或者我可以如何解决这个问题?
【问题讨论】:
作为一种解决方法,您可以在第一个文件中创建一个参数$FILENAME$(宏“当前文件名不带扩展名”),例如在 cmets 中,例如:
class Foo
{
//$FILENAME$
}
然后您可以在多文件模板的其他文件中调用此参数 - 此参数将包含第一个文件的名称,因为第一个文件将在其他文件之前生成。
【讨论】:
很遗憾,没有一个宏可以为您提供此功能。我添加了一个功能请求,您可以对其进行投票和跟踪(以及有关您的要求的更具体的详细信息会很有用)-http://youtrack.jetbrains.com/issue/RSRP-415055
write your own macros 可以作为插件的一部分,但没有可靠的方法来获取创建的文件集中的第一个文档的名称。通过IHotspotSession.Context 属性传递给宏的IHotspotSessionContext 实例包含IDocument 的可枚举,您可以从中获取IDocument.Moniker,这将是基于文件的文档的完整路径。但是,无法保证可枚举的顺序 - 它由哈希集支持。您可能可以依靠实现细节(小集合,无删除)来使用第一个文档作为原始文档,但实际上并不能保证这一点。
【讨论】: