Edbee เป็นองค์ประกอบของตัวแก้ไขที่ใช้ QT รองรับหลาย ๆ ทางเดินเล่น textMate การกำหนดขอบเขต/ไวยากรณ์และการสนับสนุนที่เน้น
คลาสพื้นฐานของ Edbee เป็น qwidget มันถูกเขียนตั้งแต่เริ่มต้นและไม่ได้ขึ้นอยู่กับส่วนประกอบตัวแก้ไขเริ่มต้น QT
เว็บไซต์หลักสำหรับ Edbee อยู่ที่ http://edbee.net/ คุณสามารถค้นหาเอกสารที่สร้างขึ้นได้ที่ http://docs.edbee.net/
พื้นที่เก็บข้อมูลนี้เป็นการสกัดที่สะอาดของที่เก็บ edbee monolithical ก่อนหน้า ไลบรารีนี้ไม่มีไฟล์ข้อมูลใด ๆ การใช้มันควรเป็นเรื่องง่ายเหมือนตัวอย่างต่อไปนี้:
# 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();แน่นอนว่ามันจะเป็นการดีที่จะเติมไฟล์ด้วยไฟล์ คุณสามารถใช้ serializer ที่ให้มาสำหรับสิ่งนี้
# 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) มันมี textautocompleteProviderList ในระดับ textDocument และทั่วโลกผ่านระดับ Edbee :: Instance ()
ปัจจุบันมีการใช้งานเฉพาะ 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: คำเตือน: คำสั่ง Overriding สำหรับเป้าหมาย util.o) วิธีแก้ปัญหาสำหรับสิ่งนี้กำลังต่อท้ายบรรทัดต่อไปนี้ใน (Objects_dir เป็นตัวเลือก แต่ป้องกันการเตือนเมื่อเรียกใช้ QMake)
CONFIG += object_parallel_to_source in your .pro file
OBJECTS_DIR = objects
คุณสามารถมีส่วนร่วมผ่าน GitHub
แน่นอนว่าคุณสามารถมีส่วนร่วมได้โดยติดต่อฉันผ่าน Twitter @GameCreature หรือส่งข้อความถึงฉันผ่านทางอีเมล-ที่อยู่ที่จัดหาที่ https://github.com/gamecreature
แม้ว่าเราจะมีปัญหาของเราเองที่ (http://issues.edbee.net/) คุณสามารถรายงานปัญหาของคุณผ่านตัวติดตามปัญหา GitHub หรือส่งข้อความถึงฉัน https://github.com/gamecreature