Edbee es un componente del editor basado en QT. Admite múltiples caretos, alcance de textmate/gramática y soporte para resaltar.
La clase base de Edbee es un QWidget, se ha escrito desde cero y no se basa en los componentes del editor predeterminado de QT.
El sitio web principal para Edbee está en http://edbee.net/ puede encontrar la documentación generada en http://docs.edbee.net/
Este repositorio es una extracción limpia del anterior repositorio monolítico Edbee. Esta biblioteca no contiene ningún archivo de datos. Usarlo debería ser tan fácil como el siguiente ejemplo:
# include " edbee/edbee.h "
edbee::TextEditorWidget* widget = new edbee::TextEditorWidget();Lamentablemente aún no estamos en este momento. Actualmente, la biblioteca Edbee no funcionará sin cargar un archivo KEYMAP predeterminado.
Usar el componente es bastante fácil. Primero debe configurar el entorno Edbee. Se requiere este proceso para que la biblioteca conozca la ubicación de los archivos de configuración:
# 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 ();Después de eso, estás listo para ir. Puedes crear un widget como este:
edbee::TextEditorWidget* widget = new edbee::TextEditorWidget();Por supuesto, también sería bueno llenar el editor con un archivo. Puede usar el serializador incluido para esto.
# 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 ()) );
}
Después de cargar el archivo de texto, es bueno detectar la gramática/idioma de este archivo. La biblioteca Edbee utiliza una detección de tipo de archivo basada en extensiones. Por supuesto, también puede completar el suyo.
# 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 admite autocompletar. Actualmente es muy limitado, pero la base se ha realizado para apoyar autocompletos más avanzados.
Trabajos automáticos automáticos consultando proveedores de autocompletar (textAutOcOmpletepravider). Tiene un textAutOcOmetProviderList en el nivel de textDocument y a nivel mundial a través del nivel Edbee :: Inester ().
Actualmente solo se implementa StringTextAUTOtOpMetProvider. Puede agregar una lista de autocompletar en el nivel de documento y el nivel de Edbeel.
Ideas para el futuro
Actualmente puede establecer la lista de palabras clave así:
# 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);Cuando se utiliza los proyectos QT, por ejemplo, Util.cpp, puede obtener una colisión de archivo de objetos. (MakeFile: Advertencia: comandos anulantes para el objetivo util.o). Una solución para esto está agregando las siguientes líneas en su (Objects_Dir es opcional, pero evita una advertencia al ejecutar Qmake)
CONFIG += object_parallel_to_source in your .pro file
OBJECTS_DIR = objects
Puedes contribuir a través de Github
Por supuesto, también puede contribuir contactándome a través de Twitter @gameCreature o envíeme un mensaje a través del correo electrónico suministrado en https://github.com/gameCreature
Aunque tenemos nuestro propio TRACKER EN (http://issues.edbee.net/), puede informar sus problemas a través del rastreador de problemas de GitHub o enviarme un mensaje https://github.com/gameCreateure