2011-07-19 6 views
3

Qooxdooとemacsをjs2-mode(素晴らしいツールbtw)を使ってプロジェクトを開始していますが、少し問題があります。qooxdooフレームワーククラスの自動完全サポートはありません。現在、私は自動補完モードを有効にしていますが、フレームワーククラスを覚えておく必要はありません。QooxdooのEmacsオートコンプリート?

注: - 私はemacs 24を使用しています。 - 必要に応じて、私は自動補完モードを解除し、代わりに会社モードを使用します。

ありがとうございます!

編集:この作品を作るために、私は、フレームワーク/ソース/クラスディレクトリからクラス名を取得するには少しスクリプトでした。その後

find . -iname '*.js' -print0 | while read -d $'\0' file 
do 
    grep '^qx.Class.define(".*",$' $file | sed 's/qx\.Class\.define("\(.*\)",/\1/' >> ~/.emacs.d/ac-dict/js2-mode 
done 

は、ちょうどsanityincからの回答を追いましたすべてが期待どおりに機能しました。ありがとう!

+0

素敵なスクリプトですが、ファイルへのqx/...パスとそのクラス名との間に1対1の関係があるため、ファイル名だけで逃げることができます(例:パスqx/util /ResourceManager.jsにはqx.util.ResourceManagerクラスが含まれています)。少し楽になります。また、ユニットテストクラスがあなたの辞書を吹き飛ばすことを望まないので、-prune qx/testを必ず実行してください。 - 行きたい! – ThomasH

+0

@thomash良い点。私が次の週を空き時間持っていれば、私は改善されたバージョン( "qx.something"のように "。"と入力すると現在の "停止"が完了します)を作成し、ここにリンクを投稿してメールを送りますqooxdooチームに –

答えて

3

これは、メジャーモードに基づいてuser-defined dictionaryを使用して実行できます。まず、'ac-sources'ac-source-dictionaryが含まれていることを確認します。次に、フレームワーククラス名のリストを含むファイルを作成し、~/.emacs.d/ac-dict/js(または~/.emacs.d/ac-dict/js2-mode)という名前で保存します。

;-)あなたは、代わりにそのスキームを使用している場合、あなたは~/.emacs(または~/.emacs.d/init.el、どのあなたがすべきでは次の変数を設定:

(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") 

はあなたのemacs、および.jsファイルで、その後自動補完候補を再起動します。ファイルにはクラス名を含める必要があります。

+0

いいアイデア!私はそれをショットし、後で結果を掲示します。ありがとう! –

関連する問題