CodeMirror provides comprehensive support for bidirectional text rendering with proper Unicode handling.
interface BidiSpan {
from: number;
to: number;
level: number;
dir: Direction;
}
enum Direction {
LTR = 0,
RTL = 1
}class EditorView {
textDirection: Direction;
textDirectionAt(pos: number): Direction;
}// Check overall text direction
if (view.textDirection === Direction.RTL) {
console.log("Editor is in RTL mode");
}
// Check direction at specific position
const pos = view.state.selection.main.head;
const direction = view.textDirectionAt(pos);
console.log(`Text at position ${pos} is ${direction === Direction.RTL ? 'RTL' : 'LTR'}`);