pub trait RopeExt {
fn apply_edit(&mut self, edit: &TextEdit<'_>);
fn build_edit<'a>(
&self,
change: &'a TextDocumentContentChangeEvent
) -> Result<TextEdit<'a>>;
fn byte_to_lsp_position(&self, offset: usize) -> Position;
fn chunk_walker(self, byte_idx: usize) -> ChunkWalker;
fn lsp_position_to_core(&self, position: Position) -> Result<TextPosition>;
fn lsp_position_to_utf16_cu(&self, position: Position) -> Result<u32>;
}