博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AS插件利器,实现依赖库自动补全,支持变量提取和JetPack
阅读量:7052 次
发布时间:2019-06-28

本文共 2507 字,大约阅读时间需要 8 分钟。

背景

最近博主在关注JetPack相关内容,发现从support转到androidx后,很多依赖库的名称变化有点大,每次想添加一个依赖库,都都得扒一扒官网查看路径和版本,确实有点难受。不过在jetbrains插件世界里,有一款可以自动补全的插件,它只支持从mavenCentral()搜索并不支持google()的仓库,所以android-dependencies-completion应运而生,这是一款尝试对Android开发友好的dependencies补全插件。

功能特色

  • 支持gradle依赖库名称自动补全,包括Jetpack相关的软件包
  • 支持版本号提取生成变量和整个路径提取生成变量
  • 变量提取功能可以单独使用
  • 简洁明了的用户界面

如何获取

AS中安装

在Android Studio->Setting ->Plugins中搜索关键字:android-dependencies-completion 或者 12479

jar包安装

插件网站:

下载地址

您可以在上面两个地址下载jar包,AS安装本地jar插件的方法比较简单,这里就不啰嗦了;

如何使用

掌握快捷键

由于插件依赖 Code Completion->SmartType Completion,所以使用时务必保证SmartType Completion是开启的,而且包装SmartType Completion的快捷键不和其它快捷键冲突;

默认快捷键:

  • MacOS ^(control) + ⇧(shift) + space
  • Windows ctrl + alt + space
  • Linux ctrl + shift + space

据悉Windows快捷键和系统的快捷键冲突,请使用的小伙伴耐心解决一下冲突,千万不要因此而放弃;

基本使用

在项目gradle文件中输入字符串时,如果需要补全,请按下快捷键

使用场景不限制build.gradle,也不限制dependencies下,更不限制是implementation还是compile

通常Anroid开发者喜欢把依赖库统一放置,不见得定义在build.gradle中,所有这种场景还是得支持;

生成变量

Android开发习惯把gradle依赖库提取成变量,这种场景也是考虑在内,操作方式是在输入字符串的尾部添加#符号;

  • 添加一个#,表示需要提取版本号
  • 添加两个##,表示需要把整个字符串都提取出来;

常见场景:

由于依赖库字符串是由group:artifact:version三部分组成,而用户输入关键字时大部分都不会是完整的三段式,所以#支持在缺少的状态下完成;

  • 关键字+#

  • group:artifact:+#

直接转

  • group:artifact:version+# 当字符串是由完整的格式加#时,会直接提取变量并完成替换

变量规则

命名规则

  • 使用#生成的版本变量,命名规则是ver_$artifact
//beforeimplementation 'com.google.code.gson:gson:2.8.5#'//afterext.ver_gson = '2.8.5' //please move this code to a unified place.implementation "com.google.code.gson:gson:$ver_gson"复制代码
  • #号后面追加字符串xxx,则命名为ver_xxx
//beforeimplementation 'com.google.code.gson:gson:2.8.5#hiten'//afterext.ver_hiten = '2.8.5' //please move this code to a unified place.implementation "com.google.code.gson:gson:$ver_hiten"复制代码
  • 使用##生成的全路径变量,命名规则是dep_$artifact
//beforeimplementation 'com.google.code.gson:gson:2.8.5##'//afterext.dep_gson = 'com.google.code.gson:gson:2.8.5' //please move this code to a unified place.implementation "$dep_gson"复制代码
  • ##号后面追加字符串xxx,则命名为dep_xxx
//beforeimplementation 'com.google.code.gson:gson:2.8.5##hiten'//afterext.dep_hiten = 'com.google.code.gson:gson:2.8.5' //please move this code to a unified place.implementation "$dep_hiten"复制代码

插入规则

变量生成的代码,会在当前光标上一行插入,并和当前行左对齐,理论上这行代码放在此处不讲究,所以通常还需要作者把这行代码移动到项目的指定位置;

ext.ver_gson = '2.8.5' //please move this code to a unified place.复制代码

其他

单/双引号不设限

gralde字符串中可以使用$引用变量,前提是字符串必须是双引号"包裹,我此处做了特殊转换,用户输入时不用在意是单引号还是双引号,只管使用#生成就行;

再次提示:自动补全不会自动触发,需要用快捷键触发,请读者不要困惑于此。

关注该项目

如果您对这个功能感兴趣,可以加入一起完善:

项目地址:

您有新的想法,欢迎私聊我或者在github上添加issues;

联系我

  • 昵称: HitenDev
  • 邮箱: zzdxit@gmail.com
  • gayhub :
  • 掘金:

转载于:https://juejin.im/post/5cee3498e51d4556be5b39e4

你可能感兴趣的文章
bestcoder Round #7 前三题题解
查看>>
从零开始建设个人网站
查看>>
ASP.NET Core的Data Protect(数据保护)的学习和应用
查看>>
python学习记录(三)------第一个python程序,hello,world
查看>>
[javaEE] Servlet的手动配置
查看>>
c#动态类型
查看>>
iOS开发--Swift 基于AFNetworking 3.0的网络请求封装
查看>>
WebService 的Description 属性说明(转)
查看>>
select下拉框可以直接取list里的内容 不用非得转map (不得不承认我是个ZZ,这么简单的问题才反应过来,--^--)...
查看>>
IOS UITableView下拉刷新
查看>>
高性能MySQL(第三版)
查看>>
微信小程序项目实践 项目范围及开发计划
查看>>
js 将json字符串转换为json对象的方法解析
查看>>
1.hive数据库调优之路
查看>>
BZOJ-1087: [SCOI2005]互不侵犯King (状压DP)
查看>>
AVS SampleApp
查看>>
Qt图形视图框架公开课资料
查看>>
C++容器(五):set类型
查看>>
重新绘制TabControl的Tabpage标签,添加图片及关闭按钮
查看>>
C#线程调用带参数的方法
查看>>