pub trait RopeExt {
// Required methods
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>;
}