2011-06-11 56 views
46

我一直在尋找各地,但我找不到任何東西。有誰知道在哪裏可以找到關於如何創建Xcode 4插件的文檔?Xcode 4插件開發

+2

的例子一個很好的來源是惡魔包管理器:http://mneorr.github.io/Alcatraz/ – 2013-04-26 18:07:58

回答

53

據我所知沒有官方的方式來創建Xcode 4插件(就像沒有一個v3.x)。

這裏是Xcode的缺乏插件支持的openradar:

請支持第3 雙方通過公共 插件API擴展的Xcode的能力。光圈,Visual Studio, Eclipse,TextMate和其他 應用程序受益於這種 的能力。我希望看到更多 高級重構,代碼分析 (想想Jetharins的Resharper)和 建模。

Provide plugin API for Xcode 4 (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兼容的是,我最後一次檢查,雖然)

+3

所以,正式, Xcode 4不支持插件? – rid 2011-06-11 15:57:36

+1

不,請參閱我的更新答案(特別是鏈接的rdar)。 – Regexident 2011-06-11 16:03:26

+0

@Radu:剛剛添加了一個鏈接,我的答案**CédricLuthi **(aka ** 0xced **)聲明**它實際上可以爲Xcode 4構建插件**。 – Regexident 2011-06-11 16:10:07

2

Xcode中沒有一個公共插件API。

這是早期版本的情況,Xcode 4也是如此。

+0

不知道這可能是什麼原因? – rid 2011-10-27 05:46:58

+0

蘋果公司不評論這樣的事情。 – 2011-10-27 23:56:15

-3

不,Xcode不支持插件,或者你可以嘗試AppCode,另一個iOS/MacOS的IDE,它支持插件開發。

+0

這顯然不是真的,因爲有Xcode的插件可用,並且您可以根據需要輕鬆編寫自己的插件。 – Darrarski 2014-01-23 12:30:14

3

昨天ColorSense for Xcode 4發佈Github上。由於代碼非常緊湊,分佈在三個班上,所以我認爲你應該看看那邊。

7

最好的辦法是看github上插件代碼(見下面一長串):

  • 基本上它的一個插件捆綁。
  • 沒有main.m文件沒有MainMenu.xib
  • 在其init在info.plist中
  • 設置NSPrincipalClass加載第一類:你註冊了AppKit通知
  • 看到代碼樣本
  • 一些檢查mainBundle應用程序ID,以確保這是XCode的
  • Xcode的編輯器窗口類是DVTSourceTextView
  • 其DVTSourceTextView的子類:NSTextView:NSText
  • 小號Ø因爲它不是一個正式的標準,我注意到以不同的方式每個樣品負荷,你可以註冊偵聽其通知NSTextView或NSText
  • 如NSTextViewWillChangeNotifyingTextViewNotification

XCODE PLUGIN樣品

你可以搜索github上/網絡的

'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; 
}