版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CL_YD/article/details/86615291
CaseFormat插件
文章目录
背景
- 数据库表字段名为
this_is_a_column_name
,现在我需要将这张表映射为一个POJO
,MyBatis
/JPA
/Lombok
等都可以自动生成或省很多事儿,但假设需要手动添加一个字段,为了保证字段名称不出错,一般是复制this_is_a_column_name
到JavaBean,然后手动改成驼峰,但是这太不优雅了,我需要一个快捷键,直接从下划线变成驼峰; - 从其他语言移植代码过来,很多变量名称不符合规范,比如
int this_is_a_var_name = 0;
,如果需要修改成驼峰,那是真的难受,我需要一个快捷键直接修改成驼峰; - 有一个驼峰的变量
thisIsACamelVarName
,现在需要将这个变量修改成final static
的成员变量,可以手动修改,但是很麻烦,先全部变成大写,再用下划线连接单词,我需要一个快捷键…… - 不知道从哪里复制来了一个字符串
this is a var name
,我想变成驼峰的,我可能还需要变成大写下划线的,我需要快捷键…… - 我有个变量名
thisIsAValue
,我想用中横线连接……我需要……
不要重复造轮子
我在JetBrains Plugins Repository/github
/google
/baidu
用很多关键字搜索过一遍,最后找到了一个插件UpperLowerCapitalize,这个插件可以通过快捷键让选择的字符串变成全大写、全小写或驼峰,这已经解决了一部分问题了,但是非常有限,还要做二次操作。
下定决心重新写一个插件:case-format。
主要借鉴了guava中的CaseFormat
类,在代码内部转换字符串格式,我都会使用这个工具,但是在IDE层面,我目前还没找到类似的工具。
case-format插件介绍
环境
JDK 1.8
Win 10
IDEAIntelliJ IDEA 2017.2.7
原理
- 通过API获取
Editor
内选中的文本(如果没有选中,就获取光标后的第一个单词); - 判断文本中是否含有空格、中横线
-
或下划线_
,如果有,就以这三种分割符分割出单词列表(三种分隔符可以同时存在); - 如果没有上面的三种分隔符,就默认选中的文本为驼峰,然后以驼峰的规则分割出单词列表;
- 拿到单词列表后,再根据不同的快捷键,用不同的方式处理每个单词,最后再用对应的连接符号连接所有单词列表,返回一个处理过的字符串;
- 将选中的文本替换为处理后的文本。
快捷键
假设选中的文本为this_is_a_var_name
快捷键 | 英文 | 解释 | 结果 |
---|---|---|---|
Alt + H |
lower hyphen |
变成小写中横线连接的字符串 | this-is-a-var-name |
Alt + Shift + H |
upperhyphen |
变成大写中横线连接的字符串 | THIS-IS-A-VAR-NAME |
Alt + M |
lower camel |
变成小写开头的驼峰,因为和UpperLowerCapitalize 的快捷键冲突,所以没有使用ALT + C 的快捷键 |
thisIsAVarName |
Alt + Shift + M |
upper camel |
变成大写开头的驼峰 | ThisIsAVarName |
Alt + U |
lower underscore |
变成小写下划线连接的字符串 | this_is_a_var_name |
Alt + Shift + U |
upper underscore |
变成大写下划线连接的字符串 | THIS_IS_A_VAR_NAME |
例子
lower hyphen
upper hyphen
lower camel
upper camel
lower underscore
upper underscore