วิธีการตรวจสอบวัตถุเสียงกระเพื่อมขนาดใหญ่ / ซับซ้อน


12

ฉันได้ทำงานกับรหัสเอ็นจิ้นการส่งออกบางส่วนขององค์กรซึ่งส่งผ่านวัตถุรายการที่ค่อนข้างใหญ่และซับซ้อน มันค่อนข้างน่าเบื่อที่จะสำรวจวัตถุโดยการอ่านผ่านการพิมพ์คำที่มีการห่อคำแบบยาวของวัตถุหรือเขียนซ้ำและประเมินค่า accessors ในบัฟเฟอร์รอยขีดข่วน ฉันและสงสัยว่ามีวิธีการที่ดีสำหรับการตรวจสอบค่าเชิงโต้ตอบ

ยกตัวอย่างเช่น IDE หลายตัวที่นำเสนอค่าวัตถุในมุมมองแผนผังแบบโต้ตอบซึ่งอนุญาตให้ขยายคีย์ / ค่าแบบขยายเพิ่มขึ้น มีการแสดงวัตถุบนหน้าจออย่างต่อเนื่องและสามารถตรวจสอบได้โดยไม่ต้องกังวลเกี่ยวกับประเภทของค่าที่ดู ภาพหน้าจอแบบสุ่มของเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Chrome เป็นภาพประกอบ:

มุมมองวัตถุเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Chrome

เครื่องมืออื่น ๆ แสดงค่าเป็น popovers ที่ใช้งานได้ (มีลักษณะคล้ายกันมาก) ภาพหน้าจอแบบสุ่มจาก Visual Studio:

Visual Studio Data

มีอะไรที่คล้ายกับ emacs lisp หรือไม่? อาจจะมีบางสิ่งใน edebug หรือให้บริการโดยแพ็คเกจอื่น หรือนี่กำลังรอการพัฒนาอยู่ใช่ไหม

หมายเหตุ: ฉันค้นพบppและpp +หลังจากโพสต์คำถามนี้ไม่นาน การจัดรูปแบบนั้นมีประโยชน์อย่างมากในการนำทางของโครงสร้างวัตถุ มันช่วยประหยัดจำเป็นต้องแก้ไขprint-lengthและprint-depthค่ามากและจัดรูปแบบผลลัพธ์ในบัฟเฟอร์ที่แยกต่างหาก


บางทีห้องสมุดhide-show.elช่วยในเรื่องนี้
Drew

3
@ebpa หากppและpp+ทำสิ่งที่คุณต้องการคุณสามารถเพิ่มสิ่งนั้นเป็นโซลูชันของคุณเองและทำเครื่องหมายเป็นคำตอบในไม่กี่วัน
Kaushal Modi

@ ดึงฉันให้คำตอบกับโซลูชัน pp + -based แม้ว่าฉันจะไม่พอใจกับมันเลย ฉันจะอัปเดตคำตอบของฉันเมื่อฉันเผยแพร่ทางเลือกที่ดีกว่า
ebpa

คำตอบ:


0

ฉันพบว่าฟังก์ชั่นpp-eval-last-sexp-with-tooltipในpp+แพคเกจเป็นโซลูชันอเนกประสงค์ที่ยอดเยี่ยมสำหรับสิ่งนี้ มันมีประสิทธิภาพเช่นเดียวกับeval-last-sexpแต่จัดรูปแบบค่าส่งคืนอย่างเรียบร้อยและแสดงเป็นคำแนะนำเครื่องมือ ค่าที่มากกว่าpp-max-tooltip-size( x-max-tooltip-size) จะแสดงในหน้าต่างแยกต่างหาก

ฉันได้มันไปC-x C-eในขณะนี้:

(require 'pp+)
(define-key global-map (kbd "C-x C-e") #'pp-eval-last-sexp-with-tooltip)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.