Clip offsets in inlay hint queries
This commit is contained in:
parent
558367dc8b
commit
336fbb3392
1 changed files with 12 additions and 13 deletions
|
@ -17,6 +17,7 @@ use project::InlayHint;
|
||||||
|
|
||||||
use collections::{hash_map, HashMap, HashSet};
|
use collections::{hash_map, HashMap, HashSet};
|
||||||
use language::language_settings::InlayHintSettings;
|
use language::language_settings::InlayHintSettings;
|
||||||
|
use sum_tree::Bias;
|
||||||
use util::post_inc;
|
use util::post_inc;
|
||||||
|
|
||||||
pub struct InlayHintCache {
|
pub struct InlayHintCache {
|
||||||
|
@ -500,19 +501,17 @@ fn determine_query_range(
|
||||||
|
|
||||||
let buffer = excerpt_buffer.read(cx);
|
let buffer = excerpt_buffer.read(cx);
|
||||||
let excerpt_visible_len = excerpt_visible_range.end - excerpt_visible_range.start;
|
let excerpt_visible_len = excerpt_visible_range.end - excerpt_visible_range.start;
|
||||||
let start = buffer.anchor_before(
|
let start_offset = excerpt_visible_range
|
||||||
excerpt_visible_range
|
.start
|
||||||
.start
|
.saturating_sub(excerpt_visible_len)
|
||||||
.saturating_sub(excerpt_visible_len)
|
.max(full_excerpt_range.start.offset);
|
||||||
.max(full_excerpt_range.start.offset),
|
let start = buffer.anchor_before(buffer.clip_offset(start_offset, Bias::Left));
|
||||||
);
|
let end_offset = excerpt_visible_range
|
||||||
let end = buffer.anchor_after(
|
.end
|
||||||
excerpt_visible_range
|
.saturating_add(excerpt_visible_len)
|
||||||
.end
|
.min(full_excerpt_range.end.offset)
|
||||||
.saturating_add(excerpt_visible_len)
|
.min(buffer.len());
|
||||||
.min(full_excerpt_range.end.offset)
|
let end = buffer.anchor_after(buffer.clip_offset(end_offset, Bias::Right));
|
||||||
.min(buffer.len()),
|
|
||||||
);
|
|
||||||
if start.cmp(&end, buffer).is_eq() {
|
if start.cmp(&end, buffer).is_eq() {
|
||||||
None
|
None
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue