scrive_core/intel.rs
1//! Language services — completion, signature help, hover.
2//!
3//! In-process, no LSP. Each service is **one small trait defined here in the
4//! core and satisfied by the app** — not a god-trait with no-op defaults; a
5//! service ruled out of scope is simply not built. The plain data the traits
6//! exchange lives here too, so a provider never reaches an editor internal.
7//! Completion is **synchronous by contract** (the classifier is a regex
8//! ladder over a few dozen lines — microseconds), so the widget calls the
9//! provider in `update()` and opens the popup from the returned `Vec` the same
10//! frame; no async reply, no revision guard.
11//!
12//! The controller state machines (completion / snippet session) that consume
13//! these providers are core view-state and land in the submodules below.
14
15pub mod completion;
16pub mod hover;
17pub mod providers;
18pub mod signature;
19pub mod snippet;