2009-03-21 6 views
16

私は最近私のコード編集のためにemacsに切り替えました。Emacs、Objective-C、オートコンプリート

しかし、私は、このような

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

限り、関数名を覚える手間を持っているとして、自分自身がXcodeののオートコンプリート機能が不足して見つけるのObjective-Cのためのemacs上のXcodeスタイル自動補完を取得する方法はありますか?

また、ココアやObjective-Cに一般的に役立つパッケージがありますか?

+0

XcodeでEmacsのキーバインディングを使用できるので、Emacsの利点をXcodeで得ることができます。 – TechZen

+0

Objective-Cとの関連性が非常に高いため、「Cocoaオートコンプリート」はまったく異なるものであるため、タグを付けることはできません。 – paulmelnikow

答えて

3

私はXCodeを使っていませんが、emacsにはいくつかのオートコンプリートモードがあります。

参照:dabbrev-拡大に建て

(M-は/コマンドdabbrev-展開する "オートコンプリート" 部分的に書かれたテキストを実行します) cedetの方が洗練されていますが、残念ながら客観的にはうまくいきません。

+1

ありがとう、私はこれらのいずれかが十分にうまくいくかどうかはわかりませんが(コンテキスト感知性は十分ではないようです)、私はObjective-CのXCodeに固執するかもしれません。 – cobbal

5

ややバギーやハックが、非常に素晴らしい解決策はで見つけclang-completion-mode.elありますclang svn

9

私はyasnippetスニペットとしてココアSDKで関数定義をエクスポートするスクリプトを書きました:http://github.com/zegal/yasobjc

をetagsは、オートコンプリートで助けを借りて、完了の経験はXCodeのに非常に近いです。試してみることができます。

+2

非常に賢い、超便利、私はそれが大好き!ありがとうzegal – julien

+1

素敵な仕事!しかし、これをSemanticに結びつけることが可能かどうか疑問に思いますか?メッセージ名を知っていれば、yasnippet + yasobjcは正常ですが、最初に正しいメッセージを見つける必要がある場合はどうすればいいですか?セマンティックは問題のオブジェクトのタイプを判定し、ヤスニッペットからの有効なメッセージを提示することができる。 – Arne

+0

@Arne、私は現在セマンティックが目的をサポートしていないのではないかと心配しています。 – zegal

1

ファイルを編集しauto-complete.el(もちろん、あなたが「オートコンプリート」パッケージをインストールしたフォルダの中を探してください):

五島ライン165は、私はあなたがすでに何をすべきか知っている保証します。 :)

+2

私は 'M-x'カスタマイズ変数' RET'ACモード 'RET'を好む。あなたの中ではさらに良いでしょう。.emacsは 'setq ac-mode(cons 'objc-mode ac-mode)'を追加します。 – mathk