好用的VSCode头部注释插件Fileheader Pro
作者:IronLu233 发布时间:2023-07-05 06:16:00
动机
有时候需要在代码头部添加像这样的一段注释。这段注释包括了作者、代码版权许可等信息。每次重复添加都会让您觉得非常麻烦。作为开发者的您,时间是自然非常。那么这个插件,就是为这个场景而生,替你无感地默默做完这件事。如果您想要在代码头部添加一些类似这样的ASCII Art。它也能满足您的需求。
/*
* @Author: IronLu233
* @Date: 2021-03-10 12:00:00
* Copyright © 你的公司名字. All rights reserved.
*/
/*
#### ######## ####### ## ## ## ## ## ####### ####### #######
## ## ## ## ## ### ## ## ## ## ## ## ## ## ## ##
## ## ## ## ## #### ## ## ## ## ## ## ##
## ######## ## ## ## ## ## ## ## ## ####### ####### #######
## ## ## ## ## ## #### ## ## ## ## ## ##
## ## ## ## ## ## ### ## ## ## ## ## ## ## ##
#### ## ## ####### ## ## ######## ####### ######### ####### #######
* @author IronLu233 <lrironsora@gmail.com>
* @date 2022-06-12 22:33:53
*/
这段代码来自这里
安装与使用
如何获得它
Fileheader Pro - Visual Studio Marketplace VSCode扩展市场,点击Install
让它默默添加头部注释
文件注释中的信息来自于您的版本控制工具,目前插件还只支持Git,再未来它将支持SVN,Mercurial等其它版本控制工具。 因此请您确保在有Git的项目中使用它。
安装后,默认的模板将能复合大部分的使用场景。
当你新建一个文件后,将会自动地为你添加Fileheader。因此大部分情况下您不需要下文中的手动添加
如您需要手动添加到已有代码,打开一个文件后,在您的命令面板里【您可以使用Ctrl(Mac下是Command) + Shift + P】,输入 Fileheader Pro: Add Fileheader
并按下回车,就能见到文件注释恰如其分地加入到了您巧夺天工的代码头部。
保存时,您的文件头部注释需要更新时,Fileheader Pro将会自动为您更新。
自定义模板
尽管自带的模板能满足大部分场景。但自定义模板的强大与整活能力,也值得为它去专门配置。
别忘了将你的模板提交到git上,并且让与你一起开发的同学也安装Fileheader Pro
首先我们需要创建一个模板。在您VSCode的命令面板中,执行这样的命令: Fileheader Pro: Generate Custom Fileheader Template
;
此时在项目的根目录下的.vscode/fileheader.template.js
。 请修改类CustomLanguageProvider
。特别是它的getTemplate
方法。它的返回值,就决定了您的文件头部注释最后的模样。另外,languages将会决定,在那些语言的文件中它可以被使用。
请务必将所有返回的字符串使用tpl
进行模板字符串函数的调用,否则可能会出现一些奇奇怪怪的问题
可以使用variable中的各个字段,对其进行加工处理,放入模板之中。 variables的字段有下列这些
字段 | 含义 |
---|---|
birthtime | 文件被创建的时间,如果它被版本控制系统所追踪那么会从版本控制系统中获取创建时间,否则将使用文件在磁盘中创建的时间 |
mtime | 文件被修改时间。获取逻辑同birthime,不建议使用mtime。因为当一个文件被多个人修改时,他们关于mtime的注释,会在代码合并时造成冲突! |
authorName | 作者名字,会从版本控制工具历史中寻找,如果这个文件是新的,那么它将会使用userName |
authorEmail | 作者的电子邮箱,回退机制同authorName |
userName | 用户的名字。对于git来说,会通过git config user.name获取 |
userEmail | 用户的电子邮箱,对于git会通过git config user.email获取 |
companyName | 公司名称。没有公司的可以去工商局登记成立 |
projectName | 当前项目的名称,也就是就是VSCode所打开的文件夹的名称 |
filePath | 当前文件的路径 |
dirPath | 当前文件的目录路径 |
fileName | 当前文件的文件名 |
Fileheader Pro源代码本身就使用了自定义模板添加头部注释。
所以它也是一个例子
fileheader-pro/fileheader.template.js at main · IronLu233/fileheader-pro (github.com)
配置项
FileheaderPro.disableFileds
对于默认的模板,其中的各个字段都可以通过它来禁用。禁用的字段将不会出现在注释之中。 您可以在VSCode的设置界面中,对其进行修改
默认值是['mtime']
。不建议启用mtime。因为当一个文件被多个人修改时,他们关于mtime的注释,会在代码合并时造成冲突!
FileheaderPro.companyName
您需要在设置中,告诉插件公司的名字,因为无法从任何其它地方得到它!
FileheaderPro.currentUserName和FileheaderPro.currentUserEmail
这两个字段可以直接覆盖掉模板中的userName
和userEmail
变量,也会间接影响authorName
和authorEmail
(当文件并未被版本控制工具追踪的时候)
FileheaderPro.dateFormat
注释中的日期的格式。请参考:momentjs.com/docs/#/disp…
FileheaderPro.autoInsertOnCreateFile
是否启用创建文件时,自动添加文件头部注释。默认它是开启的
FileheaderPro.autoUpdateOnSave
是否保存时更新fileheader。默认启用。
Fileheader Pro内部只在需要的时候更新文件头部注释。
Q & A
它是怎么实现的?
使用了ES6的tagged template。
我们可以知道哪一些是固定的字符串,哪一些是用户所使用的变量。接下来请参考这个抽象类
fileheader-pro/FileheaderLanguageProvider.ts at main · IronLu233/fileheader-pro (github.com)
没有我支持的语言
目前支持这些语言
Javascript
Typescript
Python
HTML
CSS
Vue
Java 请使用自定义模板,或者发起一个issue。当然,也欢迎提PR来为Fileheader Pro添砖加瓦
来源:https://juejin.cn/post/7117997347837067301


