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++中有一个重要特性,那就是模板类型 ...
随机推荐
- 三个小项目入门Go语言|字节青训营笔记
前言 这是青训营的第一课,今天的课程比较快速的讲解了go语言的入门,并配合三个小的项目实践梳理所学知识点,这里详细回顾一下这三个项目,结合课后作业要求做一些代码补充,并附上自己的分析,青训期间的所有课 ...
- 一键解决Win10 LTSC 2021官方镜像存在的问题
一键解决Win10 LTSC 2021官方镜像存在的问题 由于适用了win10 ltsc 2021之后,发现官方镜像存在一些致命的bug.但是本人又喜欢这个官方精简的系统,所以进行了一些修复.并将搜集 ...
- 521. Longest Uncommon Subsequence I - LeetCode
Question 521. Longest Uncommon Subsequence I Solution 题目大意:给两个字符串,找出非共同子串的最大长度 思路:字符串相等就返回-1,不等就返回长度 ...
- Java实现飞机大战游戏
飞机大战详细文档 文末有源代码,以及本游戏使用的所有素材,将plane2文件复制在src文件下可以直接运行. 实现效果: 结构设计 角色设计 飞行对象类 FlyObject 战机类 我的飞机 MyPl ...
- 给IDEA道个歉,这不是它的BUG,而是反编译插件的BUG。
你好呀,我是歪歪. 上周我不是发了<我怀疑这是IDEA的BUG,但是我翻遍全网没找到证据!>这篇文章吗. 主要描述了在 IDEA 里面反编译后的 class 文件中有这样的代码片段: 很明 ...
- MySql笔记Ⅰ
MySql part 1: 数据库概念 数据库:(DataBase, 简称DB):数据库中的数据按一定的数据模型组织.描述和储存,具有较小的冗余度.较高的数据独立性和易扩展性,并可为各种 用户共享 数 ...
- MySQL之事务和redo日志
事务 事务的四个ACID特性. Atomicity 原子性 Consistency 一致性 Isolation 隔离性 Durability 持久性 原子性 原子性即这个事务的任务要么全做了,要么全部 ...
- Vmware虚拟机安装及相关配置流程
1.Vmware虚拟软件安装 1.1下载地址 vmware 12 pro 的版本稳定性较好,所有我们最好选择该版本 下载地址:https://www.onlinedown.net/soft/10053 ...
- 前端5jQuery
内容概要 jQuery简介 查找标签 jQuery操作标签 jQuery事件操作 jQuery动画效果(了解) 前端第三方框架(基础) 内容详情 jQuery简介
- 总结 到 GDOI 2021 这个阶段
截止本蒟蒻第一次体验省选(虽然是普及组) 本蒟蒻已经有了许多收获,却也有很多不足 优点 对一些学过的知识掌握还行 没了 缺点 会却做不出来 有一些题不难,却想不到正解 如 Day2 T1 ,就是移一下 ...