Cider: mettre en œuvre cidre-eval-closing-form

Créé le 7 sept. 2020  ·  5Commentaires  ·  Source: clojure-emacs/cider

Votre demande de fonctionnalité est liée à un problème ?

Je suis souvent avec le curseur à l'intérieur d'un formulaire que j'aimerais évaluer. Généralement, dans les commentaires riches, je modifie un argument et je souhaite essayer de réévaluer le formulaire d'emballage. Si c'est au milieu du bloc (comment) , je dois aller au début de la ligne suivante (malédiction maléfique/vim, impossible de placer le curseur après le dernier caractère) et exécuter cider-eval-last-sexp .

Décrivez la solution que vous souhaitez

Idéalement, je voudrais rester où je suis avec le curseur et exécuter l'expression entre parenthèses qui l'entoure. La recherche de la parenthèse englobante se fait en recherchant la première parenthèse ouvrante à gauche. La fonction pourrait être facilement enrichie en recherchant le deuxième parent englobant le plus élevé via universal-argument .

Décrivez les alternatives que vous avez envisagées

J'ai parcouru toutes les fonctions cider-eval-* et n'en ai trouvé aucune qui réponde à mes besoins. Peut-être que je suis juste aveugle cependant :)

Une autre option qui couvrirait 80 à 90 % de mes cas d'utilisation serait que cider-eval-defun-at-point traite les blocs (comment) comme spéciaux et considère chaque forme interne comme une forme de niveau supérieur distincte.

Contexte supplémentaire

feature request good first issue

Commentaire le plus utile

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

Tous les 5 commentaires

Une autre option qui couvrirait 80-90% de mes cas d'utilisation serait que cider-eval-defun-at-point traite (commentaire) les blocs comme spéciaux et considère chaque forme interne comme une forme de niveau supérieur distincte.

Je pensais que @dpsutton avait déjà implémenté quelque chose comme ça il y a quelque temps.

Idéalement, je voudrais rester où je suis avec le curseur et exécuter l'expression entre parenthèses qui l'entoure.

cider-eval-sexp-at-point ne fonctionne pas pour vous ?

Soit | le curseur. Puis pour

(comment (+ 2| 3))

cider-eval-defun-at-point renvoie nil

cider-eval-sexp-at-point renvoie 2

Je veux évaluer la partie (+ 2 3) et obtenir 5 comme résultat.

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

Salut @dakra , non, car je ne connaissais pas cette variable. Étonnamment (pour moi du moins) c'est du clojure et non du cidre.

Je considérerais toujours la suggestion d'origine, mais je vais jouer avec cela et voir qu'elle remplit mes cas d'utilisation. Merci!

Étonnamment (pour moi du moins) c'est du clojure et non du cidre.

Parce que la logique des limites sexp réside dans clojure-mode .

Cette page vous a été utile?
0 / 5 - 0 notes