Hiten's Blog.

AS插件利器,实现依赖库自动补全,支持变量提取和JetPack

字数统计: 1.1k阅读时长: 4 min
2019/05/30 Share

背景

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

功能特色

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

如何获取

AS中安装

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

jar包安装

插件网站:https://plugins.jetbrains.com/plugin/12479

下载地址https://github.com/HitenDev/android-dependencies-completion/releases

您可以在上面两个地址下载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

    1
    2
    3
    4
    5
    6
    //before
    implementation 'com.google.code.gson:gson:2.8.5#'

    //after
    ext.ver_gson = '2.8.5' //please move this code to a unified place.
    implementation "com.google.code.gson:gson:$ver_gson"
  • #号后面追加字符串xxx,则命名为ver_xxx

1
2
3
4
5
6
//before
implementation 'com.google.code.gson:gson:2.8.5#hiten'

//after
ext.ver_hiten = '2.8.5' //please move this code to a unified place.
implementation "com.google.code.gson:gson:$ver_hiten"
  • 使用##生成的全路径变量,命名规则是dep_$artifact
1
2
3
4
5
6
//before
implementation 'com.google.code.gson:gson:2.8.5##'

//after
ext.dep_gson = 'com.google.code.gson:gson:2.8.5' //please move this code to a unified place.
implementation "$dep_gson"
  • ##号后面追加字符串xxx,则命名为dep_xxx
1
2
3
4
5
6
//before
implementation 'com.google.code.gson:gson:2.8.5##hiten'

//after
ext.dep_hiten = 'com.google.code.gson:gson:2.8.5' //please move this code to a unified place.
implementation "$dep_hiten"

插入规则

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

1
ext.ver_gson = '2.8.5' //please move this code to a unified place.

其他

单/双引号不设限

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

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

关注该项目

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

项目地址:
https://github.com/HitenDev/android-dependencies-completion

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

联系我

CATALOG
  1. 1. 背景
  2. 2. 功能特色
  3. 3. 如何获取
    1. 3.1. AS中安装
    2. 3.2. jar包安装
  4. 4. 如何使用
    1. 4.1. 掌握快捷键
    2. 4.2. 基本使用
    3. 4.3. 生成变量
      1. 4.3.1. 直接转
    4. 4.4. 变量规则
      1. 4.4.1. 命名规则
      2. 4.4.2. 插入规则
  5. 5. 其他
    1. 5.1. 再次提示:自动补全不会自动触发,需要用快捷键触发,请读者不要困惑于此。
  6. 6. 关注该项目
  7. 7. 联系我