vscode注释插件「koroFileHeader」

前言

在vscode上进行前端开发,有几个流行的注释插件:

  • Better Comments
  • Todo Tree
  • koroFileHeader
  • Document This
  • Auto Comment Blocks

在上面的插件中我选择 koroFileHeader 做推荐,原因一是使用人数比较多(最多的是 Better Comments ),二是它能做文件头部注释和函数注释,注释模块可配置。头部注释可自动更新最后编辑人

安装

在vscode扩展商店中搜索 koroFileHeader ,点击安装
请添加图片描述

快捷键使用

文件头部注释:

window:ctrl+win+i
mac:ctrl+cmd+i
linux: ctrl+meta+i

函数注释:将光标放在函数上方的空白行

window:ctrl+win+t
mac:ctrl+cmd+t
linux: ctrl+meta+t

快捷键注释不可用的问题:参考这里

注释模版配置

打开全局配置(setting.json),进行必要的基础配置

// 头部注释
"fileheader.customMade": {// Author字段是文件的创建者 可以在specialOptions中更改特殊属性// 自动提取当前git config中的: 用户名、邮箱"Author": "git config user.name && git config user.email", // 同时获取用户名与邮箱// "Author": "git config user.name", // 仅获取用户名// "Author": "git config user.email", // 仅获取邮箱// "Author": "OBKoro1", // 写死的固定值 不从git config中获取"Date": "Do not edit", // 文件创建时间(不变)// LastEditors、LastEditTime、FilePath将会自动更新 如果觉得时间更新的太频繁可以使用throttleTime(默认为1分钟)配置更改更新时间。"LastEditors": "git config user.name && git config user.email", // 文件最后编辑者 与Author字段一致// 由于编辑文件就会变更最后编辑时间,多人协作中合并的时候会导致merge// 可以将时间颗粒度改为周、或者月,这样冲突就减少很多。搜索变更时间格式: dateFormat"LastEditTime": "Do not edit", // 文件最后编辑时间// 输出相对路径,类似: /文件夹名称/src/index.js"FilePath": "Do not edit", // 文件在项目中的相对路径 自动更新// 插件会自动将光标移动到Description选项中 方便输入 Description字段可以在specialOptions更改"Description": "", // 介绍文件的作用、文件的入参、出参。
},
// 函数注释
"fileheader.cursorMode": {"description": "", // 函数注释生成之后,光标移动到这里"param": "", // param 开启函数参数自动提取 需要将光标放在函数行或者函数上方的空白行"return": "",
}

插件配置项

详细的配置:参考这里

常用的配置:

// 插件配置项
"fileheader.configObj": {"autoAdd": true, // 检测文件没有头部注释,自动添加文件头部注释,配合头部注释黑名单使用更佳"autoAddLine": 100, // 文件超过多少行数 不再自动添加头部注释"autoAlready": true, // 只添加插件支持的语言以及用户通过`language`选项自定义的注释"supportAutoLanguage": ["js", "vue"], // 设置之后,在数组内的文件才支持自动添加"prohibitAutoAdd": ["json", "md"], // 自动添加头部注释黑名单"prohibitItemAutoAdd": [ "项目的全称禁止项目自动添加头部注释, 使用快捷键自行添加" ],"folderBlacklist": [ "node_modules" ], // 文件夹或文件名禁止自动添加头部注释"wideSame": false, // 头部注释等宽设置"wideNum": 13,  // 头部注释字段长度 默认为13"functionWideNum": 0, // 函数注释等宽设置 设为0 即为关闭"dateFormat": "YYYY-MM-DD HH:mm:ss", // 时间格式"CheckFileChange": false, // 单个文件保存时进行diff检查,默认false"createHeader": true, // 新建文件自动添加头部注释"throttleTime": 60000, // 对同一个文件 需要过1分钟再次修改文件并保存才会更新注释
}
  • 单个文件保存时进行diff检查 「CheckFileChange」

每次保存之后,会进行一次diff检查, 如果文件只变更了LastEditors/LastEditTime,该文件将会回滚到本地仓库的最新版本
使用场景:对文件进行修改之后又撤销,但是LastEditors和LastEditTime已经变更了,在提交代码的时候很容易忘记恢复它,导致无意义的提交

运行逻辑:

  1. 检测VSCode当前打开的文件夹的根目录是否有.git文件夹, 没有的话,则退出
  2. 获取触发保存文件的diff,进行diff检查
  3. 检测当只有LastEditors和LastEditTime变更,其他任何变更都没有的情况下
  4. 将该文件回滚到本地仓库的最新版本

