EdbeeはQTベースのエディターコンポーネントです。複数のケート、テキストメイトのスコーピング/文法、および強調表示サポートをサポートしています。
EdbeeのベースクラスはQWIDGETであり、ゼロから書かれており、QTデフォルトエディターコンポーネントに基づいていません。
EdbeeのメインWebサイトはhttp://edbee.net/にあります。
このリポジトリは、以前のEdbee Monolithicalリポジトリのきれいな抽出です。このライブラリにはデータファイルは含まれていません。それを使用すると、次の例と同じくらい簡単になるはずです。
# include " edbee/edbee.h "
edbee::TextEditorWidget* widget = new edbee::TextEditorWidget();残念ながら、私たちはまだこの時点ではありません。現在、Edbeeライブラリは、デフォルトのキーマップファイルをロードせずに機能しません。
コンポーネントを使用するのは非常に簡単です。まず、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 ()) );
}
TextFileを読み込んだ後、このファイルの文法/言語を検出するのがいいです。 Edbee Libraryは、拡張機能ベースのファイルタイプの検出を使用しています。もちろん、自分でプラグインすることもできます。
# 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)をクエリすることによる自動コンプリートワーク。 Edbee :: Instance()レベルを介して、TextDocumentレベルとグローバルにTextAutoCompleTeProviderListを備えています。
現在、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:警告:ターゲット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 issoトラッカーを介して問題を報告するか、メッセージを送信することができますhttps://github.com/gamecreature