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
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
.
Commentaire le plus utile
@xificurC avez-vous
(setq clojure-toplevel-inside-comment-form t)
?