CaseFormat 插件——IntelliJ IDEA字符串格式转换插件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CL_YD/article/details/86615291

CaseFormat插件

背景

  • 数据库表字段名为this_is_a_column_name,现在我需要将这张表映射为一个POJOMyBatis/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

猜你喜欢

转载自blog.csdn.net/CL_YD/article/details/86615291