46 votes

Xcode 4 développement d'un plugin

J'ai cherché partout mais je ne trouve rien. Personne ne sait où trouver de la documentation sur la façon de créer un Xcode 4 plugin?

53voto

Regexident Points 17722

Autant que je sache, il n'y a pas de manière officielle pour créer Xcode 4 plugins (tout comme il n'y en avait pas un pour v3.x).

Voici un openradar sur Xcode du manque de support de plugin:

S'il vous plaît soutenir la capacité pour la 3e les parties à étendre Xcode par l'intermédiaire d'un public API de plugin. L'Ouverture, Visual Studio, Eclipse, TextMate et d'autres les applications de bénéficier de cette capacité. J'aimerais voir plus avancé refactorings, d'analyse de code (pensez à Resharper par Jetbrains) et la modélisation.

Fournir des API de plugin pour Xcode 4 (rdar://8622025)

Veuillez dupe si vous voulez plugins!


Edit: Viens de tombé sur ceci:

Cédric Luthi: "Xcode 4 prend en charge définis par l'utilisateur plugins, voir CLITool-InfoPlist pour un exemple d'un travail Xcode 4 plugin. Vous avez juste à ajouter XC4Compatible (true) dans le Info.plist."

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


Cela étant dit, ces GitHub repos peut être pratique, trop:


De plus mogenerator's Xmod plugin peut être un bon point de départ.
(N'était pas Xcode-4 compatible pourtant, la dernière fois que j'ai vérifié, tout de même)

7voto

brian.clear Points 2424

La meilleure façon d'apprendre est de regarder github code du module (voir la longue liste ci-dessous):

  • Fondamentalement, de son un plugin bundle.
  • La principale.m N MainMenu.xib
  • Première classe chargée par la mise en NSPrincipalClass en info.plist
  • dans son init: vous vous inscrivez pour AppKit notifications
  • Voir les exemples de code
  • certaines vérifier la mainBundle l'id de l'application pour vérifier que c'est XCode
  • XCode fenêtre de l'Éditeur de classe est DVTSourceTextView
  • Sa une sous-classe de DVTSourceTextView :NSTextView : NSText
  • donc, vous pouvez vous inscrire pour écouter le son des notifications pour NSTextView ou NSText
  • comme NSTextViewWillChangeNotifyingTextviewnotification

Parce que ce n'est pas une norme officielle, j'ai remarqué chaque échantillon charges de différentes manières.

XCODE PLUGIN ÉCHANTILLONS

compilé par la recherche github/web pour les

'DVTSourceTextView'

C'est le Xcode fenêtre de l'Éditeur du nom de la classe

ou

Info-liste des principaux

'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

POUR OBTENIR DE L'NSTextView qui est de la console

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

4voto

Alexander Points 587

Jetez un oeil à ce nouveau plugin: https://github.com/sap-production/xcode-ide-maven-integration. Peut-être que vous pouvez tirer quelques concepts pour votre plugin.

3voto

Jens Kohl Points 2407

Hier ColorSense pour Xcode 4 a été publié sur Github. Depuis que le code est vraiment compact, réparties sur seulement 3 classes, je pense que vous devriez jeter un oeil là-bas.

2voto

Chris Hanson Points 34485

Xcode ne pas avoir un public API de plug-in.

Ce fut le cas avec les versions antérieures, et c'est le cas avec Xcode 4.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X