Edbee ist eine QT -basierte Editor -Komponente. Es unterstützt mehrere Farben, Textmate Scoping/Grammatik und die Unterstützung der Unterstützung.
Die Basisklasse von Edbee ist ein Qwidget, das von Grund auf neu geschrieben wurde und nicht auf den QT -Standard -Editor -Komponenten basiert.
Die Hauptwebsite für Edbee finden Sie unter http://edbee.net/. Die generierte Dokumentation finden Sie unter http://docs.edbee.net/
Dieses Repository ist eine saubere Extraktion des vorherigen monolithischen Repositorys von Edbee. Diese Bibliothek enthält keine Datendateien. Die Verwendung sollte so einfach wie das folgende Beispiel werden:
# include " edbee/edbee.h "
edbee::TextEditorWidget* widget = new edbee::TextEditorWidget();Leider sind wir noch nicht an diesem Punkt. Derzeit funktioniert die Edbee -Bibliothek nicht ohne eine Standard -Keymap -Datei.
Die Verwendung der Komponente ist ziemlich einfach. Zuerst müssen Sie die Edbee -Umgebung einrichten. Dieser Vorgang ist erforderlich, damit die Bibliothek den Speicherort der Einstellungsdateien informiert:
# 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 ();Danach bist du bereit zu gehen. Sie können ein solches Widget erstellen:
edbee::TextEditorWidget* widget = new edbee::TextEditorWidget();Natürlich wäre es auch schön, den Editor mit einer Datei zu füllen. Dafür können Sie den mitgelieferten Serializer verwenden.
# 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 ()) );
}
Nach dem Laden der Textdatei ist es schön, die Grammatik/Sprache dieser Datei zu erkennen. Die EDBEE-Bibliothek verwendet eine erweiterungsbasierte Datei-Erkennung. Natürlich können Sie auch Ihre eigenen platzieren.
# 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 unterstützt automatisch. Derzeit ist es sehr begrenzt, aber die Grundlagen wurden für die Unterstützung fortgeschrittenerer Autoperationen durchgeführt.
Automatische vollständige Arbeiten durch Abfragen von automatischen Anbietern (TextAutOcompleteProvider). Es verfügt über eine TextAutOcpleteProviderliste auf Textdokumentebene und global über die Ebene von Edbee :: Instance ().
Derzeit wird nur der StringTextAutOcProvrovider implementiert. Sie können eine automatische Vervollständigungsliste auf die Dokumentebene und die EDBEEL-Ebene hinzufügen.
Ideen für die Zukunft
Derzeit können Sie die Keyword -Liste wie folgt festlegen:
# 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);Wenn Ihre QT-Projekte verwendet werden, z. (Makefile: WARNUNG: Übergeordnete Befehle für Target util.o). Eine Problemumgehung dafür beinhaltet die folgenden Zeilen in Ihrem (Objects_dir ist optional, verhindert jedoch eine Warnung beim Ausführen von QMake).
CONFIG += object_parallel_to_source in your .pro file
OBJECTS_DIR = objects
Sie können über GitHub beitragen
Natürlich können Sie auch einen Beitrag leisten, indem Sie mich über Twitter @gamecreature kontaktieren oder mir eine Nachricht über die E-Mail-Address-Berücksichtigung unter https://github.com/gamecreature senden
Obwohl wir unseren eigenen Ausgabetacker unter (http://issues.edbee.net/) haben, können Sie Ihre Probleme über den GitHub-Ausgaber-Tracker melden oder mir eine Nachricht senden https://github.com/gamecreaturure