diff --git a/src/eepp/ui/doc/documentview.cpp b/src/eepp/ui/doc/documentview.cpp index a5c98aab7..cfcbc97ec 100644 --- a/src/eepp/ui/doc/documentview.cpp +++ b/src/eepp/ui/doc/documentview.cpp @@ -469,11 +469,16 @@ void DocumentView::updateCache( Int64 fromLine, Int64 toLine, Int64 numLines ) { auto lb = computeLineBreaks( *mDoc, i, mFontStyle, mMaxWidth, mConfig.mode, mConfig.keepIndentation, mConfig.tabWidth, mWhiteSpaceWidth ); - mVisibleLinesOffset.insert( mVisibleLinesOffset.begin() + i, lb.paddingStart ); - for ( const auto& col : lb.wraps ) { - mVisibleLines.insert( mVisibleLines.begin() + idxOffset, { i, col } ); - idxOffset++; - } + + std::vector newWraps; + newWraps.reserve( lb.wraps.size() ); + for ( const auto& col : lb.wraps ) + newWraps.push_back( { i, col } ); + + mVisibleLines.insert( mVisibleLines.begin() + idxOffset, newWraps.begin(), + newWraps.end() ); + + idxOffset += lb.wraps.size(); } } diff --git a/src/eepp/ui/doc/textdocument.cpp b/src/eepp/ui/doc/textdocument.cpp index cc8538ebe..a036dc908 100644 --- a/src/eepp/ui/doc/textdocument.cpp +++ b/src/eepp/ui/doc/textdocument.cpp @@ -3161,7 +3161,7 @@ void TextDocument::setDirtyUntilSave() { } static size_t guessFileSize( const TextDocument* doc ) { - Int64 maxLines = std::min( (Int64)101, (Int64)doc->linesCount() ); + Int64 maxLines = std::min( (Int64)401, (Int64)doc->linesCount() ); Int64 totalSize = 0; for ( Int64 i = 0; i < maxLines; i++ ) totalSize += doc->line( i ).size(); diff --git a/src/tools/ecode/plugins/debugger/debuggerplugin.cpp b/src/tools/ecode/plugins/debugger/debuggerplugin.cpp index 2e727d211..624ea7dc0 100644 --- a/src/tools/ecode/plugins/debugger/debuggerplugin.cpp +++ b/src/tools/ecode/plugins/debugger/debuggerplugin.cpp @@ -1664,7 +1664,8 @@ void DebuggerPlugin::displayTooltip( UICodeEditor* editor, const EvaluateInfo& r } void DebuggerPlugin::tryHideTooltip( UICodeEditor* editor, const Vector2i& position ) { - if ( !mCurrentHover.isValid() || + if ( ( editor->hasDocument() && editor->getDocument().isLoading() ) || + !mCurrentHover.isValid() || ( mCurrentHover.isValid() && !mCurrentHover.contains( editor->resolveScreenPosition( position.asFloat() ) ) ) ) hideTooltip( editor ); diff --git a/src/tools/ecode/plugins/linter/linterplugin.cpp b/src/tools/ecode/plugins/linter/linterplugin.cpp index c834b0958..a762c9172 100644 --- a/src/tools/ecode/plugins/linter/linterplugin.cpp +++ b/src/tools/ecode/plugins/linter/linterplugin.cpp @@ -1296,6 +1296,9 @@ bool LinterPlugin::onMouseMove( UICodeEditor* editor, const Vector2i& pos, const return false; } + if ( editor->hasDocument() && editor->getDocument().isLoading() ) + return false; + Vector2f localPos( editor->convertToNodeSpace( pos.asFloat() ) ); TextPosition cursorPosition = editor->resolveScreenPosition( pos.asFloat() ); if ( localPos.x <= editor->getGutterWidth() ) diff --git a/src/tools/ecode/plugins/lsp/lspclientplugin.cpp b/src/tools/ecode/plugins/lsp/lspclientplugin.cpp index f55db5aaa..db9c36e25 100644 --- a/src/tools/ecode/plugins/lsp/lspclientplugin.cpp +++ b/src/tools/ecode/plugins/lsp/lspclientplugin.cpp @@ -1,5 +1,5 @@ -#include "../../version.hpp" #include "lspclientplugin.hpp" +#include "../../version.hpp" #include #include #include @@ -1760,7 +1760,8 @@ TextPosition currentMouseTextPosition( UICodeEditor* editor ) { } void LSPClientPlugin::tryHideTooltip( UICodeEditor* editor, const Vector2i& position ) { - if ( !mCurrentHover.range.isValid() || + if ( ( editor->hasDocument() && editor->getDocument().isLoading() ) || + !mCurrentHover.range.isValid() || ( mCurrentHover.range.isValid() && !mCurrentHover.range.contains( editor->resolveScreenPosition( position.asFloat() ) ) ) ) hideTooltip( editor );