【问题标题】:Load Xcode snippets with restarting the Xcode通过重新启动 Xcode 加载 Xcode 片段
【发布时间】:2013-12-04 07:20:34
【问题描述】:
我正在为 Xcode 创建一个插件。它将从远程位置下载代码 sn-ps
并放入 Xcode 用户 sn-ps 文件夹。这是
~/Library/Developer/Xcode/UserData/CodeSnippets
除了每次下载代码 sn-ps 时我都需要重新启动 Xcode 之外,一切都运行良好。我想在不重新启动 Xcode 的情况下加载新添加的代码 sn-ps。
有什么建议吗?
【问题讨论】:
标签:
ios
objective-c
plugins
xcode5
code-snippets
【解决方案1】:
我最近写了一个类似的插件来将 sn-ps 与 git 存储库同步。你可以在这里查看源代码:https://github.com/acoomans/ACCodeSnippetRepositoryPlugin。
当 sn-ps 更改(双向)时更新 sn-p 库并非易事,并且需要 swizzling XCode 的内部类。
Xcode 有一个 IDECodeSnippetRepository 类,负责在创建或编辑时将 sn-ps 保存在磁盘上,并在删除时删除它们。
ACCodeSnippetRepositoryPlugin 有一个 IDECodeSnippetRepositorySwizzler 类,该类将 saveUserCodeSnippetToDisk: 和 removeCodeSnippet: 方法与我自己的自定义实现进行同步,同步 sn-p与 git 回购。
实际上,准确地说,我的 IDECodeSnippetRepositorySwizzler 可以附加多个代码 sn-p 数据存储,并将调用 addCodeSnippet: 和 removeCodeSnippet:当创建/编辑/删除事件发生时,他们每个人的 em> 方法。
ACCodeSnippetRepositoryPlugin 旨在能够管理多个 sn-ps 源(如 git、gist 等),但我还没有完成它的实现。
我给出这个精度是因为,我不知道你想用什么来同步你的 sn-ps,但我可能会将你的功能添加到 ACCodeSnippetRepositoryPlugin 中。