IDEA自定义liveTemplates(方法模板、类模板)
IDEA自定义liveTemplates(方法模板、类模板)
前言,搞这个模板有何意义? 降低大家写方法注释的成本,统一风格。有时候不是开发同学不爱写注释,而是没有合适的载体和空间。
IDEA模板设置入口
模板设置入口: Preferences | Editor | Live Templates
一、方法注释快速生成设置
第一步
点击号,增加模板,并设置快捷键为'ff',作用域为Java文件
模板内容
/**
* $description$
$params$
* @return {@link $retrun$}
* @author $author$
* @date $date$
*
*/
第二步 配置变量
点击EDIT VARIABLES有弹框
对几个$$的变量进行配置,如\(description\)
其中params特别注意,要配置groovy脚本,才能自动识别方法参数,如下
groovyScript("def result = ''; def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for (i = 0; i < params.size(); i++) { if (i == 0) { if (1 == params.size()) { result += ' * @param ' + params.getAt(i) + ' description ' } else { result += ' * @param ' + params.getAt(i) + ' description \\n\\b' } } else { result += ' * @param ' + params.getAt(i) + ((i < params.size() - 1) ? ' description \\n\\b' : ' description ') } }; return result ", methodParameters())
第三步 使用
随意点击某个方法
例如
public String main(String[] args, String aaa) {
在此处键入ff后,按tab键,即可生成模板注释,将模板注释复制到方法上,格式化即可
return "";
}
结果
/**
* main
*
* @param args description
* @param aaa description
* @return {@link String}
* @author starkhu
* @date 2021/6/23
*/
public String main(String[] args, String aaa) {
return "";
}
其他常用模板
todo的模板,带有生成todo的责任人和时间
// TODO: (所属人:$author$ $date$ $time$) description
常用函数
currentPackage()
Returns the name of the current package (with the class where you expanded the template).
date([format])
Returns the current system date.
By default, without a parameter, it returns the date in the current system format. To use a different format, provide a parameter according to the SimpleDateFormat specification. For example, the date("Y-MM-d, E, H:m") returns the date formatted as 2020-02-27, Thu, 16:11.
fileName()
Returns the name of the current file with its extension.
fileNameWithoutExtension()
Returns the name of the current file without its extension.
filePath()
Returns the absolute path to the current file.
fileRelativePath()
Returns the current file path relative to the current project. To check what the relative path is for a given file, right-click it and select Copy Reference, or press ⌥ ⇧ ⌘ C.
groovyScript(, [arg, ...])
Executes the Groovy script passed as a string.
The first argument is a string with either the text of the script or the path to the file that contains the script. The function passes other optional arguments to the script as values for _1, _2, _3, ..., _n variables. Also, you can access the current editor from inside the script using the _editor variable.
methodName()
Returns the name of the method in which the template expands.
methodParameterTypes()
Returns the list of parameter types of the method in which the template expands.
methodParameters()
Returns the list of parameter names of the method in which the template expands.
methodReturnType()
Returns the type of the value returned by the current method in which the template expands.
qualifiedClassName()
Returns the fully qualified name of the current class in which the template expands.
user()
Returns the name of the current user.
团队中,导出/导入自定义liveTemplate
导出Export live template configuration
点击 File | Manage IDE Settings | Export Settings from the menu.
导入Import live template configuration
点击 File | Manage IDE Settings | Import Settings from the menu.
IDEA自定义liveTemplates(方法模板、类模板)的更多相关文章
- C++程序设计方法4:类模板
类模板 在定义类时也可以将一些类型抽象出来,用模板参数来替换,从而使类更具有通用性.这种类被称为模板类,例如: template <typename T> class A { T data ...
- C++ - 模板类模板成员函数(member function template)隐式处理(implicit)变化
模板类模板成员函数(member function template)隐式处理(implicit)变化 本文地址: http://blog.csdn.net/caroline_wendy/articl ...
- C++函数模板&类模板
函数模板 模板概念及语法 主要目的,简化代码,减少重复代码.基本语法格式: template<class T> 或者 template<typename T> //末尾不加分 ...
- C++ 函数模板&类模板详解
在 C++ 中,模板分为函数模板和类模板两种.函数模板是用于生成函数的,类模板则是用于生成类的. 函数模板&模板函数 类模板&模板类 必须区分概念 函数模板是模板,模板函数时 ...
- C++ 函数模板/类模板
#include <iostream> #include <vector> using namespace std; template < class T > // ...
- 函数模板&类模板
#include <iostream> #if 0//函数模板 template<typename T> T max(T a, T b, T c)//函数模板 { if (a ...
- 类模板、Stack的类模板实现(自定义链栈方式,自定义数组方式)
一.类模板 类模板:将类定义中的数据类型参数化 类模板实际上是函数模板的推广,可以用相同的类模板来组建任意类型的对象集合 (一).类模板的定义 template <类型形参表> clas ...
- C++类模板和模板类
C++ 中有一个重要特性,那就是模板类型.类似于Objective-C中的泛型.C++通过类模板来实现泛型支持. 1 基础的类模板 类模板,可以定义相同的操作,拥有不同数据类型的成员属性. 通常使用t ...
- 【C++】C++中的类模板
基础的类模板 模板类的继承 内部声明定义普通模板函数和友元模板函数 内部声明友元模板函数+外部定义友元模板函数 声明和定义分别在不同的文件(模板函数.模板友元) C++中有一个重要特性,那就是模板类型 ...
随机推荐
- Django学习——分页器基本使用、分页器终极用法、forms组件之校验字段、forms组件之渲染标签、forms组件全局钩子,局部钩子
内容 1 分页器基本使用 2 分页器终极用法 3 forms组件之校验字段 1 前端 <!DOCTYPE html> <html lang="en"> &l ...
- 基于STM32+华为云IOT设计智能称重系统
摘要:选择部署多个重量传感器和必要的算法.通过WiFi 通信模块.GPS定位模块,采集车辆称重数据一地理位置信息,并通过网络发送至云平台,设计图形化UI界面展示称重.地图位置等重要信息,实现对称重系统 ...
- Java高并发-无锁
一.无锁类的原理 1.1 CAS CAS算法的过程是这样:它包含3个参数CAS(V,E,N).V表示要更新的变量,E表示预期值,N表示新值.仅当V值等于E值时,才会将V的值设为N,如果V值和E值不同, ...
- 好客租房1-React基础目标
学习目标 能够说出React是什么 掌握react的特点 掌握react的基本使用 能够使用react脚手架 学习目录 react概述 react基本使用 react脚手架
- IPC机制与线程的操作
目录 Queue模块 IPC机制(进程间通信) 生产者消费者模型 线程理论 创建线程的两种方式 线程实现TCP服务端的并发 线程join方法 线程数据共享 线程对象属性和方法 守护线程 GIL全局解释 ...
- 解放双手!推荐一款 GitHub 星标 8.2k+的命令行软件管理器,非常酷炫!
小二是公司新来的实习生,之前面试的过程中对答如流,所以我非常看好他.第一天,我给他了一台新电脑,要他先在本地搭建个 Java 开发环境. 二话不说,他就开始马不停蹄地行动了.真没想到,他竟然是通过命令 ...
- Border性质习题与证明
KMP 第一次接触 \(border\) 都是先从 KMP 开始的吧. 思想在于先对于一个串自匹配以求出 fail 指针(也就是 border) 然后就可以在匹配其他串的时候非常自然的失配转移.在此顺 ...
- Keil软件下用Jlink无法识别芯片
Keil软件下用Jlink无法识别芯片 硬件:正点原子探索者 软件:keil J-Link固件版本:V9.40 J-Link V6.94b驱动:下载地址 跟着视频教程走,发现的第一个问题就是这个,记录 ...
- SpringCloud 配置管理:Nacos
目录 统一配置管理 配置热更新 配置共享 多环境配置共享 多服务配置共享 统一配置管理 将配置交给 Nacos 管理的步骤: 在 Nacos 中添加配置文件. 在微服务中引入 nacos 的 conf ...
- Go微服务框架go-kratos实战05:分布式链路追踪 OpenTelemetry 使用
一.分布式链路追踪发展简介 1.1 分布式链路追踪介绍 关于分布式链路追踪的介绍,可以查看我前面的文章 微服务架构学习与思考(09):分布式链路追踪系统-dapper论文学习(https://www. ...