Büyük / karmaşık lisp nesnelerini inceleme yöntemleri


12

Bazı oldukça büyük ve karmaşık liste nesneleri geçer bazı org ihracat motor kodu ile çalışıyorum. Bir nesnenin uzun bir kelime sarılmış basılı sunumunu okuyarak veya çizik tamponundaki erişimcileri tekrar tekrar yazıp değerlendirerek bir nesneyi keşfetmek oldukça sıkıcıdır. Ben ve değerleri etkileşimli olarak incelemek için iyi yöntemler olup olmadığını merak ediyorum.

Örnek alın: Nesne değerlerini, anahtarları / değerleri aşamalı olarak genişletmeye izin veren etkileşimli ağaç görünümünde sunan birçok IDE. Nesne ekranda sürekli olarak gösterilir ve görüntülenen değer türleri hakkında fazla endişe duyulmadan incelenebilir. Resim olarak Chrome geliştirici araçlarının rastgele bir ekran görüntüsü:

Chrome geliştirici araçları nesne görünümü

Diğer araçlar değerleri gezilebilir popovers olarak sunar (işlevsel olarak çok benzer). Visual Studio'dan rastgele bir ekran görüntüsü:

Visual Studio veri ipucu

Emacs lisp için benzer bir şey var mı? Belki edebug içine inşa edilmiş veya başka bir paket tarafından sağlanan bir şey? Yoksa bu sadece geliştirilmeyi mi bekliyor?

Not: Bu soruyu gönderdikten kısa bir süre sonra pp ve pp + ' yı keşfettim . Biçimlendirme, nesne yapısında görsel olarak gezinmede inanılmaz derecede yardımcıdır. Değişiklik print-lengthve print-depthaşırı değerlere ihtiyaç duymadan tasarruf eder ve çıktıyı ayrı bir arabellekte biçimlendirir.


Belki de kütüphane hide-show.elbu konuda yardımcı olur.
Drew

3
@ebpa İstediğinizi yaparsanız ppve pp+yaparsanız, bunu kendi çözümünüz olarak ekleyebilir ve birkaç gün içinde yanıt olarak işaretleyebilirsiniz.
Kaushal Modi

@ PP + tabanlı çözüm ile bir cevap verdim. Yine de bundan tamamen memnun kalmadım. Daha iyi bir alternatif yayınladığımda cevabımı güncelleyeceğim.
ebpa

Yanıtlar:


0

Ben işlevi bulunamadı pp-eval-last-sexp-with-tooltipiçinde pp+paketin bunun için büyük bir genel amaçlı bir çözümdür. Etkili olarak aynıdır eval-last-sexp, ancak dönüş değerini düzgün bir şekilde biçimlendirir ve bir ipucu olarak görüntüler. pp-max-tooltip-size( x-max-tooltip-size) ' Den daha büyük değerler ayrı bir pencerede gösterilir.

C-x C-eŞu anda bağlı :

(require 'pp+)
(define-key global-map (kbd "C-x C-e") #'pp-eval-last-sexp-with-tooltip)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.