# البرنامج المساعد CudaText: "فوز القرص" (فرض إعادة التحميل التلقائي عند التغيير الخارجي) لا يحتوي CudaText على خيار مضمن يقوم بإعادة تحميل الملف بصمت في اللحظة التي يتم فيها ذلك التغييرات على القرص - لا يزال كل وضع "تم التغيير على القرص" المدمج يعرض بعض التغييرات نوع المطالبة (مشروط أو مشروط) قبل إعادة التحميل (راجع `ui_notif_confirm` في `default.json`، القيم `0`-`4`، وكلها بسأل). يسد هذا البرنامج المساعد هذه الفجوة: **القرص يفوز دائمًا**، بدون مطالبة، على الإطلاق. تمت أرشفته هنا لذا لا يضطر أحد إلى إعادة اشتقاق واجهة برمجة تطبيقات البرنامج المساعد CudaText لهذا الغرض مرة أخرى. مصدر الحقيقة للمكون الإضافي نفسه موجود [`cuda_disk_wins/`](.././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 | موجه مشروط، إذا تم تعديل المحرر | لا توجد قيمة تعني "إعادة التحميل تلقائيًا، بدون مطالبة، استمر". ومن هنا يأتي هذا البرنامج الإضافي الصغير، الذي يدير حلقة الاقتراع الخاصة به ويعيد التحميل مباشرة من خلال Python API. ## تثبيت ```bash mkdir -p ~/.config/cudatext/py cp -r cuda_disk_wins ~/.config/cudatext/py/ ``` أعد تشغيل CudaText. **هام:** قم أيضًا بتعطيل مربع حوار إعلام التغيير الخاص بـ CudaText لا يتعارض مع البرنامج المساعد. في `~/.config/cudatext/settings/user.json`: ```json { "ui_notif": false } ``` (أي ما يعادل `الخيارات → الإعدادات - تكوين المستخدم` في واجهة المستخدم.) أعد التشغيل CudaText مرة أخرى بعد هذا التغيير. ##محاذير - هذا أمر مدمر عمدًا: يتم تجاهل تعديلات المحرر غير المحفوظة بصمت لحظة تغير الملف خارجيا. هذا هو كامل نقطة المكون الإضافي - لا تقم بتثبيته إذا كنت تريد الاحتفاظ به في بعض الأحيان التعديلات المحلية على التغييرات الخارجية. - يتفاعل فقط مع التغييرات في وقت الملف؛ الكتابة في المحرر نفسه لا يؤدي إلى إعادة التحميل (لا توجد حلقة ردود فعل). - إذا تم حذف الملف خارجيًا، فلن يقوم البرنامج المساعد بأي شيء حتى يتم حذفه يظهر مرة أخرى (لا يوجد أي تعطل، ولا توجد محاولات إعادة تحميل متكررة). - تتم قراءة التشفير عبر `PROP_ENC` وتعيينه إلى أقرب برنامج ترميز Python؛ قم بتوسيع `ENC_MAP` في `__init__.py` إذا كنت تستخدم ترميزًا غير موجود بالفعل المدرجة. ## أصل تم تصميمه من أجل "تفضيل تغييرات نظام الملفات دائمًا على المحرر غير المحفوظ المخازن المؤقتة، لا يوجد تأكيد" تمت مناقشته عند إعداد CudaText عبر `yay -S cudatext-qt6-bin python` على Arch.