問題タブ [swank]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
296 参照

clojure - swank-clojureを使用してClojureライブラリをハッキングするためのワークフロー

Clojureライブラリをハッキングするための典型的なワークフローはありますか?

リポジトリから取得され、を介してプロジェクトFooに含まれているサードパーティライブラリ「Bar」に依存するアプリケーション「Foo」があるとしますlein deps

次に、ライブラリ「Bar」をハックしたいので、githubからクローンを作成します。

ここで、ローカルクローン「Bar」をハックすると同時に、それに依存するアプリケーション「Foo」に取り組んでいきたいと思います。swankの1つのインスタンスを使用して、「Bar」のすべてのソースファイルを「Foo」のすべてのソースファイルと一緒にEmacsで開くようにします。

これを行う簡単な方法はありますか?

プロジェクトではなく、環境を変更したい。したがって、これを実現するために「Foo」のproject.cljを編集したくありません。

これには、起動する前にクラスパスを設定する必要がありますlein swankか、それともより良い方法がありますか?

0 投票する
1 に答える
535 参照

emacs - SLIME REPL でプロジェクト名前空間を使用する方法

swank プラグイン、Emacs、SLIME、および clojure-mode を使用して lein をインストールし、lein new を使用して新しいプロジェクトを作成しました。プロジェクトを clojure-test と呼びました。次に、Emacs で clojure_test/src/clojure_test/core.clj を開き、このファイル内でM-x clojure-jack-in. これにより、問題なく動作する SLIME ウィンドウが開きます。を使用してコードをロードし、 を使用C-c C-lしてプロジェクトの名前空間に切り替え、プロジェクトC-c M-pに追加した依存関係を使用できます。

