diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-04-17 21:52:46 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-04-17 21:52:46 +0100 |
commit | 746b2e003e695753efb71981548e99a95661f13f (patch) | |
tree | ee8cc13d15c16fdaa60c9a1156456b4bc62d7dda /crates/ra_ide/src/syntax_highlighting.rs | |
parent | 8a4cebafca257f6d3294744d0e9e3d461c954645 (diff) | |
parent | 2e2c03ee2d7ef20fd6e20151507d26a4407c835e (diff) |
Merge #4022
4022: Fix incorrect order of syntax highlight ranges r=ltentrup a=ltentrup
A fix for the bug #4013 which is caused by a difference between tree traversal order and text representation order. In the case of #4013, the attributes of a macro were visited after the macro definition which caused the syntax highlight ranges to be in wrong order. The fix is to sort the ranges before returning.
Co-authored-by: Leander Tentrup <[email protected]>
Diffstat (limited to 'crates/ra_ide/src/syntax_highlighting.rs')
-rw-r--r-- | crates/ra_ide/src/syntax_highlighting.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index 83d161f45..7b15b82bd 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs | |||
@@ -174,7 +174,8 @@ pub(crate) fn highlight( | |||
174 | } | 174 | } |
175 | 175 | ||
176 | assert_eq!(res.len(), 1, "after DFS traversal, the stack should only contain a single element"); | 176 | assert_eq!(res.len(), 1, "after DFS traversal, the stack should only contain a single element"); |
177 | let res = res.pop().unwrap(); | 177 | let mut res = res.pop().unwrap(); |
178 | res.sort_by_key(|range| range.range.start()); | ||
178 | // Check that ranges are sorted and disjoint | 179 | // Check that ranges are sorted and disjoint |
179 | assert!(res | 180 | assert!(res |
180 | .iter() | 181 | .iter() |