猜你喜欢
- 本文讲述了LINUX下Oracle数据导入导出的方法。分享给大家供大家参考,具体如下:一. 导出工具 exp1. 它是操作系统下一个可执行的
- python pandas分组聚合1、环境python3.9win10 64bitpandas==1.2.1groupby方法是pandas
- Go语言是Google新推出的结合了动态语言和静态语言优势的一个新兴的语言。下面介绍一下如何在Mac系统下安装和使用这个语言。1.下载SDK
- 方法一:单表导入(1)打开"SQL Server 外围应用配置器"-->"功能的外围应用配置器"
- 早就想用一个系列的文章来写AJAX,让自己头到尾理一遍,更好的掌握基础知识(昨天的面试受打击了,基础知识很重要).要是写的好,也许也可以帮助
- 本文实例为大家分享了asp.net存储和读取数据库图片的具体代码,供大家参考,具体内容如下1. 创建asp.net web窗体项目代码如下:
- 在之前的一篇文章 Python利用 AIML 和 Tornado 搭建聊天机器人微信订阅号 中用 aiml 实现了一个简单的英文聊天机器人订
- js判断某个字符出现的次数的简单实例function patch(re,s){ //参数1正则式,参数2字符串re=eval_r("
- 在使用AJAX开发网站时,经常有朋友遇到乱码的问题,而且一下子难以找到解决方法。其实解决AJAX中文乱码问题很简单。1、服务端程序:<
- 在很多web应用中,我们会遇到很多需要动态插入多行纪录的地方。比如,在人才网站上,我们填写简历的时候,我们要填写我们的项目经验,我们可以根据
- 参考项目描述Python 标准库DougHellmann 著 / 刘炽 等 译搜索引擎BingPyt
- python2和python3实现在图片上加汉字,最主要的区别还是内部编码方式不一样导致的,在代码上表现为些许的差别。理解了内部编码原理也就
- 本文实例讲述了python处理大数字的方法。分享给大家供大家参考。具体实现方法如下:def getFactorial(n): &
- 2008年,对于JavaScript来说是非常振奋人心的一年,很多高人加入到JavaScript和Web开发的阵营中来,浏览器厂商在技术上互
- 摘要:神经网络的训练的主要流程包括图像输入神经网络, 得到模型的输出结果,计算模型的输出与真实值的损失, 计算损失值的梯度,最后用梯度下降算
- 一,什么是mycat一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL的加强版数据库一个可以视为MySQL
- 前言在前面的分享中,我们制作了一个天眼查 GUI 程序,今天我们在这个的基础上,继续开发新的功能,微博抓取工具,先来看下最终的效果整体的界面
- 如下所示:import matplotlib.pyplot as pltimport numpy as npdef readfile(fil
- 起步上一篇 《Python 的枚举类型》 文末说有机会的话可以看看它的源码。那就来读一读,看看枚举的几个重要的特性是如何实现的。要想阅读这部
- 最近,我不得不对我的一个客户的旧网站进行更新,使得它能够达到可访问性的标准。对三四年前的旧代码进行挖掘的想法根本没有吸引力,主要是因为我曾经