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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//! Stable kernel API.
//!
//! Linux equivalent: `include/linux/`
//!
//! This module defines the stable interface that drivers and modules depend on.
//! All public APIs are accessed exclusively via the `v1` module.
//!
//! # Module Structure
//!
//! - `v1`: Stable API v1 - the primary public interface
//! - `unstable`: Experimental APIs (feature-gated)
//! - `internal`: Internal kernel APIs (doc hidden)
//!
//! # Usage
//!
//! ```ignore
//! use reovim_kernel::api::v1::*;
//!
//! // Check API compatibility
//! check_api_version(Version::new(1, 0, 0))?;
//!
//! // Use kernel types
//! let bus = EventBus::new();
//! pr_info!("kernel initialized");
//! ```
// ============================================================================
// Internal modules (not directly exposed)
// ============================================================================
// Buffer manager trait (mechanism) - used by KernelContext
// Note: pub(crate) to allow core/mode.rs to access ModuleId
pub
// Service registry for cross-module service discovery
// Note: The following modules have been removed as part of the kernel-driver
// architecture cleanup (Issue #213):
// - traits.rs - Operator, KeymapProvider, CommandHandler moved to drivers
// - syntax.rs - SyntaxHighlight moved to lib/drivers/syntax/
// - undo_manager.rs - UndoManager trait moved to runner
// - window_manager.rs - WindowId moved to mm/, WindowManager to runner
// ============================================================================
// Public modules
// ============================================================================
/// Stable API v1.
///
/// This is the primary public interface. All stable kernel APIs are accessed
/// through this module.
/// Experimental APIs (feature-gated).
///
/// APIs in this module may change without notice. Enable the `unstable-api`
/// feature to use them.
/// Internal kernel APIs.
///
/// These APIs are for kernel-internal use only and are hidden from documentation.
// ============================================================================
// Re-exports
// ============================================================================
/// Re-export v1 at api level for convenience.
///
/// This allows both `use reovim_kernel::api::v1::*` and
/// `use reovim_kernel::api::*` to work.
pub use *;