mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 13:59:52 +08:00
PegMarkdownHighlighter: recognize code block among new blocks
This commit is contained in:
parent
c2bb490378
commit
1fe975b1ad
@ -115,9 +115,21 @@ void PegMarkdownHighlighter::highlightBlock(const QString &p_text)
|
|||||||
int blockNum = block.blockNumber();
|
int blockNum = block.blockNumber();
|
||||||
|
|
||||||
bool isCodeBlock = currentBlockState() == HighlightBlockState::CodeBlock;
|
bool isCodeBlock = currentBlockState() == HighlightBlockState::CodeBlock;
|
||||||
|
bool isNewBlock = block.userData() == NULL;
|
||||||
VTextBlockData *blockData = VTextBlockData::blockData(block);
|
VTextBlockData *blockData = VTextBlockData::blockData(block);
|
||||||
QVector<HLUnit> *cache = &blockData->getBlockHighlightCache();
|
QVector<HLUnit> *cache = &blockData->getBlockHighlightCache();
|
||||||
|
|
||||||
|
// Fast parse can not cross multiple empty lines in code block, which
|
||||||
|
// cause the wrong parse results.
|
||||||
|
if (isNewBlock) {
|
||||||
|
int pstate = previousBlockState();
|
||||||
|
if (pstate == HighlightBlockState::CodeBlock
|
||||||
|
|| pstate == HighlightBlockState::CodeBlockStart) {
|
||||||
|
setCurrentBlockState(HighlightBlockState::CodeBlock);
|
||||||
|
isCodeBlock = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool cacheValid = true;
|
bool cacheValid = true;
|
||||||
if (result->matched(m_timeStamp)) {
|
if (result->matched(m_timeStamp)) {
|
||||||
if (preHighlightSingleFormatBlock(result->m_blocksHighlights,
|
if (preHighlightSingleFormatBlock(result->m_blocksHighlights,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user