IntelliJ:动态更新的文件头

时间:2016-04-28 09:04:19

标签: intellij-idea phpstorm webstorm

默认情况下,IntelliJ Idea会插入(如下所示)新源文件的标题:

/**
 * Created by JohnDoe on 2016-04-27.
 */

相应的模板是:

/**
 * Created by ${USER} on ${DATE}.
 */

是否可以更新此模板,以便在更改文件时插入最后修改日期?例如:

/**
 * Created by JohnDoe on 2016-03-27.
 * Last modified by JaneDoe on 2016-04-27
 */

3 个答案:

答案 0 :(得分:0)

PHPStorm没有" hook"检测到文件更改后启动任务(仅用于在服务器中上传)。代码模板基于创建文件而不是更改。

您想要的行为(手动更改文件后自动更改文件)可以用于很多事情,但它是编辑器的循环头条。因为如果您更改文件,它必须更改文件(如果文件更改?它更改文件?)。

然而,您可以,或许#34;启用实时模板"当你启动一个"重新格式代码"能够重写你的开始模板代码,重写日期修改。

其他解决方案是使用工具如同grunt但我不知道是否管理php文件。

答案 1 :(得分:0)

这是与我正在使用的类似的工作解决方案。在Mac OS上进行了测试。

  1. 创建一个bash脚本,仅当文件中未包含确切值时才替换第一次出现的Last modified by JaneDoe on $DATE

    #!/bin/bash
    
    FILE=src/java/test/Test.java
    DATE=`date '+%Y-%m-%d'`
    PREFIX="Last modified by JaneDoe on "
    STRING="$PREFIX.*$"
    SUBSTITUTE="$PREFIX$DATE"
    if ! grep -q "$SUBSTITUTE" "$FILE"; then
      sed -i '' "1,/$(echo "$STRING")/ s/$(echo "$STRING")/$(echo "$SUBSTITUTE")/" $FILE
    fi
    
  2. 安装File Watchers插件。

  3. 创建具有适当范围的文件监视程序(它可以是单个文件或任何其他范围,以便项目源代码中的任何更改将更新修改的日期或版本等),并将bash脚本的路径放入{{ 1}}字段。

现在,每次文件更改时,日期都会更新。如果要分别更新每个文件的日期,则应将参数Program传递给脚本。

答案 2 :(得分:-1)

不支持开箱即用。我建议您不要在文件中包含有关作者和上次编辑/创建时间的信息。

原因是您的版本控制系统(Git,SVN)自动包含相同的信息。因此,手动标记只是已有信息的重复,但只是更容易出错,需要手动更新。