बड़े / जटिल लिस्प ऑब्जेक्ट्स की जांच करने के तरीके


12

मैं कुछ ऑर्ग एक्सपोर्ट इंजन कोड के साथ काम कर रहा हूं जो कि कुछ बड़ी और जटिल सूची ऑब्जेक्ट के आसपास से गुजरता है। यह एक लंबे समय तक शब्द-मुद्रित मुद्रित प्रतिनिधित्व के माध्यम से एक वस्तु का पता लगाने के लिए थकाऊ है या खरोंच बफर में एक्सेसर्स के लेखन और मूल्यांकन का मूल्यांकन करता है। मैं सोच रहा हूं कि क्या अंतःक्रियात्मक मूल्यों की जांच के लिए कोई अच्छी विधियां हैं।

उदाहरण के लिए लें: एक इंटरैक्टिव ट्री व्यू में कई आईडीई के वर्तमान वस्तु मूल्य जो कि वृद्धिशील रूप से विस्तार कुंजियों / मूल्यों की अनुमति देते हैं। ऑब्जेक्ट को स्क्रीन पर लगातार दिखाया जाता है और देखे जाने वाले मूल्य प्रकारों के बारे में बहुत चिंता किए बिना जांच की जा सकती है। चित्रण के रूप में क्रोम डेवलपर टूल का एक यादृच्छिक स्क्रीनशॉट:

Chrome डेवलपर टूल ऑब्जेक्ट दृश्य

अन्य उपकरण नौगम्य आबादी (कार्यात्मक रूप से बहुत समान) के रूप में मूल्यों को प्रस्तुत करते हैं। दृश्य स्टूडियो से एक यादृच्छिक स्क्रीनशॉट:

दृश्य स्टूडियो डेटाटिप

क्या Emacs लिस्प के लिए भी कुछ ऐसा ही है? शायद एडबग में निर्मित कुछ या किसी अन्य पैकेज द्वारा प्रदान किया गया है? या यह सिर्फ विकसित होने की प्रतीक्षा कर रहा है?

नोट: मैंने इस प्रश्न को पोस्ट करने के कुछ ही समय बाद पीपी और पीपी + की खोज की । स्वरूपण नेत्रहीन वस्तु संरचना में अविश्वसनीय रूप से सहायक है। यह अत्यधिक मूल्यों में बदलाव print-lengthऔर print-depthआउटपुट को संशोधित करने और एक अलग बफर में आउटपुट की आवश्यकता को बचाता है ।


शायद पुस्तकालय hide-show.elइस संबंध में मदद करता है।
ड्रयू

3
@ebpa यदि आप चाहते हैं ppऔर pp+करें, तो आप इसे अपने समाधान के रूप में जोड़ सकते हैं और कुछ दिनों में उत्तर के रूप में चिह्नित कर सकते हैं।
कौशल मोदी

@ ड्रू मैंने पीपी + आधारित समाधान के साथ एक उत्तर प्रदान किया। मैं हालांकि इसके साथ पूरी तरह से संतुष्ट नहीं हुआ हूं। बेहतर विकल्प प्रकाशित करने पर मैं अपना उत्तर अपडेट करूंगा।
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)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.