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