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 ()) );
}
После загрузки текстового файла приятно обнаружить грамматику/язык этого файла. Библиотека 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 поддерживает автозаполнение. В настоящее время это очень ограничено, но основы были сделаны для поддержки более продвинутых автозаполнений.
Auto Complete Works путем запроса поставщиков автозаполнения (TextautocOmpletEprovider). Он имеет TextAutocOfleteProviderList на уровне TextDocument и глобально через уровень EDBEE :: Extance ().
В настоящее время реализован только stringtextautocompleteprovider. Вы можете добавить список автозаполнения на уровне документа и уровня Эдбеля.
Идеи на будущее
В настоящее время вы можете установить список ключевых слов, как это:
# 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 Projects, например, UTIL.CPP, вы можете получить коллиссию с объектом. (Makefile: Предупреждение: переопределение команд для Target 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