1.3.2 片段代码和快速重构
输入stf,然后回车,就会生成一批字符串,命名后就是一个StatefulWidget。这就是工具的力量,就像以前用手一块一块砖搬,现在通过卡车一下就能搬一车砖。工具的运用并不会对程序的好坏产生丝毫影响,大神用文本编辑器也能写出非常优秀的代码,但是工具确实能提高生产力,让编程人员少掉些头发。
class TempWidget extends StatefulWidget { @override _TempWidgetState createState() => _TempWidgetState(); } class _TempWidgetState extends State<TempWidget> { @override Widget build(BuildContext context) { return Container(); } }
你有没有想过这是如何实现的?如果可以加以利用,这将是一件很厉害的武器。毕竟把常用的代码片段收集一下,用的时候会很方便,还有一些基本相似的结构,直接生成岂不美哉?在设置(Windows)/首选项(Mac)中选择“Edite→Live Templates”,其中定义了大批模板。最重要的是可以自己添加模板或模板组,将常用代码片段收录其中是很不错的。如果希望生成时可以动态改变,使用$var$即可。注意,需要在底部选择应用的范围。
如果想把一个StatelessWidget改成StatefulWidget怎么办?导包需要我们自己写吗?想要嵌套一个Column、Padding等怎么办?想将箭头函数转化成大括号包裹,或将大括号包裹转化箭头函数怎么办?想将方法写成异步的怎么办?出了错怎么办?
在快捷键里搜一下这个条目,看看对应的快捷键是什么。敲一下,IDE会臆测你的行为并向你提供方法。这样的朋友你要不要来一打儿?平时注意多用用,还有更多的隐藏技能:
想将一个深层组件提取成变量怎么办?想将一个深层组件提取成新组件怎么办?想要对一个变量重命名,有10000处使用点怎么办?这些办法都在Refactor工具族中,Refactor也就是重构的意思。记住快捷键,比如鼠标停在一个组件上,使用Variable...的快捷键,就可以将组件抽离成变量,不然你就要进行选择、复制、粘贴、改名操作。现在一步就能完成,这就是工具的力量。
提示:这里专门提一句,抽离组件是个很实用的操作,通过抽离可以让结构更精简和具有层次性,避免树深的黑洞。不过Flutter Widget...的快捷键和Kotlin的Run Scratch File的快捷键冲突了,所以无法工作,这里只要修改其一即可。