use std::fmt;
use tree_sitter::Range;
#[derive(Debug)]
pub struct Chunk {
pub subtree: String,
pub range: Range,
pub size: usize,
}
impl fmt::Display for Chunk {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"[{start}..{end}]: {size}\n{substree}",
start = self.range.start_point.row,
end = self.range.end_point.row,
size = self.size,
substree = self.subtree,
)
}
}
impl Chunk {
pub fn utf8_lossy(&self, code: &[u8]) -> String {
String::from_utf8_lossy(&code[self.range.start_byte..self.range.end_byte]).to_string()
}
}