diff --git a/crates/language/src/language.rs b/crates/language/src/language.rs index 9e006f72ad..2eb1532ff3 100644 --- a/crates/language/src/language.rs +++ b/crates/language/src/language.rs @@ -1850,16 +1850,20 @@ pub fn point_from_lsp(point: lsp::Position) -> Unclipped { } pub fn range_to_lsp(range: Range) -> lsp::Range { - lsp::Range { - start: point_to_lsp(range.start), - end: point_to_lsp(range.end), + let mut start = point_to_lsp(range.start); + let mut end = point_to_lsp(range.end); + if start > end { + log::error!("range_to_lsp called with inverted range {start:?}-{end:?}"); + mem::swap(&mut start, &mut end); } + lsp::Range { start, end } } pub fn range_from_lsp(range: lsp::Range) -> Range> { let mut start = point_from_lsp(range.start); let mut end = point_from_lsp(range.end); if start > end { + log::warn!("range_from_lsp called with inverted range {start:?}-{end:?}"); mem::swap(&mut start, &mut end); } start..end