Cider: cider-eval-encloseing-formを実装する

作成日 2020年09月07日  ·  5コメント  ·  ソース: clojure-emacs/cider

機能リクエストは問題に関連していますか?

評価したいフォーム内にカーソルがあることがよくあります。 通常、豊富なコメントで引数を編集し、折り返しフォームを再評価してみたいと思います。 (comment)ブロックの途中にある場合は、次の行の先頭に移動して(evil / vim curse、最後の文字を超えてカーソルを置くことはできません)、 cider-eval-last-sexpを実行する必要があります。

希望するソリューションを説明してください

理想的には、カーソルのある場所にとどまり、カーソルを囲む括弧で囲まれた式を実行したいと思います。 囲んでいるパレンを見つけるには、左側の最初のオープニングパレンを検索します。 この関数は、 universal-argument介して2番目に高い囲み親を検索することで簡単に強化できます。

検討した代替案を説明してください

すべてのcider-eval-*関数を調べましたが、自分のニーズを満たすものは見つかりませんでした。 多分私はただ盲目です:)

私のユースケースの80〜90%をカバーする別のオプションは、 cider-eval-defun-at-point(comment)ブロックを特別なものとして扱い、各内部フォームを個別のトップレベルフォームと見なす場合です。

追加のコンテキスト

feature request good first issue

最も参考になるコメント

@xificurC(setq clojure-toplevel-inside-comment-form t)か?

全てのコメント5件

私のユースケースの80〜90%をカバーする別のオプションは、cider-eval-defun-at-pointがブロックを特別なものとして扱い(コメント)、各内部フォームを個別のトップレベルフォームと見なす場合です。

@dpsuttonはもう少し前にこのようなものを実装していると思い

理想的には、カーソルのある場所にとどまり、カーソルを囲む括弧で囲まれた式を実行したいと思います。

cider-eval-sexp-at-pointはあなたのために機能しませんか?

|カーソルとします。 その後、

(comment (+ 2| 3))

cider-eval-defun-at-pointnil返します

cider-eval-sexp-at-point2返します

(+ 2 3)部分を評価し、結果として5を取得したいと思います。

@xificurC(setq clojure-toplevel-inside-comment-form t)か?

こんにちは@dakra 、いいえ、私はその変数を知らなかったので。 驚いたことに(少なくとも私にとっては)それはclojureにあり、サイダーではありません。

私はまだ元の提案を検討しますが、これを試してみて、それが私のユースケースを満たすことを確認します。 ありがとう!

驚いたことに(少なくとも私にとっては)それはclojureにあり、サイダーではありません。

sexp境界のロジックはclojure-modeです。

このページは役に立ちましたか?
0 / 5 - 0 評価