From 5632caa5ff10953c5775158314fb5cd75dca62b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Mon, 10 Apr 2023 12:02:20 -0300 Subject: [PATCH] ecode: Minor fixes. --- src/tools/ecode/ecode.cpp | 6 ++++++ src/tools/ecode/plugins/formatter/formatterplugin.cpp | 6 +++++- src/tools/ecode/plugins/linter/linterplugin.cpp | 5 ++++- src/tools/ecode/plugins/lsp/lspclientplugin.cpp | 6 +++++- src/tools/ecode/statusbuildoutputcontroller.cpp | 4 ++++ src/tools/ecode/statusbuildoutputcontroller.hpp | 2 ++ src/tools/ecode/statusterminalcontroller.cpp | 4 ++++ src/tools/ecode/statusterminalcontroller.hpp | 2 ++ src/tools/ecode/terminalmanager.cpp | 9 +++++++-- 9 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src/tools/ecode/ecode.cpp b/src/tools/ecode/ecode.cpp index f91660f4a..2a5525c97 100644 --- a/src/tools/ecode/ecode.cpp +++ b/src/tools/ecode/ecode.cpp @@ -1477,6 +1477,12 @@ void App::onCodeEditorFocusChange( UICodeEditor* editor ) { void App::onColorSchemeChanged( const std::string& ) { mSettings->updateColorSchemeMenu(); mGlobalSearchController->updateColorScheme( mSplitter->getCurrentColorScheme() ); + + if ( mStatusBuildOutputController && mStatusBuildOutputController->getContainer() ) { + mStatusBuildOutputController->getContainer()->setColorScheme( + mSplitter->getCurrentColorScheme() ); + } + mNotificationCenter->addNotification( String::format( i18n( "color_scheme_set", "Color scheme: %s" ).toUtf8().c_str(), mSplitter->getCurrentColorScheme().getName().c_str() ) ); diff --git a/src/tools/ecode/plugins/formatter/formatterplugin.cpp b/src/tools/ecode/plugins/formatter/formatterplugin.cpp index a89296528..1d1a78268 100644 --- a/src/tools/ecode/plugins/formatter/formatterplugin.cpp +++ b/src/tools/ecode/plugins/formatter/formatterplugin.cpp @@ -159,7 +159,11 @@ void FormatterPlugin::loadFormatterConfig( const std::string& path, bool updateC Log::error( "FormatterPlugin::loadFormatterConfig - Error parsing formatter config from " "path %s, error: ", path.c_str(), e.what() ); - return; + if ( !updateConfigFile ) + return; + // Recreate it + j = json::parse( "{\n \"config\":{},\n \"keybindings\":{},\n \"formatters\":[]\n}\n", + nullptr, true, true ); } if ( j.contains( "config" ) ) { diff --git a/src/tools/ecode/plugins/linter/linterplugin.cpp b/src/tools/ecode/plugins/linter/linterplugin.cpp index 3123fb55a..211464533 100644 --- a/src/tools/ecode/plugins/linter/linterplugin.cpp +++ b/src/tools/ecode/plugins/linter/linterplugin.cpp @@ -84,7 +84,10 @@ void LinterPlugin::loadLinterConfig( const std::string& path, bool updateConfigF Log::error( "LinterPlugin::loadLinterConfig - Error parsing linter config from " "path %s, error: ", path.c_str(), e.what() ); - return; + if ( !updateConfigFile ) + return; + // Recreate it + j = json::parse( "{\n\"config\":{},\n\"linters\":[]\n}\n", nullptr, true, true ); } if ( j.contains( "config" ) ) { diff --git a/src/tools/ecode/plugins/lsp/lspclientplugin.cpp b/src/tools/ecode/plugins/lsp/lspclientplugin.cpp index b1447bf5a..904ed9197 100644 --- a/src/tools/ecode/plugins/lsp/lspclientplugin.cpp +++ b/src/tools/ecode/plugins/lsp/lspclientplugin.cpp @@ -732,7 +732,11 @@ void LSPClientPlugin::loadLSPConfig( std::vector& lsps, const std Log::error( "LSPClientPlugin::loadLSPConfig - Error parsing LSP config from " "path %s, error: ", path.c_str(), e.what() ); - return; + if ( !updateConfigFile ) + return; + // Recreate it + j = json::parse( "{\n \"config\":{},\n \"keybindings\":{},\n \"servers\":[]\n}\n", + nullptr, true, true ); } if ( j.contains( "config" ) ) { diff --git a/src/tools/ecode/statusbuildoutputcontroller.cpp b/src/tools/ecode/statusbuildoutputcontroller.cpp index b6be0c516..d9540c84f 100644 --- a/src/tools/ecode/statusbuildoutputcontroller.cpp +++ b/src/tools/ecode/statusbuildoutputcontroller.cpp @@ -138,6 +138,10 @@ void StatusBuildOutputController::run( const std::string& buildName, const std:: } } +UICodeEditor* StatusBuildOutputController::getContainer() { + return mContainer; +} + UICodeEditor* StatusBuildOutputController::createContainer() { UICodeEditor* editor = UICodeEditor::NewOpt( true, true ); editor->setLocked( true ); diff --git a/src/tools/ecode/statusbuildoutputcontroller.hpp b/src/tools/ecode/statusbuildoutputcontroller.hpp index 5e1a73a8d..59b762756 100644 --- a/src/tools/ecode/statusbuildoutputcontroller.hpp +++ b/src/tools/ecode/statusbuildoutputcontroller.hpp @@ -28,6 +28,8 @@ class StatusBuildOutputController { void run( const std::string& buildName, const std::string& buildType, const ProjectBuildOutputParser& outputParser = {} ); + UICodeEditor* getContainer(); + protected: UISplitter* mMainSplitter{ nullptr }; UISceneNode* mUISceneNode{ nullptr }; diff --git a/src/tools/ecode/statusterminalcontroller.cpp b/src/tools/ecode/statusterminalcontroller.cpp index 54582ca88..635f9d665 100644 --- a/src/tools/ecode/statusterminalcontroller.cpp +++ b/src/tools/ecode/statusterminalcontroller.cpp @@ -62,6 +62,10 @@ void StatusTerminalController::show() { } } +UITerminal* StatusTerminalController::getUITerminal() { + return mUITerminal; +} + UITerminal* StatusTerminalController::createTerminal( const std::string& workingDir, std::string program, const std::vector& args ) { diff --git a/src/tools/ecode/statusterminalcontroller.hpp b/src/tools/ecode/statusterminalcontroller.hpp index 167afd5c8..98b40ba55 100644 --- a/src/tools/ecode/statusterminalcontroller.hpp +++ b/src/tools/ecode/statusterminalcontroller.hpp @@ -25,6 +25,8 @@ class StatusTerminalController { void show(); + UITerminal* getUITerminal(); + protected: UISplitter* mMainSplitter{ nullptr }; UISceneNode* mUISceneNode{ nullptr }; diff --git a/src/tools/ecode/terminalmanager.cpp b/src/tools/ecode/terminalmanager.cpp index a8c390c8e..ed115230d 100644 --- a/src/tools/ecode/terminalmanager.cpp +++ b/src/tools/ecode/terminalmanager.cpp @@ -11,6 +11,11 @@ void TerminalManager::applyTerminalColorScheme( const TerminalColorScheme& color if ( widget->isType( UI_TYPE_TERMINAL ) ) widget->asType()->setColorScheme( colorScheme ); } ); + + if ( mApp->getStatusTerminalController() && + mApp->getStatusTerminalController()->getUITerminal() ) { + mApp->getStatusTerminalController()->getUITerminal()->setColorScheme( colorScheme ); + } } void TerminalManager::setTerminalColorScheme( const std::string& name ) { @@ -36,10 +41,10 @@ void TerminalManager::loadTerminalColorSchemes() { colorSchemes.emplace_back( TerminalColorScheme::getDefault() ); if ( FileSystem::isDirectory( mTerminalColorSchemesPath ) ) { auto colorSchemesFiles = FileSystem::filesGetInPath( mTerminalColorSchemesPath ); - for ( auto& file : colorSchemesFiles ) { + for ( const auto& file : colorSchemesFiles ) { auto colorSchemesInFile = TerminalColorScheme::loadFromFile( mTerminalColorSchemesPath + file ); - for ( auto& coloScheme : colorSchemesInFile ) + for ( const auto& coloScheme : colorSchemesInFile ) colorSchemes.emplace_back( coloScheme ); } } else {