IntelliJ:动态更新的文件头

问题描述 投票:7回答:3

默认情况下,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
 */
intellij-idea phpstorm webstorm
3个回答
0
投票

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

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

但是,当您启动“重新格式化代码”时,您可以“启用实时模板”,该代码能够重写您的开始模板代码,从而重写日期修改。

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


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脚本的路径放入Program字段。

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


-1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.