From d71e33ff22b844c4d5d17fe6bd7759d1d367a4e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Sun, 18 May 2025 23:48:11 -0300 Subject: [PATCH] Minor fix, still not working properly. --- src/eepp/ui/doc/syntaxhighlighter.cpp | 4 ++- src/eepp/ui/doc/syntaxtokenizer.cpp | 50 ++++++++++++--------------- 2 files changed, 26 insertions(+), 28 deletions(-) diff --git a/src/eepp/ui/doc/syntaxhighlighter.cpp b/src/eepp/ui/doc/syntaxhighlighter.cpp index b80ecfda6..9bd643ae4 100644 --- a/src/eepp/ui/doc/syntaxhighlighter.cpp +++ b/src/eepp/ui/doc/syntaxhighlighter.cpp @@ -131,8 +131,10 @@ void SyntaxHighlighter::setMaxTokenizationLength( const Int64& maxTokenizationLe void SyntaxHighlighter::tokenizeAsync( std::shared_ptr pool, const std::function& onDone ) { - #warning SyntaxHighlighter::tokenizeAsync is disabled +#ifndef EE_COMPILER_MSVC +#warning SyntaxHighlighter::tokenizeAsync is disabled return; +#endif if ( mTokenizeAsync ) return; mTokenizeAsync = true; diff --git a/src/eepp/ui/doc/syntaxtokenizer.cpp b/src/eepp/ui/doc/syntaxtokenizer.cpp index d08ee62e3..db1f4028a 100644 --- a/src/eepp/ui/doc/syntaxtokenizer.cpp +++ b/src/eepp/ui/doc/syntaxtokenizer.cpp @@ -153,35 +153,29 @@ SyntaxStateRestored SyntaxTokenizer::retrieveSyntaxState( const SyntaxDefinition const SyntaxState& state ) { SyntaxStateRestored syntaxState{ &syntax, nullptr, state.state[0], 0 }; const SyntaxPattern* curPattern = nullptr; - if ( state.state[0].state > 0 && - ( state.state[1].state > 0 || - ( ( curPattern = syntax.getPatternFromState( state.state[0] ) ) && - curPattern->hasSyntaxOrContentScope() ) ) ) { - for ( size_t i = 0; i < MAX_SUB_SYNTAXS - 1; ++i ) { - if ( i != 0 || curPattern == nullptr ) - curPattern = syntaxState.currentSyntax->getPatternFromState( state.state[i] ); - if ( curPattern && state.state[i].state != SYNTAX_TOKENIZER_STATE_NONE ) { - if ( curPattern->hasSyntaxOrContentScope() ) { - syntaxState.subsyntaxInfo = curPattern; - auto langIndex = state.langStack[i]; - syntaxState.currentSyntax = - langIndex != 0 - ? &SyntaxDefinitionManager::instance()->getByLanguageIndex( langIndex ) - : &SyntaxDefinitionManager::instance()->getByLanguageName( - syntaxState.subsyntaxInfo->syntax ); - if ( curPattern->hasContentScope() ) { - syntaxState.currentPatternIdx = state.state[i]; - syntaxState.currentLevel = i; - } else { - syntaxState.currentPatternIdx = {}; - syntaxState.currentLevel++; - } - } else { + for ( size_t i = 0; i < MAX_SUB_SYNTAXS - 1; ++i ) { + curPattern = syntaxState.currentSyntax->getPatternFromState( state.state[i] ); + if ( curPattern && state.state[i].state != SYNTAX_TOKENIZER_STATE_NONE ) { + if ( curPattern->hasSyntaxOrContentScope() ) { + syntaxState.subsyntaxInfo = curPattern; + auto langIndex = state.langStack[i]; + syntaxState.currentSyntax = + langIndex != 0 + ? &SyntaxDefinitionManager::instance()->getByLanguageIndex( langIndex ) + : &SyntaxDefinitionManager::instance()->getByLanguageName( + syntaxState.subsyntaxInfo->syntax ); + if ( curPattern->hasContentScope() ) { syntaxState.currentPatternIdx = state.state[i]; + syntaxState.currentLevel = i; + } else { + syntaxState.currentPatternIdx = {}; + syntaxState.currentLevel++; } } else { - break; + syntaxState.currentPatternIdx = state.state[i]; } + } else { + break; } } return syntaxState; @@ -234,12 +228,14 @@ static inline void popStack( SyntaxStateRestored& curState, SyntaxState& retStat return; } + retState.langStack[curState.currentLevel] = 0; setSubsyntaxPatternIdx( curState, retState, SyntaxStateType{} ); - if ( fromPattern.isSimpleRangedMatch() ) + if ( fromPattern.isSimpleRangedMatch() ) { + curState = SyntaxTokenizer::retrieveSyntaxState( syntax, retState ); return; + } - retState.langStack[curState.currentLevel] = 0; if ( curState.currentLevel > 0 ) curState.currentLevel--;