1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//! Register access for yank/paste operations.
//!
//! This module provides the [`RegisterApi`] trait for register manipulation.
//! Commands use this to access and modify register contents.
//!
//! # Design
//!
//! Following Unix philosophy: this trait does ONE thing well - register access.
//!
//! # Example
//!
//! ```ignore
//! use reovim_driver_session::api::RegisterApi;
//!
//! fn paste_from_register<S: RegisterApi>(session: &S, register: Option<char>) {
//! if let Some(content) = session.get_register(register) {
//! // Use content.text and content.yank_type for paste
//! }
//! }
//! ```
// Re-export kernel types for ergonomics
pub use ;
/// Register access for yank/paste operations.
///
/// Provides access to vim-style registers for commands that need to
/// read or write yanked text.
///
/// # Register Names
///
/// - `None` - Unnamed register (default for yank/delete)
/// - `Some('a')` to `Some('z')` - Named registers
/// - `Some('A')` to `Some('Z')` - Append to named registers
/// - `Some('0')` to `Some('9')` - Numbered registers (yank history)
/// - `Some('+')` and `Some('*')` - System clipboard (driver-level)