2017-09-14 34 views
0

我的PhpStorm 2017.2项目要求每个新文件都是从特定的文件创建的。在“设置>>编辑>>文件和代码模板>> PHP文件”,我有以下的模板:PhpStorm:可以更新每个文件编辑的文件模板?

<?php 
/** 
* @author John Doe 
* @copyright ${YEAR} Acme 
* @created ${DATE} 
* @modified ${DATE} 
*/ 

这种运作良好。 PhpStorm动态填充年份和日期。但是,当我稍后回来并对文件进行更改时,我总是需要记住手动更改@modified行。有没有一种方法可以自动执行此操作,以便onSave或onCommit(用于版本控制的文件),行更新当前值为${DATE}

+0

模板是“静态的”。这意味着:一旦它用于文件(代码模板:例如为一个类创建PHPDoc)或创建一个文件(文件模板),文本现在没有与原始模板的“链接”,因为它只是文件中的文本。 – LazyOne

回答

2

不可能ATM。

https://youtrack.jetbrains.com/issue/IDEABKL-7178 - 观看此票(明星/投票/评论)以获得任何进展的通知。目前没有计划在最近的将来实施类似的东西。另一方面(如上述票据中的评论所述) - 查看标准的“版权”插件是否有任何帮助(从未自己使用过,因此不知道它究竟能做什么)。


一个可能的解决需要编写自己的脚本/程序(PHP或者你可以使用任何其他语言),将分析文件(正则表达式匹配应该做的罚款在这里 - 没有真正的需要去到和解析文件转换为标记),并更新这些信息:

  • 看看每行,直到匹配线会被发现(一些卫逻辑可以被添加到限制的行数要解析:如果没有匹配的行中发现的首先xx(例如20)行假定这个文件没有这样的注释/行);
  • 根据文件修改时间戳更新日期/时间部分。

一旦你有这样的脚本 - 只需使用File Watcher功能,这样它就会在每个文件修改时被调用。

可能带来的负面:当检测到文件的修改时文件看守被触发...这可以包括外所做的更改(例如,从远程主机的其他编辑器/下载/其它VCS分支的/ etc))。这可能导致不必要/不需要的更新。

如果File Watcher功能不适合任何原因 - 请查看grunt -watch或类似的地方,您可以轻松禁用监视(因此只有当您的监视器(build runner)正在监视时才会调用您的脚本。

+0

非常感谢您花时间回答。 – BeetleJuice

相关问题