首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode 4插件开发

Xcode 4插件开发
EN

Stack Overflow用户
提问于 2011-06-11 23:53:00
回答 6查看 18.1K关注 0票数 46

我到处都找遍了,但什么也没找到。有人知道如何创建Xcode4插件吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-06-11 23:56:13

据我所知,还没有正式的方法来创建Xcode4插件(就像没有针对v3.x的插件一样)。

这是一个关于Xcode缺乏插件支持的公开雷达:

请支持第三方通过公共插件API扩展Xcode的能力。光圈、Visual Studio、Eclipse、TextMate和其他应用程序都从这种能力中受益。我希望看到更高级的重构、代码分析(想想Jetbrains的Resharper )和建模。 (rdar://8622025)

如果你想要插件,请复制这个!

编辑:偶然发现了这个:

:“Xcode4确实支持用户定义的插件,请参阅CLITool-InfoPlist获取Xcode4插件的示例。您只需在Info.plist中添加XC4Compatible (true)即可。”

https://github.com/0xced/CLITool-InfoPlist

也就是说,这些GitHub回购可能也很方便:

此外,的Xmod插件可能是一个很好的起点。

(不过,上次我检查的时候,Xcode-4还不兼容)

票数 53
EN

Stack Overflow用户

发布于 2012-11-02 00:09:24

最好的学习方法是查看github插件代码(参见下面的长列表):

  • 基本上是一个插件捆绑包。
  • No main.m No MainMenu.xib
  • 通过在info.plist
  • 中设置NSPrincipalClass在其初始化中加载的第一类:您注册AppKit通知
  • 查看代码示例

H111一些检查mainBundle应用程序id以确保这是XCode

  • XCode编辑器窗口类是DVTSourceTextView
  • 它是DVTSourceTextView的子类:NSTextView : NSText
  • 因此,您可以注册以侦听#EN20#或#EN21#

因为它不是官方标准,所以我注意到每个样本都以不同的方式加载。

XCODE插件示例

通过在github/web上搜索

代码语言:javascript
复制
'DVTSourceTextView'

这是Xcode编辑器窗口的类名

Info-list键

代码语言:javascript
复制
'XC4Compatible'


https://github.com/omz/ColorSense-for-Xcode

https://github.com/ciaran/xcode-bracket-matcher
- uses a ruby parser run as pipe!

https://github.com/joshaber/WTFXcode
https://github.com/0xced/NoLastUpgradeCheck
http://code.google.com/p/google-toolbox-for-mac/downloads/list
    see GTMXcode4Plugin
https://github.com/DeepIT/XcodeColors
https://github.com/0xced/CLITool-InfoPlist
https://github.com/sap-production/xcode-ide-maven-integration
https://github.com/ciaran/xcode-bracket-matcher

要访问作为控制台的NSTextView

https://github.com/sap-production/xcode-ide-maven-integration

代码语言:javascript
复制
- (NSTextView *)findConsoleAndActivate {
    Class consoleTextViewClass = objc_getClass("IDEConsoleTextView");
    NSTextView *console = (NSTextView *)[self findView:consoleTextViewClass inView:NSApplication.sharedApplication.mainWindow.contentView];

    if (console) {
        NSWindow *window = NSApplication.sharedApplication.keyWindow;
        if ([window isKindOfClass:objc_getClass("IDEWorkspaceWindow")]) {
            if ([window.windowController isKindOfClass:NSClassFromString(@"IDEWorkspaceWindowController")]) {
                id editorArea = [window.windowController valueForKey:@"editorArea"];
                [editorArea performSelector:@selector(activateConsole:) withObject:self];
            }
        }
    }

    return console;
}
票数 7
EN

Stack Overflow用户

发布于 2012-10-22 23:11:33

看看这个新插件:https://github.com/sap-production/xcode-ide-maven-integration。也许你可以为你的插件衍生出一些概念。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6316921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档