ecode: Added --health command line parameter to get a health status (like helix editor).

This commit is contained in:
Martín Lucas Golini
2023-02-15 21:47:42 -03:00
parent 004fda780c
commit ee64d434f7
23 changed files with 9638 additions and 49 deletions

View File

@@ -29,11 +29,13 @@ UICodeEditorPlugin* ecode::PluginManager::get( const std::string& id ) {
return nullptr;
}
bool PluginManager::setEnabled( const std::string& id, bool enable ) {
bool PluginManager::setEnabled( const std::string& id, bool enable, bool sync ) {
mPluginsEnabled[id] = enable;
UICodeEditorPlugin* plugin = get( id );
if ( enable && plugin == nullptr && hasDefinition( id ) ) {
UICodeEditorPlugin* newPlugin = mDefinitions[id].creatorFn( this );
UICodeEditorPlugin* newPlugin = sync && mDefinitions[id].creatorSyncFn
? mDefinitions[id].creatorSyncFn( this )
: mDefinitions[id].creatorFn( this );
mPlugins.insert( std::pair<std::string, UICodeEditorPlugin*>( id, newPlugin ) );
if ( onPluginEnabled )
onPluginEnabled( newPlugin );
@@ -71,11 +73,12 @@ void PluginManager::onNewEditor( UICodeEditor* editor ) {
editor->registerPlugin( plugin.second );
}
void PluginManager::setPluginsEnabled( const std::map<std::string, bool>& pluginsEnabled ) {
void PluginManager::setPluginsEnabled( const std::map<std::string, bool>& pluginsEnabled,
bool sync ) {
mPluginsEnabled = pluginsEnabled;
for ( const auto& plugin : pluginsEnabled ) {
if ( plugin.second && get( plugin.first ) == nullptr )
setEnabled( plugin.first, true );
setEnabled( plugin.first, true, sync );
}
}