Edbee هو مكون محرر قائم على QT. وهو يدعم العديد من الكاريهات ، والنطاق/النحاس TextMate ويسلط الضوء على الدعم.
الفئة الأساسية لـ Edbee هي QWidget ، وقد تمت كتابتها من نقطة الصفر ولا تستند إلى مكونات محرر QT الافتراضية.
الموقع الرئيسي لـ Edbee هو على http://edbee.net/ يمكنك العثور على الوثائق التي تم إنشاؤها على http://docs.edbee.net/
هذا المستودع عبارة عن استخراج نظيف لمستودع Edbee السابق المتجانس. لا تحتوي هذه المكتبة على أي ملفات بيانات. يجب أن يصبح استخدامه سهلاً مثل المثال التالي:
# include " edbee/edbee.h "
edbee::TextEditorWidget* widget = new edbee::TextEditorWidget();لسوء الحظ ، لسنا في هذه المرحلة بعد. حاليًا لن تعمل مكتبة Edbee دون تحميل ملف keymap الافتراضي.
باستخدام المكون أمر سهل للغاية. أولاً ، يجب عليك إعداد بيئة Edbee. هذه العملية مطلوبة لجعل المكتبة تعرف موقع ملفات الإعدادات:
# include " edbee/edbee.h "
// get the edbee instance
edbee::Edbee* tm = edbee::Edbee::instance();
// configure your paths
tm -> setKeyMapPath ( " location/of/your/keymap/ " );
tm -> setGrammarPath ( " location/of/your/syntaxfiles/ " );
tm -> setThemePath ( " location/of/your/themes/ " );
// initialize the library
tm -> init ();
// by registering a shutdown function on application exit you don't have to destroy the edbee
// resources yourself. It will result in a clean shutdown
tm -> autoShutDownOnAppExit ();بعد ذلك أنت مستعد للذهاب. يمكنك إنشاء عنصر واجهة مستخدم مثل هذه:
edbee::TextEditorWidget* widget = new edbee::TextEditorWidget();بالطبع سيكون من الجيد أيضًا ملء المحرر بملف. يمكنك استخدام المسلسل المدمج لهذا.
# include " edbee/io/textdocumentserializer.h "
# include " edbee/texteditorwidget.h "
edbee::TextEditorWidget* widget = new edbee::TextEditorWidget();
edbee::TextDocumentSerializer serializer ( widget-> textDocument () );
QFile file ( QStringLiteral( " your-filename.rb " ) );
if ( !serializer.load( &file ) ) {
QMessageBox::warning ( this , tr ( " Error opening file " ), tr ( " Error opening file! n %1 " ). arg (serializer. errorString ()) );
}
بعد تحميل textfile ، من الجيد اكتشاف القواعد/لغة هذا الملف. تستخدم مكتبة Edbee اكتشاف نوع الملف القائم على التمديد. بالطبع يمكنك أيضًا مكونًا إضافيًا خاصًا بك.
# include " edbee/edbee.h "
# include " edbee/models/textdocument.h "
# include " edbee/models/textgrammar.h "
# include " edbee/texteditorwidget.h "
TextGrammarManager* grammarManager = edbee::Edbee::instance()-> grammarManager ();
TextGrammar* grammar = grammarManager-> detectGrammarWithFilename ( " a-ruby-file.rb " );
widget-> textDocument ()->setLanguagGrammar( grammar );Edbee يدعم الإكمال التلقائي. حاليًا محدود للغاية ، ولكن تم القيام بالأعمال الأساسية لدعم الإكمال الذاتي المتقدم.
أعمال تلقائية كاملة عن طريق الاستعلام عن مقدمي الإكمال التلقائي (TextAutocompleteProvider). إنه يحتوي على TextautOcplesseProviderList على مستوى TextDocument وعالمي عبر مستوى EDBEE :: exate ().
حاليا فقط يتم تنفيذ stringTextAutocompleteProvider. يمكنك إضافة قائمة الإكمال التلقائي على مستوى المستند ومستوى Edbeel.
أفكار للمستقبل
حاليا يمكنك تعيين قائمة الكلمات الرئيسية مثل هذا:
# include " edbee/models/textautocompleteprovider.h "
StringTextAutoCompleteProvider* provider = new StringTextAutoCompleteProvider();
provider-> add ( " const " );
provider-> add ( " class " );
provider-> add ( " compare " );
// etc ...
// to add it Locally (specific to the given document)
textDocument-> autoCompleteProviderList ()->giveProvider(provider);
// to add it Globally:
Edbee::instance ()->autoCompleteProviderList()->giveProvider(provider);عندما تستخدم مشاريع QT على سبيل المثال util.cpp ، يمكنك الحصول على مجموعة من ملفات الكائن. (Makefile: تحذير: أوامر تجاوز للهدف util.o). يتم إلحاق الحل البديل لهذا الخطوط التالية في (Objects_dir اختياري ، ولكنه يمنع تحذير عند تشغيل Qmake)
CONFIG += object_parallel_to_source in your .pro file
OBJECTS_DIR = objects
يمكنك المساهمة عبر جيثب
بالطبع ، يمكنك أيضًا المساهمة من خلال الاتصال بي عبر TwitterGeCreature أو إسقاط رسالة عبر البريد الإلكتروني المرفق على https://github.com/gameCreature
على الرغم من أن لدينا مشكلاتنا الخاصة على (http://issues.edbee.net/) ، يمكنك الإبلاغ