diff --git a/crates/language/Cargo.toml b/crates/language/Cargo.toml index b5524913bcc7092b72e6dbf2d55b7393d1bea889..bbbf9e31a5b39069e93a5f52f18df16bbc9f9671 100644 --- a/crates/language/Cargo.toml +++ b/crates/language/Cargo.toml @@ -67,6 +67,7 @@ tree-sitter.workspace = true unicase = "2.6" util.workspace = true watch.workspace = true +zlog.workspace = true diffy = "0.4.2" [dev-dependencies] diff --git a/crates/language/src/language.rs b/crates/language/src/language.rs index fb523aeb9e84e49f4d4c9afb0583eacc1e844030..2d1a274381224978246db618301606caf44a60cb 100644 --- a/crates/language/src/language.rs +++ b/crates/language/src/language.rs @@ -2589,7 +2589,12 @@ 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:?}"); + // We debug instead of warn so that this is not logged by default unless explicitly requested. + // Using warn would write to the log file, and since we receive an enormous amount of + // range_from_lsp calls (especially during completions), that can hang the main thread. + // + // See issue #36223. + zlog::debug!("range_from_lsp called with inverted range {start:?}-{end:?}"); mem::swap(&mut start, &mut end); } start..end