一只快速生成代码的Xcode插件FastStub
ArlTepper
8年前
<p><a href="/misc/goto?guid=4959673734610330422" rel="nofollow,noindex">插件github地址</a> ,这款插件的灵感来源于Android Studio,在AS当中按 cmd+N 可以呼出generate code菜单,快速生成一系列模板代码。比如自动解析出super class当中还没有被override的方法,比如自动生成Constructor,并选择要传入的参数等。</p> <h2>插件原型</h2> <p>在Android Studio中可以这样重载父类的方法。</p> <p><img src="https://simg.open-open.com/show/636f0709f418bb7dd18c36da20dbf3bc.png"></p> <p>支持多选,按回车一键插入多个方法的实现。</p> <h2>Xcode版插件FastStub</h2> <h3>自动插入方法实现</h3> <p>FastStub实现了类似的功能,能自动解析出某个类 <strong>头文件</strong> , <strong>父类</strong> , <strong>所有protocol</strong> 里面还没有被实现的方法,生成完整的列表,并提供类似Android Studio的操作,一键插入多个方法的实现代码。类似这样:</p> <p><img src="https://simg.open-open.com/show/0285d08b5d5ee4366727f9182357ce03.gif"></p> <p>这样可以避免在头文件写好方法声明之后,再去.m文件将方法的实现敲一遍。</p> <h3>支持原生protocol</h3> <p>对于经常写UITableView delegate,datasource回调方法的同学应该有这样的经历,需要经常切换到UITableViewDelegate的protocol声明文件中去查看某个实现的方法,FastStub可以留着当前文件快速的查看,并插入相关代码。类似这样:</p> <p><img src="https://simg.open-open.com/show/d26afeb57f70c5b24953a1466456d4b2.gif"></p> <h3>最快速的单例实现方式</h3> <p>FastStub能自动解析出当前类名,并在.h .m文件中插入相关的单例代码,类似这样:</p> <p><img src="https://simg.open-open.com/show/a3a46681eb4bb2665906083836672926.gif"></p> <h3>类的拓展也很方便</h3> <p>对于经常写interface extension的同学,FastStub也可以帮你节省一些时间,一键生成:</p> <p><img src="https://simg.open-open.com/show/af0cf67f58564b15d53faeb7aab048b5.gif"></p> <h3>后续工作</h3> <p>现在是采取regex来提取类名及相关的方法,虽然经过一段时间的使用,能正确支持绝大部分的场景,但无法保证绝对的准确性,后续可能会通过其他类似AST的方式来做语法分析。</p> <p>现阶段能生成singleton,interface extension的代码,后续可以支持更多,类似property的getter,setter,model的constructor等。</p> <p> </p> <p> </p>