2012-08-08 11 views
6

良いタブ補完とは、リフレクションなどを使用して動的に生成されたもので、特定の場所で何ができないか、何が何ができないかを知っています。Clojure REPLで_good_タブ補完を使用することは可能ですか?

私はxのメソッドのリストを取得します(.<TAB> x)のように、(println <TAB>)に私は(Math/<TAB>に私は数学関数のリストを取得し、ローカルおよびグローバル定義のリストを取得...

たとえば、私はどのように好きタブは、ghci(Haskell)またはipythonで動作します。

答えて

0

IClojureのように見えますが多少良くなります。それはインスピレーションを受けてIPythonのように見え、タブの補完(完全ではない、3例のうち2例が挙げられる)を提供し、コンソールでClojureを開発するのに役立ちます。しかし、あまり安定していません。

4

確かに可能であり、いくつかのツールがその方向に進化しています。 clojureの最新バージョンには、"開発モード"オプションが含まれており、この種のツールを簡単に構築できます。;たとえば、デバッグを助けるためにローカルでのクリアをオフにして、最終的にはIDEや関連ツールで使用するためのコンパイルプロセスに関する多くの情報をエクスポートすることができます。これは、Clojureエコシステムを改善するための領域として広く認識されており、私の観察結果から、いくつかの非常に賢明な人々がそれに取り組んでいます。

+0

コンソールREPLでこれを使用するには、基本的にもっと待たなければなりませんか? –

7

replyを見て、デフォルトのREPLよりも優れたREPLを確認してください。ここでは、3つのユースケースのうち2つについて説明し、Javaインスタンスメソッドの完了を残しています。

leiningen v2 +を使用している場合は、lein replコマンドで呼び出されるデフォルトのREPLです。

1

Eclipse CounterClockwise REPLの現在のベータ版では、コード補完が大幅に改善されており、Java補完を含むすべてのケースをカバーしています。もちろん、スタンドアロンのコマンドラインREPLではありません。 Clojureは動的言語ですが、型の補完には限界があります.Haskellのような強く型付けされた言語のほうがはるかに簡単です。

+0

"..コードの補完が大幅に改善されました" - >だから、最終的にはコマンドラインにもあるはずです。 「ハスケルのような強く型付けされた言語では、はるかに簡単なもの」 - >私はipythonについてこれについて述べました。 –

+0

CCWのREPLはNREPLクライアントですが、NREPLはコードの実行に使用され、コードエントリではなく出力を返します。 CCWで使用される補完コードは、Eclipseや他のCCWコードと緊密にリンクされているため、近いうちに他のNREPLクライアントに組み込まれることはありません。 – NielsK

1

私はSlimeとEmacs auto-completeのエディタとしてEmacsを使用しています。これらの機能はすべて、Emacs内のReplで機能しています。Javaクラスとフィールドの自動補完、Clojure関数の自動補完とドキュメント。残念ながら、Emacsをエディタ/ IDEとして使用していない場合は動作しません。

+0

同じ質問が以前に尋ねられました:[Clojure replの関数と変数の自動拡張または自動補完を行う方法](http://stackoverflow.com/questions/4289480/how-to-do-automatic-expansion-oror -autocomplete-of-functions-and-a-cl) –

関連する問題