mirror of
https://github.com/MaskRay/ccls.git
synced 2024-11-25 09:05:10 +00:00
Improve semantic highlight in templates
This commit is contained in:
parent
09669fff76
commit
02a6f39559
@ -79,15 +79,19 @@ struct ScanLineEvent {
|
||||
Position end_pos; // Second key when there is a tie for insertion events.
|
||||
int id;
|
||||
CclsSemanticHighlightSymbol *symbol;
|
||||
bool operator<(const ScanLineEvent &other) const {
|
||||
bool operator<(const ScanLineEvent &o) const {
|
||||
// See the comments below when insertion/deletion events are inserted.
|
||||
if (!(pos == other.pos))
|
||||
return pos < other.pos;
|
||||
if (!(other.end_pos == end_pos))
|
||||
return other.end_pos < end_pos;
|
||||
if (!(pos == o.pos))
|
||||
return pos < o.pos;
|
||||
if (!(o.end_pos == end_pos))
|
||||
return o.end_pos < end_pos;
|
||||
// This comparison essentially order Macro after non-Macro,
|
||||
// So that macros will not be rendered as Var/Type/...
|
||||
return symbol->kind < other.symbol->kind;
|
||||
if (symbol->kind != o.symbol->kind)
|
||||
return symbol->kind < o.symbol->kind;
|
||||
// If symbol A and B occupy the same place, we want one to be placed
|
||||
// before the other consistantly.
|
||||
return symbol->id < o.symbol->id;
|
||||
}
|
||||
};
|
||||
} // namespace
|
||||
|
Loading…
Reference in New Issue
Block a user