Skip to main content

oxicode_textarea/
lib.rs

1#![allow(clippy::new_without_default)]
2
3pub mod editor;
4pub mod render;
5pub mod textarea;
6pub mod wrapping;
7
8pub use editor::{
9    ApplyEditPlanError, EditBuffer, EditCommand, EditDelta, EditOutcome, EditPlan,
10    PostEditCursorAffinity, SingleLineViewport, WordStyle, classify_key_event,
11};
12pub use textarea::{
13    ClipboardProvider, ElementId, ElementKind, InternalClipboard, MouseAction, TextArea,
14    TextAreaState, TextElement, TextElementEvent, TextElementEventKind, is_undo_input,
15};
16
17use crossterm::event::KeyModifiers;
18
19// On Windows, AltGr arrives as Ctrl+Alt; on other platforms it's composed before reaching us.
20#[cfg(target_os = "windows")]
21#[inline]
22pub fn is_altgr(modifiers: KeyModifiers) -> bool {
23    let without_shift = modifiers & !KeyModifiers::SHIFT;
24    without_shift == (KeyModifiers::CONTROL | KeyModifiers::ALT)
25}
26
27#[cfg(not(target_os = "windows"))]
28#[inline]
29pub fn is_altgr(_modifiers: KeyModifiers) -> bool {
30    false
31}