line-index method to allow clamping column to line length

Part of #18240
This commit is contained in:
Johannes Altmanninger 2024-10-15 08:33:14 +02:00
parent 0319586ef2
commit d42a4e6c88
3 changed files with 32 additions and 1 deletions

View file

@ -195,3 +195,26 @@ fn test_every_chars() {
}
}
}
#[test]
fn test_line() {
use text_size::TextRange;
macro_rules! validate {
($text:expr, $line:expr, $expected_start:literal .. $expected_end:literal) => {
let line_index = LineIndex::new($text);
assert_eq!(
line_index.line($line),
Some(TextRange::new(
TextSize::from($expected_start),
TextSize::from($expected_end)
))
);
};
}
validate!("", 0, 0..0);
validate!("\n", 1, 1..1);
validate!("\nabc", 1, 1..4);
validate!("\nabc\ndef", 1, 1..5);
}