动手写了2个 xcode 插件
最新的 XCode 版本已开放插件开发机制
XXAlignOnSave 插件
博客好像2年没更新了,也忙会了2年,似乎也没停过,这两天用了下XAlign的插件,这个插件用作对选中的code进行简单的align,但人都懒,如果能在保存的时候就自动align就好了,于是就自己动手改造了这个,算是写得第一个插件。
Code和Readme看这里XXAlignOnSave,对原来XAlign的code没有侵入性,不用改XAlign的code,只通过Catogery和Swizzle来做的AOP,这也是做plugin的核心思想,因为Apple并没有直接提供plugin文档和接口,必须拦截IDE的方法调用。
主要做的几个事:
- 植入NSMenuItem到XAlign菜单
- Swizzle XCode的ide_saveDocument方法,用于执行align操作
- 在align之前保存当前光标的位置,replace后要恢复
- 监听IDEEditorDocumentDidChangeNotification事件,判断当前文件是否有更改,没有则无需align
- 获取当前文件的type,目前只格式化:
@[@"public.c-header",@"public.c-plus-plus-header",@"public.c-source",@"public.objective-c-source",@"public.c-plus-plus-source",@"public.objective-c-plus-plus-source"
- 限制字符数,目前上限100w
Demo
References:
JSonValidator 插件
新的App架构可以不用升级App就能通过配置化的文件对在线PaaS资源进行安装升级了,我们这一套配置化文件都是用的json格式,这两天正在写插件,就写了一个校验json的插件,而之前的做法是去JSon Formatter去复制粘贴,而且网站有时又比较慢,用起来不方便。
Code和Readme看这里YJsonValidator
没找到合适的插件,就自己写了,写起来很简单,利用NSJSONSerialization的error message,它的错误信息了包含了出错json的位置信息,只需要做个正规匹配把位置找出来,然后设置下当前Editor光标位置就可以了,有了这个对我写配置文件就很方便了。