2009-03-21 5 views
16

Je suis récemment passé à emacs pour mon édition de code, et ça marche plutôt bien.Emacs, Objective-C et saisie semi-automatique

Cependant, pour Objective-C je me trouve manque la fonction de saisie semi-automatique Xcode que j'ai du mal à se rappeler les longs noms de fonctions telles que

- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation screen:(NSScreen *)screen; 

Y at-il un moyen d'obtenir autocomplétion style Xcode sur emacs?

De même, y a-t-il de bons paquets pour aider avec Cocoa ou Objective-C en général que je devrais avoir?

+0

Je tiens à préciser que vous pouvez utiliser les raccourcis clavier Emacs dans Xcode pour bénéficier de certains avantages d'Emacs dans Xcode. – TechZen

+0

Le cacao non étiqueté, car il est beaucoup plus pertinent pour Objective-C, et parce que "Cocoa autocomplete" est quelque chose de complètement différent. – paulmelnikow

Répondre

3

Je n'ai pas utilisé XCode, mais emacs est livré avec plusieurs modes de saisie semi-automatique.

Voir:

  • construit en dabbrev-expand (M-/exécute la commande dabbrev-expand qui "autocompletes" texte écrit partiellement)
  • AutoComplete
  • HippieExpand

également cedet pour quelque chose de plus sophistiqué - mais je ne pense pas que cela fonctionne avec l'objectif-c malheureusement.

+1

Merci, je ne suis pas sûr que tout cela fonctionnera assez bien (ne semble pas assez contextuel), je pense que je peux simplement coller à XCode pour Objective-C. – cobbal

5

Un peu buggy et hacky, mais une solution très agréable est clang-completion-mode.el trouvée dans la clang svn.

9

j'ai écrit un script pour exporter des définitions de fonctions dans SDK Cocoa sous forme d'extraits de yasnippet: http://github.com/zegal/yasobjc

Avec l'aide ETAGS et auto-complétion, l'expérience d'achèvement est très proche de XCode. Tu peux essayer.

+2

Très intelligent, et super utile, je l'aime! Merci zegal – julien

+1

Beau travail! Cependant, je me demande s'il est possible de lier ceci à Semantic? Si je connais le nom du message, yasnippet + yasobjc sont parfaits pour terminer, mais que se passe-t-il si j'ai besoin de trouver le bon message en premier? Semantic pourrait déterminer le type de l'objet en question, et présenter des messages valables à partir des yasnippets. – Arne

+0

@Arne, je crains que la sémantique actuelle ne supporte pas l'objectif-c .... – zegal

1

Modifier le fichier auto-complete.el (chercher dans le dossier que vous avez installé package « auto-complet », bien sûr):

Aller à la ligne 165, je vous garantis que vous savez quoi faire déjà. :)

+2

Je préfère la variable de personnalisation 'M''' M-x' RET' ac-mode 'RET'. Ou encore mieux dans vous .emacs ajouter '(setq ac-mode (contre 'mode-mode ac-mode))' – mathk