From e5a814667444d7e11f3f0041dc0bb94753d88f6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Thu, 16 Mar 2023 01:02:56 -0300 Subject: [PATCH] Clock: renamed getElapsed in favor of getElapsedTimeAndReset. Since it was not very clear what it was doing. ecode: Some minor clean up. --- include/eepp/system/clock.hpp | 2 +- include/eepp/window/engine.hpp | 2 + src/eepp/graphics/scrollparallax.cpp | 2 +- src/eepp/graphics/textureloader.cpp | 4 +- src/eepp/scene/scenemanager.cpp | 2 +- src/eepp/system/clock.cpp | 2 +- src/eepp/ui/uiscenenode.cpp | 4 +- src/eepp/ui/uitheme.cpp | 4 +- src/eepp/window/engine.cpp | 4 ++ src/eepp/window/window.cpp | 4 +- src/tests/test_all/test.cpp | 12 ++-- src/tools/ecode/ecode.cpp | 2 +- .../autocomplete/autocompleteplugin.cpp | 55 ++++++++++--------- .../ecode/plugins/lsp/lspclientserver.cpp | 18 +++--- .../ecode/plugins/lsp/lspclientserver.hpp | 8 +-- 15 files changed, 66 insertions(+), 59 deletions(-) diff --git a/include/eepp/system/clock.hpp b/include/eepp/system/clock.hpp index b4e70ef7d..dcb373771 100644 --- a/include/eepp/system/clock.hpp +++ b/include/eepp/system/clock.hpp @@ -25,7 +25,7 @@ class EE_API Clock { /** Time in time elapsed between this call and the last call to Elapsed() * This is the equivalent to call GetElapsedTime() and then Restart(). */ - Time getElapsed(); + Time getElapsedTimeAndReset(); private: Platform::ClockImpl* mClockImpl; diff --git a/include/eepp/window/engine.hpp b/include/eepp/window/engine.hpp index d8500a866..b82ba52b5 100644 --- a/include/eepp/window/engine.hpp +++ b/include/eepp/window/engine.hpp @@ -26,6 +26,8 @@ class EE_API Engine { static bool isEngineRunning(); + static bool isRunninMainThread(); + /** Creates a new window. */ EE::Window::Window* createWindow( WindowSettings Settings, ContextSettings Context = ContextSettings() ); diff --git a/src/eepp/graphics/scrollparallax.cpp b/src/eepp/graphics/scrollparallax.cpp index c6059a221..16ebc652e 100644 --- a/src/eepp/graphics/scrollparallax.cpp +++ b/src/eepp/graphics/scrollparallax.cpp @@ -85,7 +85,7 @@ const Vector2f& ScrollParallax::getPosition() const { void ScrollParallax::draw() { if ( NULL != mTextureRegion && mAABB.Left != mAABB.Right && mAABB.Top != mAABB.Bottom && 0 != mColor.a ) { - mPos += mSpeed * (Float)mElapsed.getElapsed().asSeconds(); + mPos += mSpeed * (Float)mElapsed.getElapsedTimeAndReset().asSeconds(); if ( mPos.x > mAABB.Left + mRealSize.getWidth() || mPos.x < mAABB.Left - mRealSize.getWidth() ) diff --git a/src/eepp/graphics/textureloader.cpp b/src/eepp/graphics/textureloader.cpp index f20253dc4..fd3871c7d 100644 --- a/src/eepp/graphics/textureloader.cpp +++ b/src/eepp/graphics/textureloader.cpp @@ -351,10 +351,10 @@ void TextureLoader::loadFromPixels() { if ( mFilepath.empty() ) { Log::info( "Texture ID %d loaded in %4.3f ms.", mTexId, - mTE.getElapsed().asMilliseconds() ); + mTE.getElapsedTimeAndReset().asMilliseconds() ); } else { Log::info( "Texture %s loaded in %4.3f ms.", mFilepath.c_str(), - mTE.getElapsed().asMilliseconds() ); + mTE.getElapsedTimeAndReset().asMilliseconds() ); } } else { Log::warning( "Failed to create texture. Reason: %s", SOIL_last_result() ); diff --git a/src/eepp/scene/scenemanager.cpp b/src/eepp/scene/scenemanager.cpp index c0dd6dc21..15988bffb 100644 --- a/src/eepp/scene/scenemanager.cpp +++ b/src/eepp/scene/scenemanager.cpp @@ -51,7 +51,7 @@ void SceneManager::update( const Time& elapsed ) { } void SceneManager::update() { - update( mClock.getElapsed() ); + update( mClock.getElapsedTimeAndReset() ); } bool SceneManager::isShootingDown() const { diff --git a/src/eepp/system/clock.cpp b/src/eepp/system/clock.cpp index 39c152be7..9e0c41a48 100644 --- a/src/eepp/system/clock.cpp +++ b/src/eepp/system/clock.cpp @@ -19,7 +19,7 @@ Time Clock::getElapsedTime() const { return Microseconds( mClockImpl->getElapsedTime() ); } -Time Clock::getElapsed() { +Time Clock::getElapsedTimeAndReset() { Time r = getElapsedTime(); restart(); return r; diff --git a/src/eepp/ui/uiscenenode.cpp b/src/eepp/ui/uiscenenode.cpp index 7c74d466c..03da7cd66 100644 --- a/src/eepp/ui/uiscenenode.cpp +++ b/src/eepp/ui/uiscenenode.cpp @@ -331,7 +331,7 @@ UIWidget* UISceneNode::loadLayoutNodes( pugi::xml_node node, Node* parent, const Log::debug( "UISceneNode::loadLayoutNodes loaded nodes%s in: %.2f ms", id.empty() ? "" : std::string( " (id=" + id + ")" ).c_str(), - innerClock.getElapsed().asMilliseconds() ); + innerClock.getElapsedTimeAndReset().asMilliseconds() ); } for ( auto& widget : widgets ) @@ -339,7 +339,7 @@ UIWidget* UISceneNode::loadLayoutNodes( pugi::xml_node node, Node* parent, const if ( mVerbose ) { Log::debug( "UISceneNode::loadLayoutNodes reloaded styles in: %.2f ms", - innerClock.getElapsed().asMilliseconds() ); + innerClock.getElapsedTimeAndReset().asMilliseconds() ); } mIsLoading = false; diff --git a/src/eepp/ui/uitheme.cpp b/src/eepp/ui/uitheme.cpp index e368c99c4..5915ff4a4 100644 --- a/src/eepp/ui/uitheme.cpp +++ b/src/eepp/ui/uitheme.cpp @@ -143,7 +143,7 @@ UITheme* UITheme::loadFromTextureAtlas( UITheme* tTheme, Graphics::TextureAtlas* } Log::info( "UI Theme Loaded in: %4.3f ms ( from TextureAtlas )", - TE.getElapsed().asMilliseconds() ); + TE.getElapsedTimeAndReset().asMilliseconds() ); return tTheme; } @@ -251,7 +251,7 @@ UITheme* UITheme::loadFromDirectroy( UITheme* tTheme, const std::string& Path, else eeSAFE_DELETE( tSG ); - Log::info( "UI Theme Loaded in: %4.3f ms ( from path )", TE.getElapsed().asMilliseconds() ); + Log::info( "UI Theme Loaded in: %4.3f ms ( from path )", TE.getElapsedTimeAndReset().asMilliseconds() ); return tTheme; } diff --git a/src/eepp/window/engine.cpp b/src/eepp/window/engine.cpp index d00722a7a..e75bf4a7a 100644 --- a/src/eepp/window/engine.cpp +++ b/src/eepp/window/engine.cpp @@ -236,6 +236,10 @@ bool Engine::isEngineRunning() { return existsSingleton() && Engine::instance()->isRunning(); } +bool Engine::isRunninMainThread() { + return isEngineRunning() && Engine::instance()->isMainThread(); +} + bool Engine::isRunning() const { return NULL != mWindow; } diff --git a/src/eepp/window/window.cpp b/src/eepp/window/window.cpp index 083853d73..0aa771655 100644 --- a/src/eepp/window/window.cpp +++ b/src/eepp/window/window.cpp @@ -326,7 +326,7 @@ void Window::updateElapsedTime() { mFrameData.FrameElapsed = eeNew( Clock, () ); } - mFrameData.ElapsedTime = mFrameData.FrameElapsed->getElapsed(); + mFrameData.ElapsedTime = mFrameData.FrameElapsed->getElapsedTimeAndReset(); } const Time& Window::getSleepTimePerSecond() const { @@ -371,7 +371,7 @@ void Window::limitFps() { Sys::sleep( remainingTime ); - Time elapsed = checkElapsed.getElapsed(); + Time elapsed = checkElapsed.getElapsedTimeAndReset(); Time timeDiff = elapsed - remainingTime; mFrameData.FPS.SleepTime += elapsed; diff --git a/src/tests/test_all/test.cpp b/src/tests/test_all/test.cpp index f90f20b8f..687debf09 100644 --- a/src/tests/test_all/test.cpp +++ b/src/tests/test_all/test.cpp @@ -259,7 +259,7 @@ void EETest::onFontLoaded() { TTF = FontManager::instance()->getByName( "NotoSans-Regular" ); Font* monospace = FontManager::instance()->getByName( "monospace" ); - Log::info( "Fonts loading time: %4.3f ms.", mFTE.getElapsed().asMilliseconds() ); + Log::info( "Fonts loading time: %4.3f ms.", mFTE.getElapsedTimeAndReset().asMilliseconds() ); eeASSERT( TTF != NULL ); eeASSERT( monospace != NULL ); @@ -600,7 +600,7 @@ void EETest::createUI() { createUIThemeTextureAtlas(); - Log::info( "Texture Atlas Loading Time: %4.3f ms.", TE.getElapsed().asMilliseconds() ); + Log::info( "Texture Atlas Loading Time: %4.3f ms.", TE.getElapsedTimeAndReset().asMilliseconds() ); mSceneNode = UISceneNode::New(); @@ -640,7 +640,7 @@ void EETest::createUI() { createBaseUI(); createNewUI(); - Log::info( "CreateUI time: %4.3f ms.", TE.getElapsed().asMilliseconds() ); + Log::info( "CreateUI time: %4.3f ms.", TE.getElapsedTimeAndReset().asMilliseconds() ); } void EETest::createNewUI() { @@ -1482,7 +1482,7 @@ void EETest::loadTextures() { mCircleSprite = Sprite::New( GlobalTextureAtlas::instance()->add( TextureRegion::New( TN[1], "thecircle" ) ) ); - Log::info( "Textures loading time: %4.3f ms.", TE.getElapsed().asMilliseconds() ); + Log::info( "Textures loading time: %4.3f ms.", TE.getElapsedTimeAndReset().asMilliseconds() ); Map.loadFromFile( MyPath + "maps/test.eem" ); Map.setDrawGrid( false ); @@ -1490,7 +1490,7 @@ void EETest::loadTextures() { Map.setDrawBackground( false ); Map.setViewSize( mWindow->getSize().asFloat() ); - Log::info( "Map creation time: %4.3f ms.", TE.getElapsed().asMilliseconds() ); + Log::info( "Map creation time: %4.3f ms.", TE.getElapsedTimeAndReset().asMilliseconds() ); } void EETest::run() { @@ -1506,7 +1506,7 @@ void EETest::particlesThread() { void EETest::updateParticles() { if ( MultiViewportMode || Screen == 2 ) { - PSElapsed = cElapsed.getElapsed(); + PSElapsed = cElapsed.getElapsedTimeAndReset(); for ( Uint8 i = 0; i < PS.size(); i++ ) PS[i].update( PSElapsed ); diff --git a/src/tools/ecode/ecode.cpp b/src/tools/ecode/ecode.cpp index 5184ae43d..9f89cb794 100644 --- a/src/tools/ecode/ecode.cpp +++ b/src/tools/ecode/ecode.cpp @@ -3334,7 +3334,7 @@ void App::init( const LogLevel& logLevel, std::string file, const Float& pidelDe Clock defClock; SyntaxDefinitionManager::createSingleton(); Log::info( "Syntax definitions loaded in %.2f ms.", - defClock.getElapsed().asMilliseconds() ); + defClock.getElapsedTimeAndReset().asMilliseconds() ); UIWidgetCreator::registerWidget( "searchbar", UISearchBar::New ); UIWidgetCreator::registerWidget( "locatebar", UILocateBar::New ); diff --git a/src/tools/ecode/plugins/autocomplete/autocompleteplugin.cpp b/src/tools/ecode/plugins/autocomplete/autocompleteplugin.cpp index 86dc016b6..0b5f14b4e 100644 --- a/src/tools/ecode/plugins/autocomplete/autocompleteplugin.cpp +++ b/src/tools/ecode/plugins/autocomplete/autocompleteplugin.cpp @@ -172,8 +172,8 @@ void AutoCompletePlugin::onUnregister( UICodeEditor* editor ) { editor->removeEventListener( listener ); mEditors.erase( editor ); mEditorDocs.erase( editor ); - for ( auto editor : mEditorDocs ) - if ( editor.second == doc ) + for ( auto ceditor : mEditorDocs ) + if ( ceditor.second == doc ) return; mDocs.erase( doc ); mDocCache.erase( doc ); @@ -346,29 +346,32 @@ bool AutoCompletePlugin::onTextInput( UICodeEditor* editor, const TextInputEvent auto lang = editor->getDocumentRef()->getSyntaxDefinition().getLSPName(); auto cap = mCapabilities.find( lang ); if ( cap != mCapabilities.end() ) { - bool requestedSignatureHelp = false; - const auto& signatureTrigger = cap->second.signatureHelpProvider.triggerCharacters; - if ( std::find( signatureTrigger.begin(), signatureTrigger.end(), event.getChar() ) != - signatureTrigger.end() ) { - requestSignatureHelp( editor ); - requestedSignatureHelp = true; + if ( cap->second.signatureHelpProvider.provider ) { + bool requestedSignatureHelp = false; + const auto& signatureTrigger = cap->second.signatureHelpProvider.triggerCharacters; + if ( std::find( signatureTrigger.begin(), signatureTrigger.end(), event.getChar() ) != + signatureTrigger.end() ) { + requestSignatureHelp( editor ); + requestedSignatureHelp = true; + } + if ( mSignatureHelpVisible && !requestedSignatureHelp ) { + auto doc = editor->getDocumentRef(); + auto curPos = doc->getSelection().start(); + if ( curPos.line() != mSignatureHelpPosition.line() || + curPos < doc->startOfWord( doc->positionOffset( mSignatureHelpPosition, 1 ) ) ) + resetSignatureHelp(); + } } - if ( mSignatureHelpVisible && !requestedSignatureHelp ) { - auto doc = editor->getDocumentRef(); - auto curPos = doc->getSelection().start(); - if ( curPos.line() != mSignatureHelpPosition.line() || - curPos < doc->startOfWord( doc->positionOffset( mSignatureHelpPosition, 1 ) ) ) - resetSignatureHelp(); - } - - const auto& triggerCharacters = cap->second.completionProvider.triggerCharacters; - if ( partialSymbol.size() >= 1 || - std::find( triggerCharacters.begin(), triggerCharacters.end(), event.getChar() ) != - triggerCharacters.end() ) { - updateSuggestions( partialSymbol, editor ); - } else { - resetSuggestions( editor ); + if ( cap->second.completionProvider.provider ) { + const auto& triggerCharacters = cap->second.completionProvider.triggerCharacters; + if ( partialSymbol.size() >= 1 || + std::find( triggerCharacters.begin(), triggerCharacters.end(), event.getChar() ) != + triggerCharacters.end() ) { + updateSuggestions( partialSymbol, editor ); + } else { + resetSuggestions( editor ); + } } return false; } @@ -906,7 +909,7 @@ void AutoCompletePlugin::resetSuggestions( UICodeEditor* editor ) { mSuggestionIndex = 0; mSuggestionsStartIndex = 0; { - Lock l( mSuggestionsEditorMutex ); + Lock l2( mSuggestionsEditorMutex ); mSuggestionsEditor = nullptr; } mSuggestions.clear(); @@ -974,11 +977,11 @@ void AutoCompletePlugin::updateSuggestions( const std::string& symbol, UICodeEdi auto langSuggestions = mLangCache.find( lang ); if ( langSuggestions == mLangCache.end() ) return; - auto& symbols = langSuggestions->second; + const auto& symbols = langSuggestions->second; { #if AUTO_COMPLETE_THREADED mPool->run( - [this, symbol, symbols, editor] { runUpdateSuggestions( symbol, symbols, editor ); } ); + [this, symbol, &symbols, editor] { runUpdateSuggestions( symbol, symbols, editor ); } ); #else runUpdateSuggestions( symbol, symbols, editor ); #endif diff --git a/src/tools/ecode/plugins/lsp/lspclientserver.cpp b/src/tools/ecode/plugins/lsp/lspclientserver.cpp index 3c5a201a5..05240bc41 100644 --- a/src/tools/ecode/plugins/lsp/lspclientserver.cpp +++ b/src/tools/ecode/plugins/lsp/lspclientserver.cpp @@ -425,7 +425,7 @@ static LSPSymbolInformationList parseDocumentSymbols( const json& result ) { rret.push_back( LSPSymbolInformationTmp::fromTmp( r ) ); Log::debug( "LSPClientServer - parseDocumentSymbols took: %.2fms", - clock.getElapsed().asMilliseconds() ); + clock.getElapsedTimeAndReset().asMilliseconds() ); return rret; } @@ -774,7 +774,7 @@ static LSPCompletionList parseDocumentCompletion( const json& result ) { } #ifndef EE_DEBUG } catch ( const json::exception& err ) { - Log::warning( "Error parsing parseDocumentCompletion: %s", err.what() ); + Log::debug( "Error parsing parseDocumentCompletion: %s", err.what() ); } #endif return ret; @@ -834,7 +834,7 @@ static LSPSignatureHelp parseSignatureHelp( const json& sig ) { } #ifndef EE_DEBUG } catch ( const json::exception& err ) { - Log::warning( "Error parsing parseSignatureHelp: %s", err.what() ); + Log::debug( "Error parsing parseSignatureHelp: %s", err.what() ); } #endif return ret; @@ -1103,8 +1103,7 @@ void LSPClientServer::notifyServerInitialized() { } bool LSPClientServer::needsAsync() { - return Engine::isEngineRunning() && - Engine::instance()->getMainThreadId() == Thread::getCurrentThreadId(); + return Engine::isRunninMainThread(); } bool LSPClientServer::isRunning() { @@ -1191,9 +1190,8 @@ void LSPClientServer::sendAsync( const json& msg, const JsonReplyHandler& h, LSPClientServer::LSPRequestHandle LSPClientServer::send( const json& msg, const JsonReplyHandler& h, const JsonReplyHandler& eh ) { -#ifdef EE_DEBUG eeASSERT( !needsAsync() ); -#endif + if ( mProcess.isAlive() ) { return write( msg, h, eh ); } else { @@ -1393,7 +1391,7 @@ void LSPClientServer::publishDiagnostics( const json& msg ) { } Log::debug( "LSPClientServer::publishDiagnostics: %s - returned %zu items", res.uri.toString().c_str(), res.diagnostics.size() ); - Log::info( "LSPClientServer::publishDiagnostics: %s", msg.dump().c_str() ); + Log::debug( "LSPClientServer::publishDiagnostics: %s", msg.dump().c_str() ); } void LSPClientServer::workDoneProgress( const LSPWorkDoneProgressParams& workDoneParams ) { @@ -1406,8 +1404,8 @@ void LSPClientServer::workDoneProgress( const LSPWorkDoneProgressParams& workDon void LSPClientServer::processNotification( const json& msg ) { if ( !msg.contains( MEMBER_METHOD ) ) { - Log::info( "LSPClientServer::processNotification - Unexpected notification, msg: %s", - msg.dump().c_str() ); + Log::debug( "LSPClientServer::processNotification - Unexpected notification, msg: %s", + msg.dump().c_str() ); return; } auto method = msg[MEMBER_METHOD].get(); diff --git a/src/tools/ecode/plugins/lsp/lspclientserver.hpp b/src/tools/ecode/plugins/lsp/lspclientserver.hpp index a225c538e..3f2e38b0e 100644 --- a/src/tools/ecode/plugins/lsp/lspclientserver.hpp +++ b/src/tools/ecode/plugins/lsp/lspclientserver.hpp @@ -197,11 +197,11 @@ class LSPClientServer { LSPRequestHandle documentFormatting( const URI& document, const json& options, const TextEditArrayHandler& h ); - void documentRename( const URI& document, const TextPosition& pos, - const std::string& newName, const JsonReplyHandler& h ); + void documentRename( const URI& document, const TextPosition& pos, const std::string& newName, + const JsonReplyHandler& h ); - void documentRename( const URI& document, const TextPosition& pos, - const std::string& newName, const WorkspaceEditHandler& h ); + void documentRename( const URI& document, const TextPosition& pos, const std::string& newName, + const WorkspaceEditHandler& h ); void memoryUsage( const JsonReplyHandler& h );