J'ai travaillé avec un code de moteur d'exportation d'organisation qui transmet certains objets de liste plutôt grands et complexes. Il est plutôt fastidieux d'explorer un objet en lisant une longue représentation imprimée enveloppée d'un mot d'un objet ou en écrivant et en évaluant de manière itérative les accesseurs dans le tampon de travail. Je me demande s'il existe de bonnes méthodes pour examiner les valeurs de manière interactive.
Prenons par exemple: de nombreux IDE qui présentent des valeurs d'objet dans une arborescence interactive qui permet d'étendre de manière incrémentielle des clés / valeurs. L'objet est affiché de façon persistante à l'écran et peut être examiné sans trop se soucier des types de valeur affichés. Une capture d'écran aléatoire des outils de développement Chrome comme illustration:
D'autres outils présentent des valeurs comme des popovers navigables (fonctionnellement très similaires). Une capture d'écran aléatoire de Visual Studio:
Existe-t-il quelque chose de similaire pour Emacs Lisp? Peut-être quelque chose intégré à edebug ou fourni par un autre package? Ou est-ce juste en attente d'être développé?
Remarque: J'ai découvert pp et pp + peu de temps après avoir posté cette question. Le formatage est incroyablement utile pour naviguer visuellement dans la structure des objets. Il évite d'avoir à modifier print-length
et print-depth
à des valeurs extrêmes et de formater la sortie dans un tampon séparé.
hide-show.el
aide à cet égard.pp
etpp+
faites ce que vous voulez, vous pouvez l'ajouter comme votre propre solution et la marquer comme réponse dans quelques jours.Réponses:
J'ai trouvé que la fonction
pp-eval-last-sexp-with-tooltip
dans lepp+
package est une excellente solution polyvalente pour cela. Il est en fait identique àeval-last-sexp
, mais formate proprement la valeur de retour et l'affiche sous forme d'infobulle. Les valeurs supérieures àpp-max-tooltip-size
(x-max-tooltip-size
) sont affichées dans une fenêtre séparée.Je le dois pour
C-x C-e
le moment:la source