Eu tenho trabalhado com algum código de mecanismo de exportação organizacional que transmite alguns objetos de lista bastante grandes e complexos. É um pouco tedioso explorar um objeto lendo uma longa representação impressa e envolvida em palavras de um objeto ou escrevendo e avaliando iterativamente acessadores no buffer temporário. Eu estou pensando se existem bons métodos para examinar valores interativamente.
Tomemos, por exemplo: muitos IDEs que apresentam valores de objetos em uma exibição em árvore interativa, que permite expandir / incrementar chaves / valores. O objeto é mostrado persistentemente na tela e pode ser examinado sem muita preocupação com os tipos de valor que estão sendo visualizados. Uma captura de tela aleatória das ferramentas de desenvolvedor do Chrome como ilustração:
Outras ferramentas apresentam valores como popovers navegáveis (funcionalmente muito semelhantes). Uma captura de tela aleatória do Visual Studio:
Existe algo semelhante para o emacs lisp? Talvez algo embutido no edebug ou fornecido por outro pacote? Ou isso está apenas esperando para ser desenvolvido?
Nota: Descobri pp e pp + logo após postar esta pergunta. A formatação é incrivelmente útil na navegação visual da estrutura de objetos. Isso poupa a necessidade de modificar print-length
e print-depth
para valores extremos e formatar o output num tampão separado.
hide-show.el
ajude nesse sentido.pp
epp+
fazer o que você quer, então você pode acrescentar que, como sua própria solução e marcá-lo como uma resposta em poucos dias.Respostas:
Achei que a função
pp-eval-last-sexp-with-tooltip
nopp+
pacote é uma ótima solução de uso geral para isso. É efetivamente o mesmo queeval-last-sexp
, mas formata o valor de retorno com precisão e o exibe como uma dica de ferramenta. Valores maiores quepp-max-tooltip-size
(x-max-tooltip-size
) são mostrados em uma janela separada.Eu tenho isso vinculado
C-x C-e
no momento:fonte