Imguicolortextedit
بناء جملة تسليط الضوء على محرر النصوص لـ IMGUI

مشروع العرض التجريبي: https://github.com/balazsjako/colortexteditordemo
بدأ هذا كمحاولتي لكتابة عنصر واجهة مستخدم بسيطة نسبيًا يوفر وظائف تحرير النص مع تسليط الضوء على بناء الجملة. الآن هناك مساهمون آخرون يقدمون إضافات قيمة.
على الرغم من أنه يعتمد على https://github.com/ocornut/imgui من Omar Cornut ، إلا أنه لا يتبع واجهة المستخدم "النقية" - نهج وظيفة واحدة. نظرًا لأنه يتعين على المحرر الحفاظ على حالة داخلية معقدة وكبيرة نسبيًا ، فلا يبدو أنه من العملي محاولة تطبيق الوضع الفوري تمامًا. إنه يخزن حالته الداخلية في مثيل كائن يتم إعادة استخدامه عبر الإطارات.
الرمز هو (لا يزال) العمل قيد التقدم ، يرجى الإبلاغ إذا وجدت أي مشاكل.
الميزات الرئيسية
- يقارب مظهر محرر التعليمات البرمجي النموذجي (أوامر الماوس/لوحة المفاتيح الأساسية - أعني ، الأوامر التي أستخدمها عادة :))
- التراجع عن/إعادة
- دعم UTF-8
- يعمل مع كل من الخطوط الثابتة والمتغيرة العرض
- بناء جملة قابل للتمديد لللغات المتعددة
- إعلانات المعرف: يمكن ربط جزء صغير من الوصف مع المعرف. يعرضها المحرر في تلميح أدوات عندما يتم تحوم مؤشر الماوس على المعرف
- علامات الخطأ: يمكن للمستخدم تحديد قائمة رسائل الخطأ معًا في سطر الحدوث ، وسيقوم المحرر بإعداد الخطوط مع رسالة خطأ عكسية وعرضها في تلميح أدوات عندما يتم تحوم مؤشر الماوس فوق السطر
- الملفات الكبيرة: لا يوجد حد صريح محدد على حجم الملف أو عدد الخطوط (أقل من 2 جيجابايت ، لا يتأثر الأداء عند تحميل ملفات كبيرة (باستثناء تلوين بناء الجملة ، انظر أدناه)
- دعم لوحة الألوان: يمكنك التبديل بين لوحات الألوان المختلفة ، أو حتى تحديد خاص بك
- مؤشرات المساحة البيضاء (علامة التبويب ، الفضاء)
القضايا المعروفة
- يعتمد كل من Syntax Highligthing لمعظم اللغات - باستثناء C/C ++ - على STD :: Regex ، وهو بطيء. بسبب ذلك ، يتم إطفاء عملية التمييز بين إطارات متعددة. يحتوي C/C ++ على رمز مميز مكتوب يدويًا وهو أسرع بكثير.
يرجى نشر لقطات الشاشة إذا وجدت هذا البرنامج الصغير مفيدًا. سائدا
يساهم
إذا كنت ترغب في المساهمة ، يرجى الرجوع إلى ملف المساهمة.