Live Template groovy脚本的使用
文章目录
Jetbrains 全家桶,包括 android studio, 支持一个东西叫 Live Template
这个东西可以预先储存一个模板, 帮助我们快速开发, 这个功能很多朋友应该都知道,也在用
本篇使用dart
作为主要示例语言, dart 语言语法比较简单, 有 java/js 等常用语言基础的都应该能看懂
简单使用
虽然想要重点介绍 groovyScript 的脚本使用, 但是也应该简单介绍下 Live Template
比如我可以存一个 stful, 然后会自动生成一段代码, 当然这个模板是 flutter 开发自带的
进阶
自己搞一个小模板
这个模板就生成一个我们自己的类库调用, 比如我自己封装了一个 http 访问
1final response = await HttpHelper.fetchString(url);
以这段代码为例, 我们一个小 app 可能有 100 个接口, 这时候 LiveTemplate 就派上用场了
我这里为了图省事, 直接指定只要是 dart 语言都生效
指定变量
使用两个$
符号把变量包起来, 就可以指定变量名称 $1$
相同的变量会被同时编辑
变量名是自己定义的
表达式后面会说
默认值, 只有在没有表达式的时候才有用
是否跳过是说, 如果设置了表达式或者默认值就不再需要手动输入了, 适用于你确定表达式没错的情况
表达式(函数)
Jetbrains 有一个页面来讲预置的表达式和对应的说明
https://www.jetbrains.com/help/idea/2019.2/edit-template-variables-dialog.html#predefined_functions
包括一些常见的功能
- clipboard(): 剪切板
- camelCase(String): 驼峰
- capitalize(String): 首字母大写
- className(): 类名
- date(sDate): 日期
- fileName(): 文件名
- fileNameWithoutExtension(): 无扩展文件名
- groovyScript("groovy code", arg1) :执行 groovy 脚本
比如我可以组合使用一些功能以达到快速输入类名的功能
比如我的 dart 文件名为 test_page.dart
我使用如下的函数 capitalize(camelCase(fileNameWithoutExtension()))
会自动根据文件名生成一个符合 dart 规范的大写驼峰类名
groovy 脚本的使用
前面讲了一些基础, 这一节来说说 groovy 脚本
groovy 是一个 Apache 的语言, 可以编译成 java class,也可以直接运行
开发 android 时绕不开的 gradle 就是 groovy 语法
官网: http://www.groovy-lang.org/
安装
其他环境看情况自己下载
Mac 可以用这个:
$ brew install groovy
基本语法
就不讲了
用 idea 打开,然后看提示 😁
编写一个基本的脚本
根据 Jetbrains 的说明, 需要 return 一个字符串
我脚本内容如下:
1def a = 'I come from groovy';
2return a
在 groovy 中,单引号和双引号基本同义, 建议代码中使用单引号, 因为这样复制到 idea 里不用转义, 当然如果你用了字符串插值的方式另当别论, groovy 中字符串插值只可以用双引号, 这一点和 shell 很类似
在 live template 中使用 groovy
groovyScript("def a = 'I come from groovy';return a")
把这个丑陋的东西复制到表达式框里, 就是把 groovy 脚本的内容放在一个字符串里, 然后作为 groovyScript 的第一参数
嗯 成功了
groovyScript 的简单讲解
类似于 java 或其他语言的不定参数
groovyScript 函数支持参数传递
在 groovy 脚本的内容中, _1
,是第一个参数, _2, _3
依此类推, 据说支持到_n
,也就是无限多
例子: groovyScript("return _1",fileNameWithoutExtension())
直接把无扩展名的文件名作为值返回.
后记
基本的东西就到这了, 抛砖引玉, groovy 可以做的东西很多, 毕竟是一门语言
以上