Xcode 4插件开发

46

我到处都找过了,但是始终找不到任何信息。有人知道如何创建Xcode 4插件吗?


2
一个很好的示例来源是Alcatraz包管理器:http://mneorr.github.io/Alcatraz/。 - Kristopher Johnson
6个回答

53
据我所知,目前没有官方方法可以创建Xcode 4插件(就像v3.x一样)。这是关于Xcode缺乏插件支持的一个openradar:请支持第三方通过公共插件API扩展Xcode。Aperture,Visual Studio,Eclipse,TextMate和其他应用程序受益于此功能。我希望看到更先进的重构、代码分析(类似Jetbrains的Resharper)和建模。如果您需要插件,请为Xcode 4提供插件API(rdar://8622025)。如果您需要插件,请复制此内容!

编辑:刚刚偶然发现了这个:

Cédric Luthi: "Xcode 4支持用户定义的插件,请参考CLITool-InfoPlist获取一个可用的Xcode 4插件示例。您只需在Info.plist中添加XC4Compatible(true)即可。"

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


话虽如此,这些GitHub存储库也可能很有用:


此外mogenerator的Xmod插件可能是一个很好的起点。
(上次我检查时还不兼容Xcode-4)


@Radu:我刚刚在我的回答中添加了一个链接,其中Cédric Luthi(又名0xced)表示实际上可以为Xcode 4构建插件 - Regexident
@Regexident,我明白了。这种缺乏支持的情况非常不幸。非常感谢您提供的链接。另外,我更新了问题,正在寻找更简单的方法。 - rid
这可能更适合作为一个单独的问题。保持该问题的主题性,并且方便其他人在Xcode插件上进行查找。 - Regexident
@Radu:谢谢。那么,我想这个问题应该已经被回答了。 ;) 你愿意接受它吗?(顺便说一下,我已经回答了你的后续问题。最后还是有时间给你写出了答案 :P) - Regexident
1
XC4Compatible解决方案运作良好!我们最终为Xcode 4更新了XcodeColors插件:https://github.com/DeepIT/XcodeColors - UncleMiF

7

学习的最佳方式是查看GitHub插件代码(请参见下面的长列表):

  • 基本上这是一个插件包。
  • 没有main.m,也没有MainMenu.xib。
  • 通过在info.plist中设置NSPrincipalClass来加载第一个类。
  • 在其init方法中:您可以注册AppKit通知。
  • 查看代码示例。
  • 一些检查mainBundle应用程序ID以确保这是XCode。
  • XCode编辑器窗口类是DVTSourceTextView。
  • 它是DVTSourceTextView:NSTextView:NSText的子类。
  • 因此,您可以注册侦听其NSTextView或NSText的通知。
  • 例如NSTextViewWillChangeNotifyingTextViewNotification。

由于它不是官方标准,我注意到每个示例都以不同的方式加载。

XCODE插件示例

通过在GitHub / Web上搜索编译

'DVTSourceTextView'

这是Xcode编辑器窗口的类名。
或者
信息列表键。
'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
- (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;
}

4

3

昨天,Xcode 4的ColorSense在Github上发布。由于代码非常紧凑,只分布在3个类中,我认为你应该去那里看一看。


2

Xcode没有公开的插件API。

早期版本就是这样,Xcode 4也不例外。


这可能是什么原因呢? - rid
苹果不会就此事发表评论。 - Chris Hanson

-3
不,Xcode不支持插件,但你可以尝试使用AppCode,另一个适用于iOS/MacOS的IDE,它支持插件开发。

这显然是不正确的,因为Xcode有可用的插件,如果需要的话,你也可以很容易地编写自己的插件。 - Darrarski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接