「ユーザー」名前空間から、プロジェクト自体に名前空間を使用しようとすると、問題が発生します。"user" 名前空間から SLIME 内で呼び出す(use 'clojure-test)と、次のエラーが発生します。

  1. Clojure がこれらのファイルを検索するのはなぜですか? で切り替えることができるので、名前空間は明らかに既にロードされていますC-c M-pが、何らかの理由で Clojure は、これらの特定のファイルが名前空間を使用するために重要であると考えています。

  2. SLIME のベース名前空間を使用できるようにプロジェクトをセットアップするにはどうすればよいですか? lein がこれを処理することになっているので、必要な情報を提供していないのは何ですか?

0 投票する
3 に答える
898 参照

emacs - スワンクサーバーの起動エラー

問題のスクリーンショット

どうやらswankが正しく初期化できないため、EmacsSLIMEはswankに接続できません。一部のバックエンド機能が実装されていないことを示しています。ただし、私の沼地のバックエンドはサポートされているSBCLです。私はwindowsxposを使用しています。次のリンクに同様の問題が投稿されていますが、解決策はありません。同様の問題へのリンク

Swankの構成ファイルがありませんか?または、私が使用しているemacsとSBCLのバージョンに互換性の問題があるのでしょうか?その場合、Windowsの正しい互換性マトリックスはどこで入手できますか?

0 投票する
1 に答える
68 参照

emacs - java.exe プロセスのリーク

Emacs + clojure-mode/swank-clojure では、終了時に、作成された java.exe プロセスが実際には強制終了されません (要求されたときに 'y' を選択する限り)。原因は何ですか?

0 投票する
1 に答える
124 参照

slime - slime-documentation の出力を文字列として取得する

popup.elはかなり素晴らしいですpopup-tip- 確認してください。display-documentationキャレットが指す現在の単語を引数として使用して、SLIME のメソッドの出力を表示しようとしています。

問題はdisplay-documentation、文字列を返さず、バッファに Swank の出力を直接表示することです。

SLIME のソースを理解しようとしましたが、理解できませんでした。指定された名前のスライム/スワンクでドキュメント文字列を取得するには?

0 投票する
1 に答える
217 参照

emacs - Clojure用のEmacsでUber開発モードを設定する

気がついた

ClojureのEmacs/Swank/Pareditへの優しいチュートリアル

基本的に同じ質問があります。

手順が古くなっているという編集があり、更新があることに注意しました(更新がどこに投稿されているかわかりません)。

したがって、私の質問:

Clojureを使用してEmacsをセットアップする「正しい方法」は何ですか?

コンテキスト:私は過去数年間、VIMを使用してClojureをコーディングしてきました。しかし、スライム/スワンクは非常に印象的です。

ありがとう!

0 投票する
4 に答える
3104 参照

java - Java/Clojureで無限ループを強制終了する

いくつかの「潜在的な回答」への回答

  • スレッドに「割り込み」を振りかける必要があります

    長いプロセス/無限ループになることを意図してコードを記述しません。開発中に、たまたま無限ループになるコードを誤って記述してしまったため、「スレッドが中断されたかどうかを確認する」というコードを事前に計画することはできません。

質問:

Java / Clojure/Swankとインクリメンタルコード開発に慣れてきました。誤って無限ループになるclojure関数を作成して実行するのは非常に簡単です。次に、これが先に進み、JVMをペグして、ラップトップのファンをスピンアップさせます。基本的に、1つの暴走スレッドを取り除くには、JVM全体を強制終了する必要があります。

さて、とにかく私はこれらのclojureスレッドを安全に殺すことができますか?Thread.stopがさまざまな危険な結果をもたらすことをよく知っています(他のスレッドが必要とする可能性のあるロックの保持など...)-しかし、これらは無限ループであるclojure関数です-そして私はそれらを外部で実行しています任意のSTM-したがって、これらのスレッドを安全に強制終了する方法があるかどうか疑問に思っています。

ありがとう!

0 投票する
4 に答える
2580 参照

emacs - Clojure で書かれた Clojure エディター

注: LightTable を探しているわけではありません。Clojureで実装されたClojure Editorを本当に探しています。

最近、slime/swank/elisp を勉強しています。これは驚くべきシステムですが、実際には (歴史的な成果物の理由以外に) なぜ次のことを行う必要があるのか​​理解できません。

(*) コードの一部を Clojure で記述し、エディタ プラグインを elisp でコーディングする

emacs/swank/elisp が既に存在するという事実以外に、clojure よりも elisp を好む理由はないようです。

したがって、私の質問: clojure で clojure エディター/ide を実装するために使用できるプロジェクトはありますか? emacs/slime/swank ほど開発されていなくても構いません。もっと clojure コードを書いてもかまいません。

ありがとう!

0 投票する
2 に答える
323 参照

clojure - スワンク clojure を使用した「ホット スワップ」コードとクラッシュ耐性

私は clojure でゲームを開発することをいじり回してきましたが、コードのホットスワップにとても興奮していました。

私はlein-swankプラグインでswank clojureとemacsを使用しています。

私の主な問題はタイプミスです。関数を更新し、小さなエラーを作成してから、Ctrl-C Ctrl-C を押して REPL に送信するとします。

(if (> (rand) .5) (println "yay") (println "boo"))

0.5(ではなく、と書くべきでし.5た。)

その場合、プログラム全体が単純にクラッシュして燃えてしまうので、全体を再起動する必要があります。ホットスワッピングは素晴らしいですが、わずかなエラーでもできない場合はどうすればよいでしょうか。

では、ここでのワークフローとは正確には何ですか? 何か不足していますか?または、これらの小さなエラーに対して Swank clojure をより回復力のあるものにする方法はありますか? (少し難しいかもしれませんが、以前の動作状態にリセットするのが最善だと思います。)

ありがとう!

0 投票する
2 に答える
3570 参照

clojure - Emacs で Datomic と Clojure を使い始める

私のproject.cljファイルは次のようになります

そして私の /src/cljs_template/server.clj は次のように始まります:

次に、スワンクを起動し、その中で (in-ns 'cljs-template.server) を実行し、カーソルを (ns) 関数呼び出しの最後に移動し、Ctrl-x Ctrl- を使用して (ns) メソッドの実行を試みます。 e. そうすると、次のエラーが表示されます。

次に、0 を押してスタック トレースを閉じ、もう一度 (ns) 呼び出しで Ctrl-x Ctrl-e を押します。エラーは次のとおりです。

私は何を間違っていますか?swank/slime を使用して emacs で datomic を動作させるにはどうすればよいですか?