CudaText प्लगइन: “डिस्क जीतता है” (बाहरी परिवर्तन पर ऑटो-रीलोड को बाध्य करें)

CudaText में कोई अंतर्निहित विकल्प नहीं है जो किसी फ़ाइल को उसी क्षण चुपचाप पुनः लोड कर दे डिस्क पर परिवर्तन - प्रत्येक अंतर्निहित “डिस्क पर परिवर्तित” मोड अभी भी कुछ दिखाता है पुनः लोड करने से पहले एक प्रकार का संकेत (मोडल या मोडल-रहित)। (default.json में ui_notif_confirm देखें, मान 0-4, ये सभी पूछना)। यह प्लगइन उस अंतर को पाट देता है: डिस्क हमेशा जीतती है, कोई संकेत नहीं, कभी नहीं।

यहां संग्रहीत किया गया है ताकि किसी को भी इसके लिए CudaText प्लगइन API को दोबारा प्राप्त न करना पड़े दोबारा। प्लगइन के लिए सत्य का स्रोत स्वयं में रहता है इस फ़ोल्डर में cuda_disk_wins/.

यह क्या करता है

  • प्रत्येक खुली, नामित फ़ाइल को प्रति सेकंड एक बार पोल करता है (के माध्यम से कॉन्फ़िगर करने योग्य)। TIMER_INTERVAL __init__.py में)।

  • यदि डिस्क पर किसी फ़ाइल का एमटाइम बदल जाता है, तो प्लगइन इसे दोबारा पढ़ता है और कॉल करता है Editor.set_text_all() - किसी भी सहेजे न गए परिवर्तन को ओवरराइट करना बिना पूछे संपादक टैब

  • बाद में “संशोधित” ध्वज साफ़ कर देता है (PROP_MODIFIED = False), इसलिए टैब साफ़ दिखता है, जैसे कि कभी कुछ अलग ही नहीं हुआ हो।

  • सर्वोत्तम प्रयास कैरेट स्थिति और उसके बाद शीर्ष दृश्यमान रेखा को पुनर्स्थापित करता है पुनः लोड करें.

  • प्लगइन्स डिस्क विंस के अंतर्गत दो कमांड जोड़ता है:

  • ऑटो-रीलोड को चालू/बंद टॉगल करें

  • अभी जांचें (मैन्युअल वन-शॉट जांच)

सेटिंग की जगह प्लगइन क्यों

CudaText का अपना फ़ाइल-वॉचर (ui_notif) केवल “पूछें” व्यवहार ही प्रदान करता है:

ui_notif_confirm

व्यवहार

0

मोडल-कम प्रॉम्प्ट, हमेशा

1

मोडल-कम प्रॉम्प्ट, यदि संपादक संशोधित है या पूर्ववत करें तो खाली न करें

2

मोडल-रहित संकेत, यदि संपादक संशोधित है

3

मोडल प्रॉम्प्ट, हमेशा

4

मोडल प्रॉम्प्ट, यदि संपादक संशोधित है

इसका कोई मूल्य नहीं है जिसका अर्थ है “स्वचालित रूप से पुनः लोड करें, कोई संकेत नहीं, चलते रहें।” इसलिए यह छोटा प्लगइन, जो अपना स्वयं का पोलिंग लूप चलाता है और पुनः लोड करता है सीधे पायथन एपीआई के माध्यम से।

स्थापना

CODE_ब्लॉक_0

CudaText को पुनरारंभ करें.

महत्वपूर्ण: CudaText के स्वयं के परिवर्तन-अधिसूचना संवाद को भी अक्षम करें यह प्लगइन से नहीं लड़ता. में ~/.config/cudatext/settings/user.json:

CODE_ब्लॉक_1

(यूआई में विकल्प सेटिंग्स - उपयोगकर्ता कॉन्फ़िगरेशन के बराबर।) पुनरारंभ करें इस परिवर्तन के बाद फिर से CudaText.

चेतावनियाँ

  • यह जानबूझकर विनाशकारी है: सहेजे न गए संपादक संपादन हटा दिए जाते हैं चुपचाप उस क्षण जब फ़ाइल बाहरी रूप से बदलती है। वह संपूर्ण है प्लगइन का बिंदु - यदि आप कभी-कभी रखना चाहते हैं तो इसे इंस्टॉल न करें बाहरी परिवर्तनों की तुलना में स्थानीय संपादन।

  • केवल फ़ाइल के समय में परिवर्तन पर प्रतिक्रिया करता है; संपादक में ही टाइप करना पुनः लोड ट्रिगर नहीं करता (कोई फीडबैक लूप नहीं)।

  • यदि फ़ाइल बाहरी रूप से हटा दी जाती है, तो प्लगइन तब तक कुछ नहीं करता है पुनः प्रकट होता है (कोई दुर्घटना नहीं, कोई बार-बार पुनः लोड करने का प्रयास नहीं)।

  • एन्कोडिंग को PROP_ENC के माध्यम से पढ़ा जाता है और निकटतम पायथन कोडेक पर मैप किया जाता है; यदि आप ऐसे एन्कोडिंग का उपयोग करते हैं जो पहले से नहीं है तो ENC_MAP को __init__.py में विस्तारित करें सूचीबद्ध.

मूल

“हमेशा सहेजे न गए संपादक की तुलना में फ़ाइल सिस्टम परिवर्तनों को प्राथमिकता देना” के लिए निर्मित CudaText सेट करते समय बफ़र्स, कोई पुष्टिकरण नहीं” आवश्यकता पर चर्चा की गई आर्क पर yay -S cudatext-qt6-bin Python के माध्यम से।