Emacs फ्रिंज में एक्शनेबल फोल्डिंग फोल्ड


15

मैं कोड तह अनुभाग दिखाने के लिए अपने Emacs फ्रिंज को कॉन्फ़िगर करना चाहूंगा।

उदाहरण के लिए, मैक पर BBEdit एक JSON फ़ाइल को संपादित करते समय निम्नलिखित दिखाएगा:

BBEdit कोड तह के निशान

चिह्न स्वयं क्रियाशील हैं: एक निशान पर क्लिक करने से संबंधित कोड अनुभाग का विस्तार या पतन हो जाएगा। जब दस्तावेज़ में एक मोड नहीं होता है जो कोड तह का समर्थन करता है, तो फ्रिंज नहीं दिखाया गया है।

क्या इस तरह से Emacs की फ्रिंज कार्यक्षमता का विस्तार संभव है?

जवाबों:


16

Hideshowvis फ्रिंज में क्लिक करने योग्य आइकन जोड़ता है, लेकिन कुछ अजीब कारणों से यह elpa या melpa में शामिल नहीं है। डिफ़ॉल्ट रूप से यह -कोड के लिए एक फ्रिंज दिखाता है जिसे फोल्ड किया जा सकता है, और फिर ए के साथ सामग्री को समाप्त कर देता है ...hideshowvis-symbolsयह भी सक्षम करके यह एक जोड़ता है +और मुड़ा हुआ सामग्री के लिए संकेत थोड़ा जोर से बनाता है।

Hideshow खुद भी लाइन पर माउस क्लिक की अनुमति देता है S-mouse-2(या मिडिल क्लिक शिफ्ट) का उपयोग करके प्रदर्शन को टॉगल करने के लिए । इसमें बनाया गया है और इसके साथ सक्षम किया जा सकता है hs-minor-mode


1
अच्छा, hideshowvis.el मेरे सुझाव के समान एक हैक का उपयोग करता है, लेकिन डबल-क्लिक (कच्ची घटना को पढ़कर) होने की कुरूपता के बिना। सूचक के लिए धन्यवाद।
सिग्मा

3
Hideshowvis.elमहान काम करता है, धन्यवाद! मेरे पास JSON फाइलों पर काम करने के लिए कुछ मुद्दे थे js3-mode; इन मुद्दों के आसपास काम करने के लिए मुझे यह सुनिश्चित करना था कि hideshowvis कतार में सभी कार्यों के बाद ही सक्षम है, जैसे:(dolist (hook '(emacs-lisp-mode-hook c++-mode-hook)) (add-hook hook 'hideshowvis-enable)) (defun hideshowvis-enable-immediately () (run-at-time "0 seconds" nil 'hideshowvis-enable)) (add-hook 'js3-mode-hook 'hideshowvis-enable-immediately)
Mathieu Legrand

यह अब मेलपा पर है।
dshepherd

4

हालांकि मुझे नहीं लगता कि फ्रिंज आइटम सीधे क्लिक प्राप्त कर सकते हैं (हालांकि मैं गलत हो सकता हूं), एक संभव हैक को बांधना होगा (kbd "<left-fringe> <double-mouse-1>")

चूंकि पहला क्लिक उस रेखा की शुरुआत में बिंदु को स्थानांतरित करेगा जो फ्रिंज आइकन से मेल खाती है, (point)अपने काल्पनिक (अन) तह फ़ंक्शन के मूल्य का परीक्षण करने से आपको कोड के किस हिस्से को (संयुक्त राष्ट्र) गुना या, की पहचान करने की अनुमति मिलेगी आपको कुछ भी करने की जरूरत है (यदि कोई फ्रिंज आइकन इस लाइन के लिए मौजूद नहीं है)

ऑर्ग-मोड बफर के साथ उदाहरण:

(define-key org-mode-map (kbd "<left-fringe> <double-mouse-1>") 'org-cycle)

फ्रिंज चक्रों पर डबल-क्लिक करने से संबंधित सबट्री होती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.