推荐配置

    // 头部注释"fileheader.customMade": {"Author": "git config user.email", // 同时获取用户名与邮箱"Date": "Do not edit", // 文件创建时间(不变)"LastEditors": "git config user.email", // 文件最后编辑者 与Author字段一致// 由于编辑文件就会变更最后编辑时间,多人协作中合并的时候会导致merge// 可以将时间颗粒度改为周、或者月,这样冲突就减少很多。搜索变更时间格式: dateFormat"LastEditTime": "Do not edit", // 文件最后编辑时间"FilePath": "Do not edit", // 文件在项目中的相对路径 自动更新"Description": "", // 介绍文件的作用、文件的入参、出参。},// 函数注释"fileheader.cursorMode": {"description": "", // 函数注释生成之后,光标移动到这里"param": "", // param 开启函数参数自动提取 需要将光标放在函数行或者函数上方的空白行"return": "",},// 插件配置项"fileheader.configObj": {"prohibitAutoAdd": ["json", "md"], // 自动添加头部注释黑名单"folderBlacklist": [ "node_modules", "dist" ], // 文件夹或文件名禁止自动添加头部注释"wideSame": true, // 头部注释等宽设置"wideNum": 13,  // 头部注释字段长度 默认为13"functionWideNum": 13, // 函数注释等宽设置 设为0 即为关闭"dateFormat": "YYYY-MM-DD HH:mm", // 时间格式"CheckFileChange": true, // 单个文件保存时进行diff检查"createHeader": true, // 新建文件自动添加头部注释"throttleTime": 60000, // 对同一个文件 需要过1分钟再次修改文件并保存才会更新注释}

Better Comments 扩展

  • 安装

请添加图片描述

  • 使用,正常注释,前面使用相应的前缀即可,插件自带5种高亮注释
// ! 红色的高亮注释
// ? 蓝色的高亮注释
// * 绿色的高亮注释
// todo 橙色的高亮注释
// // 灰色带删除线的注释
// 普通的注释

