美文网首页 ios 开发资料
动手自己写一个 xcode 8 插件(Xcode Source

动手自己写一个 xcode 8 插件(Xcode Source

作者: supersmalltalk | 来源:发表于2016-08-31 09:15 被阅读3094次

动手自己写一个 xcode插件  (暂时需要注释功能,所以简单的写一个注释插件)

-----Xcode Source Editor Extensions-----


-----------------------------------------------------------------------

ps:

插件显示,需要开发者证书(免费 or 付费)

Extensions for Xcode 8

据说10.11需要打开terminal,然后执行命令sudo /usr/libexec/xpccachectl 一次(建议重启)

插件是可以在Xcode的Preferences的Key Bindings中设置快捷键的


-----------------------------------------------------------------------

开始:

1:创建Project,并且选中OS X - Application - Cocoa Application,

就像穿件一个iOS 项目和其他插件(today,share,action.....)等等一样的关系,

2:添加Target,选择OS X - Application Extensions - Xcode Source Editor Extension

这样就创建了插件,并生成了两个(默认名称为SourceEditorCommand,SourceEditorExtension)

这里名称是可以改的,改了之后只需要在Target的info.plist中修改

XCSourceEditorCommandClassName 对应 SourceEditorCommand

XCSourceEditorExtensionPrincipalClass 对应 SourceEditorExtension

我们看到XCSourceEditorCommandDefinitions这个数组

这个地方就是这个插件所有的功能配置的地方,使用XCSourceEditorCommandIdentifier区分

我们主要撰写的代码在SourceEditorCommand中,需要运行插件的时候,会回调

- (void)performCommandWithInvocation:(XCSourceEditorCommandInvocation *)invocation completionHandler:(void (^)(NSError * _Nullable nilOrError))completionHandler

{

completionHandler(nil);

}

这个XCSourceEditorCommandInvocation *invocation中就有我们需要的全部信息,选择了哪一行,那一列,内容,等等等等

运行效果如上,选择两个功能的时候,使用

NSString *identifier = invocation.commandIdentifier;

来区分identifier是哪一个XCSourceEditorCommandIdentifier以调取不同的功能代码


-----------------------------------------------------------------------

Demo:

WTxcodeToolBox (注释功能)

最近用xcode 8,

1:CommentStatement 插件

包含功能:

(1):CommentStatement 注释掉代码(即xcode原有的Comment Statement功能,因为xcode 8有bug 所以...)等效于 "command + /"; Screenshot

(2):DocumentAdd 添加注释 (超级简单的山寨VVDocumenter)...暂时只能识别Objective-C Screenshot

相关文章

网友评论

  • dev_wave:hi~~ 我最近在搞xcode插件 方便加你个好友讨论些问题嘛~~
  • Easy_VO:可以可以
  • ldldlkdldld:扩展菜单没出现,请问有遇到过吗?下载的demo也不行。我的xcode去掉了代码签名,不知道是不是这个问题导致的。
    supersmalltalk:@周永强 于是乎我编译之后,把.appex文件放到/Applications/Xcode.app/Contents/PlugIns 下了,虽然不知道理论上应该在哪儿,但是放在这里再打开Xcode是可见的
  • Bug集:测试完了,如何在xcode当中真正使用插件
  • Bug集:插件项目结束运行后,editor里面就没有了
    supersmalltalk:@zhaodai 项目编译后,会在项目目录里的Products中有个apex文件和.app文件啊
    zhaodai:@supersmalltalk .appex是个啥么东西 在哪啊
    supersmalltalk:@端庄的石头2013 于是乎我编译之后,把.appex文件放到/Applications/Xcode.app/Contents/PlugIns 下了,虽然不知道理论上应该在哪儿,但是放在这里再打开Xcode是可见的

本文标题:动手自己写一个 xcode 8 插件(Xcode Source

本文链接:https://www.haomeiwen.com/subject/puyqettx.html