問題タブ [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.
clojure - swank-clojureを使用してClojureライブラリをハッキングするためのワークフロー
Clojureライブラリをハッキングするための典型的なワークフローはありますか?
リポジトリから取得され、を介してプロジェクトFooに含まれているサードパーティライブラリ「Bar」に依存するアプリケーション「Foo」があるとしますlein deps
。
次に、ライブラリ「Bar」をハックしたいので、githubからクローンを作成します。
ここで、ローカルクローン「Bar」をハックすると同時に、それに依存するアプリケーション「Foo」に取り組んでいきたいと思います。swankの1つのインスタンスを使用して、「Bar」のすべてのソースファイルを「Foo」のすべてのソースファイルと一緒にEmacsで開くようにします。
これを行う簡単な方法はありますか?
プロジェクトではなく、環境を変更したい。したがって、これを実現するために「Foo」のproject.cljを編集したくありません。
これには、起動する前にクラスパスを設定する必要がありますlein swank
か、それともより良い方法がありますか?
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)
と、次のエラーが発生します。
Clojure がこれらのファイルを検索するのはなぜですか? で切り替えることができるので、名前空間は明らかに既にロードされています
C-c M-p
が、何らかの理由で Clojure は、これらの特定のファイルが名前空間を使用するために重要であると考えています。SLIME のベース名前空間を使用できるようにプロジェクトをセットアップするにはどうすればよいですか? lein がこれを処理することになっているので、必要な情報を提供していないのは何ですか?
emacs - スワンクサーバーの起動エラー
どうやらswankが正しく初期化できないため、EmacsSLIMEはswankに接続できません。一部のバックエンド機能が実装されていないことを示しています。ただし、私の沼地のバックエンドはサポートされているSBCLです。私はwindowsxposを使用しています。次のリンクに同様の問題が投稿されていますが、解決策はありません。同様の問題へのリンク
Swankの構成ファイルがありませんか?または、私が使用しているemacsとSBCLのバージョンに互換性の問題があるのでしょうか?その場合、Windowsの正しい互換性マトリックスはどこで入手できますか?
emacs - java.exe プロセスのリーク
Emacs + clojure-mode/swank-clojure では、終了時に、作成された java.exe プロセスが実際には強制終了されません (要求されたときに 'y' を選択する限り)。原因は何ですか?
slime - slime-documentation の出力を文字列として取得する
popup.elはかなり素晴らしいですpopup-tip
- 確認してください。display-documentation
キャレットが指す現在の単語を引数として使用して、SLIME のメソッドの出力を表示しようとしています。
問題はdisplay-documentation
、文字列を返さず、バッファに Swank の出力を直接表示することです。
SLIME のソースを理解しようとしましたが、理解できませんでした。指定された名前のスライム/スワンクでドキュメント文字列を取得するには?
emacs - Clojure用のEmacsでUber開発モードを設定する
気がついた
ClojureのEmacs/Swank/Pareditへの優しいチュートリアル
基本的に同じ質問があります。
手順が古くなっているという編集があり、更新があることに注意しました(更新がどこに投稿されているかわかりません)。
したがって、私の質問:
Clojureを使用してEmacsをセットアップする「正しい方法」は何ですか?
コンテキスト:私は過去数年間、VIMを使用してClojureをコーディングしてきました。しかし、スライム/スワンクは非常に印象的です。
ありがとう!
java - Java/Clojureで無限ループを強制終了する
いくつかの「潜在的な回答」への回答
スレッドに「割り込み」を振りかける必要があります
長いプロセス/無限ループになることを意図してコードを記述しません。開発中に、たまたま無限ループになるコードを誤って記述してしまったため、「スレッドが中断されたかどうかを確認する」というコードを事前に計画することはできません。
質問:
Java / Clojure/Swankとインクリメンタルコード開発に慣れてきました。誤って無限ループになるclojure関数を作成して実行するのは非常に簡単です。次に、これが先に進み、JVMをペグして、ラップトップのファンをスピンアップさせます。基本的に、1つの暴走スレッドを取り除くには、JVM全体を強制終了する必要があります。
さて、とにかく私はこれらのclojureスレッドを安全に殺すことができますか?Thread.stopがさまざまな危険な結果をもたらすことをよく知っています(他のスレッドが必要とする可能性のあるロックの保持など...)-しかし、これらは無限ループであるclojure関数です-そして私はそれらを外部で実行しています任意のSTM-したがって、これらのスレッドを安全に強制終了する方法があるかどうか疑問に思っています。
ありがとう!
emacs - Clojure で書かれた Clojure エディター
注: LightTable を探しているわけではありません。Clojureで実装されたClojure Editorを本当に探しています。
最近、slime/swank/elisp を勉強しています。これは驚くべきシステムですが、実際には (歴史的な成果物の理由以外に) なぜ次のことを行う必要があるのか理解できません。
(*) コードの一部を Clojure で記述し、エディタ プラグインを elisp でコーディングする
emacs/swank/elisp が既に存在するという事実以外に、clojure よりも elisp を好む理由はないようです。
したがって、私の質問: clojure で clojure エディター/ide を実装するために使用できるプロジェクトはありますか? emacs/slime/swank ほど開発されていなくても構いません。もっと clojure コードを書いてもかまいません。
ありがとう!
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 をより回復力のあるものにする方法はありますか? (少し難しいかもしれませんが、以前の動作状態にリセットするのが最善だと思います。)
ありがとう!
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 を動作させるにはどうすればよいですか?