请添加图片描述

  • 自带的高亮注释不好看的话是可以自定义的,在 settings.json 文件里配置
    "better-comments.tags": [{"tag": "!", // 符号标识"color": "#3498DB", // 注释颜色"strikethrough": false, // 是否添加删除线"backgroundColor": "transparent" // 背景颜色},{"tag": "?","color": "#3498DB","strikethrough": false,"backgroundColor": "transparent"},{"tag": "//","color": "#474747","strikethrough": true,"backgroundColor": "transparent"},{"tag": "todo","color": "#FF8C00","strikethrough": false,"backgroundColor": "transparent"},{"tag": "*","color": "#98C379","strikethrough": false,"backgroundColor": "transparent"}]
  • 也可以自定义自己想要的高亮注释
    {"tag": "my","color": "#d0db45","strikethrough": false,"backgroundColor": "transparent"}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/177598.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NAS-DIP: Learning Deep Image Prior with Neural Architecture Search

NAS-DIP: 用神经结构搜索学习深度图像先验 论文链接:https://arxiv.org/abs/2008.11713 项目链接:https://github.com/YunChunChen/NAS-DIP-pytorch Abstract 最近的研究表明,深度卷积神经网络的结构可以用作解决各种逆图像恢复任务的结构…

《算法通关村——位运算在查找重复元素中的妙用》

《算法通关村——位运算在查找重复元素中的妙用》 在海量数据中,此时普通的数组、链表、Hash、树等等结构有无效了 ,因为内存空间放不下了。而常规的递归、排序,回溯、贪心和动态规划等思想也无效了,因为执行都会超时&#xff0c…

C#-关于日志的功能扩展

目录 一、日志Sink(接收器) 二、Trace追踪实现日志 三、日志滚动 一、日志Sink(接收器) 安装NuGet包:Serilog Sink有很多种,这里介绍两种: Console接收器(安装Serilog.Sinks.Console); File接收器(安装…

Python批量裁剪图像尺寸、压缩图像大小代码实现

from PIL import Image import os import iodef resize_images_in_directory(directory, target_size(240, 240), max_file_size_kb500): #保证处理后的图像集 大小为240*240 且不超过 500Kfor filename in os.listdir(directory):if filename.lower().endswith((.png, .jpg, .…

「go module」一文总结 go mod 入门使用

文章目录 什么是 Go Modules为什么要使用 Modules怎么使用前置条件项目初始化如何安装/管理依赖?依赖安装 go get版本选择方式 替换版本 replace间接依赖 && go mod tidy远程代理 总结 什么是 Go Modules Module 是 Go 的依赖管理工具。 核心概念 Module…

云原生系列Go语言篇-泛型Part 1

“Don’t Repeat Yourself”是常见的软件工程建议。与其重新创建一个数据结构或函数,不如重用它,因为对重复的代码保持更改同步非常困难。在像 Go 这样的强类型语言中,每个函数参数及每个结构体字段的类型必须在编译时确定。这种严格性使编译…

使用vue脚手架创建vue项目

Vue是一个流行的前端框架,可以用简洁的语法和组件化的思想开发单页面应用。Vue脚手架是一个官方提供的命令行工具,它可以帮你快速搭建和配置vue项目的基本结构和依赖。 本文介绍如何使用vue脚手架创建一个vue2项目,并选择一些常用的功能和插件…

git修改远程地址

你好!如果你想在提交时更改项目的提交地址,你可以按照以下步骤进行操作,具体的步骤可能因使用的版本控制工具而异,以下是在Git中的示例: 查看当前远程仓库地址: 使用以下命令查看当前项目的远程仓库地址&am…

Java开源ETL工具-Kettle

一、背景 公司有个基于Kettle二次开发产品主要定位是做一些数据ETL的工作, 所谓的ETL就是针对数据进行抽取、转换以及加载的过程,说白了就是怎么对原始数据进行清洗,最后拿到我们需要的、符合规范的、有价值的数据进行存储或者分析的过程。 一般处理ETL的…

可观测性项目开发与学习ing

http1,2,3的区别 HTTP/1.0、HTTP/1.1、HTTP/2 和 HTTP/3 是不同版本的协议,它们在以下方面有所不同: HTTP/1.0: 是最早的版本,主要特点如下: 每个请求和响应都需要建立一个新的 TCP 连接。不支持持久连接(Keep-Alive&…

【从浅识到熟知Linux】基本指令之man、uname和bc

🎈归属专栏:从浅学到熟知Linux 🚗个人主页:Jammingpro 🐟每日一句:干完饭写篇博客放松一下。 文章前言:本文介绍man、uname和bc指令用法并给出示例和截图。 文章目录 man基本语法功能选项无选项…

人工智能入门,什么是AlphaGo式搜索?

AlphaGo式搜索是一种搜索算法,它是由DeepMind开发的AlphaGo团队在开发AlphaGo程序时使用的搜索策略。 AlphaGo是一个基于人工智能的围棋程序,它在2016年击败了世界冠军柯洁,引起了广泛的关注。 AlphaGo式搜索的核心思想是使用蒙特卡洛树搜索…

Docker:深入解析Nexus技术构建可靠的软件仓库管理系统

1、简述 在现代软件开发中,有效的软件仓库管理是确保项目成功的关键一环。Nexus Repository Manager作为一种流行的仓库管理系统,为开发人员提供了强大的工具,用于存储、检索和管理软件构建。本文将深入解析Nexus技术,探讨其关键…

提示词入门

文章目录 提示词入门Prompt Engneering1.更加**明确**且**具体**的指令2. 编写提示词的方法3. 按需设计和迭代思维 提示词入门Prompt Engneering 1.更加明确且具体的指令 eg: 模糊:介绍一下重庆明确且具体:介绍一下重庆适合情侣周末游玩的景点及当地…

力扣:347.前 K 个高频元素

题目: 给定一个非空的整数数组,返回其中出现频率前 k 高的元素。 示例 1: 输入: nums [1,1,1,2,2,3], k 2输出: [1,2] 示例 2: 输入: nums [1], k 1输出: [1] 提示: 你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中…

HTTPS攻击原理 被攻击该如何防护

简单来说,HTTPS HTTP SSL/TLS。 在 HTTP 协议中,客户端通过网络传输消息与服务器进行通信。但该消息采用明文的原始格式。坏人(攻击者)很容易窃听消息。这就是我们需要 SSL/TLS 的原因。 HTTPS是一种安全的HTTP协议&#xff0c…

天外飞仙,菠萝蜜多斩,灵犀双响炮。。。linux通信之UDP通信

任务: 利用UDP实现基本通信 思路: 1.服务器实现:socket bind recvfrom sendto 2.客户端实现:socket sendto recvfrom //服务器 #include <sys/types.h> #include <sys/socket.h> #include <stdio.h> #include <netinet/in.h>…

OMP: Error #15: Initializing libiomp5md.dll

问题描述 在conda虚拟环境运行程序时&#xff0c;出现以下的错误&#xff1a; 问题原因 anaconda的环境下存在两个libiomp5md.dll文件。 解决方法 一、在代码上加上限制&#xff08;每次都得加&#xff09; import os os.environ[KMP_DUPLICATE_LIB_OK]True 这种方法解决不…

【蓝桥杯选拔赛真题26】C++字符串逆序 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C++字符串逆序 一、题目要求 1、编程实现 2、输入输出 二、算法分析

FreeRTOS-信号量

信号量 信号&#xff1a;起通知作用。 量&#xff1a;表示资源的数量。 当量没有限制时&#xff0c;就是计数型信号量。 当量只有0、1时&#xff0c;就是二进制信号量。 支持的动作&#xff1a;give给出资源&#xff0c;计数值1&#xff1b;take获得资源&#xff0c;计数值-1。…