機能リクエストは問題に関連していますか?
評価したいフォーム内にカーソルがあることがよくあります。 通常、豊富なコメントで引数を編集し、折り返しフォームを再評価してみたいと思います。 (comment)
ブロックの途中にある場合は、次の行の先頭に移動して(evil / vim curse、最後の文字を超えてカーソルを置くことはできません)、 cider-eval-last-sexp
を実行する必要があります。
希望するソリューションを説明してください
理想的には、カーソルのある場所にとどまり、カーソルを囲む括弧で囲まれた式を実行したいと思います。 囲んでいるパレンを見つけるには、左側の最初のオープニングパレンを検索します。 この関数は、 universal-argument
介して2番目に高い囲み親を検索することで簡単に強化できます。
検討した代替案を説明してください
すべてのcider-eval-*
関数を調べましたが、自分のニーズを満たすものは見つかりませんでした。 多分私はただ盲目です:)
私のユースケースの80〜90%をカバーする別のオプションは、 cider-eval-defun-at-point
が(comment)
ブロックを特別なものとして扱い、各内部フォームを個別のトップレベルフォームと見なす場合です。
追加のコンテキスト
私のユースケースの80〜90%をカバーする別のオプションは、cider-eval-defun-at-pointがブロックを特別なものとして扱い(コメント)、各内部フォームを個別のトップレベルフォームと見なす場合です。
@dpsuttonはもう少し前にこのようなものを実装していると思い
理想的には、カーソルのある場所にとどまり、カーソルを囲む括弧で囲まれた式を実行したいと思います。
cider-eval-sexp-at-point
はあなたのために機能しませんか?
|
カーソルとします。 その後、
(comment (+ 2| 3))
cider-eval-defun-at-point
はnil
返します
cider-eval-sexp-at-point
は2
返します
(+ 2 3)
部分を評価し、結果として5
を取得したいと思います。
@xificurCは(setq clojure-toplevel-inside-comment-form t)
か?
こんにちは@dakra 、いいえ、私はその変数を知らなかったので。 驚いたことに(少なくとも私にとっては)それはclojureにあり、サイダーではありません。
私はまだ元の提案を検討しますが、これを試してみて、それが私のユースケースを満たすことを確認します。 ありがとう!
驚いたことに(少なくとも私にとっては)それはclojureにあり、サイダーではありません。
sexp境界のロジックはclojure-mode
です。
最も参考になるコメント
@xificurCは
(setq clojure-toplevel-inside-comment-form t)
か?