in crates/llm-ls/src/document.rs [240:254]
fn compute_char_idx(
position_encoding: PositionEncodingKind,
position: &Position,
slice: &RopeSlice,
) -> Result<usize> {
Ok(match position_encoding {
PositionEncodingKind::Utf8 => {
slice.try_byte_to_char(position.character as usize)?
}
PositionEncodingKind::Utf16 => {
slice.try_utf16_cu_to_char(position.character as usize)?
}
PositionEncodingKind::Utf32 => position.character as usize,
})
}