【问题标题】:Xcode 4 plugin developmentXcode 4 插件开发
【发布时间】:2011-09-13 02:25:05
【问题描述】:

我找遍了整个地方,但找不到任何东西。有谁知道如何创建 Xcode 4 插件?

【问题讨论】:

标签: xcode plugins xcode4


【解决方案1】:

据我所知没有创建 Xcode 4 插件的官方方法(就像没有用于 v3.x 的插件一样)。

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

请支持第三次的能力 各方通过公共扩展 Xcode 插件 API。光圈,视觉工作室, Eclipse、TextMate 等 应用程序从中受益 能力。我想看更多 高级重构、代码分析 (想想 Jetbrains 的 Resharper)和 造型。

Provide plugin API for Xcode 4 (rdar://8622025)

如果您需要插件,请重复此操作


编辑:偶然发现这个:

Cédric Luthi: "Xcode 4 确实支持用户自定义 插件,见CLITool-InfoPlist 一个工作 Xcode 4 的例子 插入。你只需要添加 XC4Compatible (true) 在 Info.plist。”

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


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


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

【讨论】:

  • @Radu:刚刚在我的答案中添加了一个链接,其中 Cédric Luthi(又名 0xced)指出 实际上是可能的为 Xcode 4 构建插件
  • @Regexident,我明白了。这种缺乏支持是非常不幸的。非常感谢您的链接。另外,更新的问题,寻找更简单的方法。
  • 这可能更适合作为一个单独的问题。为了让这个问题保持主题并方便其他人查找 Xcode 插件。
  • @Radu:谢谢。那么这个问题应该在此得到回答,我猜。 ;) 介意接受吗? (顺便说一句,我已经发布了你的后续问题。毕竟有时间为那个问题写一个答案:P)
  • XC4Compatible 解决方案工作得很好!我们最终为 Xcode 4 更新了 XcodeColors 插件:github.com/DeepIT/XcodeColors
【解决方案2】:

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

  • 基本上它是一个插件包。
  • 没有 main.m 没有 MainMenu.xib
  • 通过在 info.plist 中设置 NSPrincipalClass 加载的第一个类
  • 在其初始化中:您注册 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;
}

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        Xcode 没有公共插件 API。

        早期版本就是这种情况,Xcode 4 也是这种情况。

        【讨论】:

        • 知道这可能是什么原因吗?
        • Apple 不对此类事情发表评论。
        【解决方案6】:

        不,Xcode 不支持插件,或者你可以试试 AppCode,另一个 iOS/MacOS IDE,它支持插件开发。

        【讨论】:

        • 这显然不是真的,因为有可用的 Xcode 插件,如果需要,您可以轻松编写自己的插件。
        猜你喜欢
        • 2010-12-24
        • 2014-05-25
        • 1970-01-01
        • 2013-11-03
        • 2011-09-20
        • 2011-03-21
        • 2012-02-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多