O EDBEE é um componente editor baseado em QT. Ele suporta caretas, escopo/gramática de companheiros de texto e suporte de destaque.
A classe base do EdBee é um Qwidget, foi escrita do zero e não é baseada nos componentes do editor padrão do QT.
O site principal do Edbee está em http://edbee.net/ você pode encontrar a documentação gerada em http://docs.edbee.net/
Este repositório é uma extração limpa do repositório monolítico anterior do Edbee. Esta biblioteca não contém arquivos de dados. Usá -lo deve se tornar tão fácil quanto o exemplo a seguir:
# include " edbee/edbee.h "
edbee::TextEditorWidget* widget = new edbee::TextEditorWidget();Infelizmente, ainda não estamos neste momento. Atualmente, a biblioteca Edbee não funcionará sem carregar um arquivo keyMap padrão.
Usar o componente é muito fácil. Primeiro, você deve configurar o ambiente EDBEE. Esse processo é necessário para fazer com que a biblioteca saiba a localização dos arquivos de configurações:
# 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 ();Depois disso, você está pronto para ir. Você pode criar um widget como este:
edbee::TextEditorWidget* widget = new edbee::TextEditorWidget();É claro que também seria bom encher o editor com um arquivo. Você pode usar o serializador incluído para isso.
# 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 ()) );
}
Depois de carregar o arquivo de texto, é bom detectar a gramática/idioma deste arquivo. A biblioteca Edbee usa uma detecção do tipo de arquivo baseado em extensão. Claro que você também pode plugin seu próprio.
# 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 );O EDBEE suporta preenchimento automático. Atualmente, é muito limitado, mas as bases foram feitas para apoiar os auto -atendimentos mais avançados.
Obras completas automaticamente consultando fornecedores de preenchimento automático (textAutocompleteProvider). Possui um textAutocompleteProviderlist no nível de documental e globalmente através do nível EdBee :: Instância ().
Atualmente, apenas o StringTextaTocompleteProvider é implementado. Você pode adicionar uma lista de preenchimento automático no nível do documento e no nível EDBEEL.
Ideias para o futuro
Atualmente, você pode definir a lista de palavras -chave como esta:
# 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);Quando seus projetos QT usam, por exemplo, util.cpp, você pode obter uma colisão de arquivo de objetos. (Makefile: Aviso: Comandos Substituindo para o Target Util.O). Uma solução alternativa para isso está anexando as seguintes linhas em seu (objetos_dir é opcional, mas evita um aviso ao executar o QMake)
CONFIG += object_parallel_to_source in your .pro file
OBJECTS_DIR = objects
Você pode contribuir via github
É claro que você também pode contribuir entrando em contato comigo via Twitter @GameCreature ou me envie uma mensagem através do endereço de e-mail fornecido em https://github.com/gamecreature
Embora tenhamos nosso próprio tracker em (http://issues.edbee.net/), você pode relatar seus problemas através do rastreador de problemas do github ou me enviar uma mensagem https://github.com/gamecreature