LanguageClient: Fix semantic token highlight

Ignore unknown modifiers when building up and accessing the text char
format hash.

Change-Id: I7e11e3fb6f4240083045368daec54e417416efa9
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
David Schulz
2021-06-10 08:43:24 +02:00
parent d729835c24
commit 2d31ae0480
2 changed files with 8 additions and 3 deletions

View File

@@ -80,8 +80,11 @@ static int convertModifiers(int modifiersData, const QList<int> &tokenModifiers)
{
int result = 0;
for (int i = 0; i < tokenModifiers.size() && modifiersData > 0; ++i) {
if (modifiersData & 0x1)
result |= tokenModifiers[i];
if (modifiersData & 0x1) {
const int modifier = tokenModifiers[i];
if (modifier > 0)
result |= modifier;
}
modifiersData = modifiersData >> 1;
}
return result;

View File

@@ -254,6 +254,8 @@ void addModifiers(int key,
if (tokenModifiers.isEmpty())
return;
int modifier = tokenModifiers.takeLast();
if (modifier < 0)
return;
auto addModifier = [&](TextStyle style) {
if (key & modifier) // already there don't add twice
return;