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

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 + Hlower hyphen变成小写中横线连接的字符串this-is-a-var-name
Alt + Shift + Hupperhyphen变成大写中横线连接的字符串THIS-IS-A-VAR-NAME
Alt + Mlower camel变成小写开头的驼峰,因为和UpperLowerCapitalize的快捷键冲突,所以没有使用ALT + C的快捷键thisIsAVarName
Alt + Shift + Mupper camel变成大写开头的驼峰ThisIsAVarName
Alt + Ulower underscore变成小写下划线连接的字符串this_is_a_var_name
Alt + Shift + Uupper underscore变成大写下划线连接的字符串THIS_IS_A_VAR_NAME

例子

lower hyphen

upper hyphen

lower camel

upper camel

lower underscore

upper underscore

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值