Toolkit 大更新:UI 更美观,用起来更方便!
前言
前段时间有小伙伴在群里聊天,说到 Toolkit
下载量到 4.9k 了。就突然想起来,很久没有更新这个插件。
PS:我是用它申请了 License,一般时候使用 Json 格式化功能。
趁着周末,更新了下版本,下面介绍直接介绍更新后的版本。
功能介绍
UI 界面
这次修改最大的就是 UI 界面,基本参考 Doc View
的 UI,全面进行改造,同时对代码也进行的一定程度上的重构。
同时增加快捷键 Control + Shift + T
直接唤起操作面板的功能。
UI 界面调整,以标签页的形式直接展示功能,方便使用。
Json Format
保留原有功能:
- 代码格式化;
- 压缩为一行;
- 移除文本中的转移符(
\
); - 快捷生成实体类字段。
新增功能:
- 快捷复制;
- 原生查找。
动图演示:
- 快捷键打开
- Json 格式化
- 压缩 Json 字符串为一行
- 查找字段
因为直接使用的原生 Editor 当做面板,所以是支持 ⌘ + F
直接局内搜索的。
- 生成字段
到这里关于 Json 工具的介绍基本就结束了,这也是我在开发过成功经常用到的几个功能。当然快捷复制
、移除转移符
这些功能就需要小伙伴自己研究了。
Copy As Json
当在 Java 类中的时候,可以在右键菜单找到 Copy As Json
这个选项,顾名思义,就是将当前实体类转为 Json 字符串。
如果小伙伴仅仅想使用 Copy As Json 功能,可以在插件商城搜索,有一个插件仅支持将实体复制为 Json。
也有一个注意的地方, 如果 Control + Shift + T
唤起 Toolkit 面板的地方是 Java 实体,这时候 Toolkit 面包会多一个标签页—— Entity Json
,可以直接查看当前实体对应的 Json 字符串。
如果焦点不在 Java 实体中,是没有这个标签页的!
其他功能
- Base64
- Url Encode/Decode
移除功能
- 移除 XML 格式化:
XML 格式化使用场景越来越少,毕竟现在基本上不会有使用 XML 作为请求返回报文的了吧!
- 移除 MyBatis Jump
现在 Toolkit 没有 Mapper 接口和 Mapper XML 之间进行互相跳转,以及检测 Mapper XML 内接口是否重复的功能了。不过可以在插件商城单独下载 MyBatis Jump
。
MyBatis Jump 仅有跳转和检测功能,如果小伙伴们已经使用了带跳转功能的其他 MyBatis 插件,就没必要额外安装这个了。
总结
以上就是这次的更新,主要是还是更方便工作开发。
比如经常性的对请求入参出参的 Json 字符串进行格式化
比如直接根据文档的 Json 串生成实体,省去一个一个定义字段的痛苦。
比如数据库表扩展字段存放的是Json 格式,需要压缩为一行。(IDEA 的 Control + Shift + J
也可以压缩一行)。
等等。
后续的话可能会有 SQL 格式化、Json 字符串对比(对比参数字段是不是少了)。
最后:
代码已经重构,相对比之前结构还是很清晰的。
有其他需要添加的功能可以提交 PR,也可以留言或者提 Issue。
项目地址
项目地址:https://github.com/liuzhihang/toolkit
插件地址:https://plugins.jetbrains.com/plugin/12384-toolkit
相关推荐
Toolkit 大更新:UI 更美观,用起来更方便!的更多相关文章
- 【用户交互】APP没有退出前台但改变系统属性如何实时更新UI?监听系统广播,让用户交互更舒心~
前日,一小伙伴问我一个问题,说它解决了半天都没解决这个问题,截图如下: 大概楼主理解如下: 如果在应用中有一个判断wifi的开关和一个当前音量大小的seekbar以及一个获取当前电量多少的按钮,想知道 ...
- (转).NET 4.5中使用Task.Run和Parallel.For()实现的C# Winform多线程任务及跨线程更新UI控件综合实例
http://2sharings.com/2014/net-4-5-task-run-parallel-for-winform-cross-multiple-threads-update-ui-dem ...
- Android之Handler,举例说明如何更新UI
方法一:(java习惯,在android不推荐使用) 刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 new Thread( new Runnable() { ...
- Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
Android应用的开发过程中需要把繁重的任务(IO,网络连接等)放到其他线程中异步执行,达到不阻塞UI的效果. 下面将由浅入深介绍Android进行异步处理的实现方法和系统底层的实现原理. 本文介绍 ...
- 转:探讨android更新UI的几种方法
本文转自:http://www.cnblogs.com/wenjiang/p/3180324.html 作为IT新手,总以为只要有时间,有精力,什么东西都能做出来.这种念头我也有过,但很快就熄灭了,因 ...
- 【转】探讨android更新UI的几种方法----不错
原文网址:http://www.cnblogs.com/wenjiang/p/3180324.html 作为IT新手,总以为只要有时间,有精力,什么东西都能做出来.这种念头我也有过,但很快就熄灭了,因 ...
- 关于Handler的理解,子线程不能更新UI的纠正和回调的思考
开发Android这么久了,总会听到有人说:主线程不能访问网络,子线程不能更新UI.Android的主线程的确不能长时间阻塞,但是子线程为什么不能更新UI呢?今天把这些东西整理,顺便在子线程更新UI. ...
- UE4/Unity3d 根据元数据自动生成与更新UI
大家可能发现一些大佬讲UE4,首先都会讲类型系统,知道UE4会根据宏标记生成一些特定的内容,UE4几乎所有高级功能都离不开这些内容,一般来说,我们不会直接去使用它. 今天这个Demo内容希望能加深大家 ...
- Android异步处理系列文章四篇之一使用Thread+Handler实现非UI线程更新UI界面
目录: Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+L ...
随机推荐
- 比特币大涨之际,VAST空投火爆来袭!
昨天特斯拉宣布投资了15亿美元的比特币,消息一出,币圈沸腾,比特币瞬间拉升,突破4万美元关口,现价46000美元!大涨20%,又刷新历史新高! 另外NGK项目热度最高的BGV也是不断刷新历史新高,数据 ...
- Redis的数据结构与应用场景
一.Redis简介 Redis 是一个开源的使用 ANSI C 语言编写.遵守 BSD 协议.支持网络.可基于内存.分布式.可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API ...
- Java的稀疏数组的简单代码实现
目录 Java的稀疏数组的简单代码实现 一.稀疏数组的基本概念 二.稀疏数组的Java代码实现思路 三.稀释数组的Java代码实现 四.结语 Java的稀疏数组的简单代码实现 一.稀疏数组的基本概念 ...
- java的read方法
public class RandomAccessDemo6 { public static void main(String[] args) throws IOException { RandomA ...
- Why GraphQL? 6个问题
Why GraphQL? 6个问题 GraphQL, 是一个API的标准: specification. 对于每个新技术, 要搞清楚的6个问题: 1.这个技术出现的背景, 初衷, 要达到什么样的目标或 ...
- Dokcer中Mysql的数据导入导出
导出 1.首先进入容器,输入提取数据库文件命令 mysqldump -u root -p rw 数据库名> 输出.sql,提取到当前容器 2.退出容器,进入linux:输入拷贝命令 docker ...
- Java基础语法:注释
书写注释是一个非常好的习惯. 注释并不会被执行,是给我们写代码的人看的. Java中的注释有三种: 单行注释(Line comment) 多行注释(Block comment) 文档注释(JavaDo ...
- TextView 的append后面 马上调用fullScroll(),会发现无法滚动到真正的底部
如果在TextView的append后面马上调用fullScroll,会发现无法滚动到真正的底部,这是因为Android下很多(如果不是全部的话)函数都是基于消息的,用消息队列来保证同步,所以函数调用 ...
- Codeforces 1167c(ccpc wannafly camp day1) News Distribution 并查集模板
题目: In some social network, there are nn users communicating with each other in mm groups of friends ...
- 进阶Java多线程
一.多线程创建方式 1.1.继承Thread类创建线程类 1.实现步骤 定义一个继承Thread类的子类,并重写该类的run()方法: 创建Thread子类的实例,即创建了线程对象: 调用该线程对象的 ...