Skip to main content

Mountain/Command/
LanguageFeature.rs

1
2//! # LanguageFeature (Tauri command surface)
3//!
4//! Bridges Monaco-Editor language requests from Sky into the Mountain
5//! `LanguageFeatureProvider` registry. Six wire-bound commands, each in
6//! its own file (file name = Tauri command identifier per the
7//! Naming-Convention exception):
8//!
9//! - `MountainProvideHover::MountainProvideHover`
10//! - `MountainProvideCodeActions::MountainProvideCodeActions`
11//! - `MountainProvideDocumentHighlights::MountainProvideDocumentHighlights`
12//! - `MountainProvideCompletions::MountainProvideCompletions`
13//! - `MountainProvideDefinition::MountainProvideDefinition`
14//! - `MountainProvideReferences::MountainProvideReferences`
15//!
16//! Each command is a thin shell that validates input and delegates to
17//! the matching `provide_*_impl` in the sibling `Hover` / `CodeActions`
18//! / … modules. Implementation files are `pub(crate)` because callers
19//! outside this directory should go through the wire-bound shells.
20//!
21//! Errors propagate as `Result<Value, String>` with the string sent
22//! straight to the frontend; provider errors (`CommonError`) are
23//! stringified at the boundary.
24//!
25//! VS Code reference: `vs/workbench/api/common/extHostLanguageFeatures.ts`,
26//! `vs/workbench/services/languageFeatures/common/languageFeaturesService.ts`.
27//!
28//! ## Planned Work
29//!
30//! - Document symbols, formatting, rename, signature help
31//! - Semantic tokens, code lens, inlay hints
32//! - Linked editing range, call/type hierarchy
33//! - Document color, folding/selection range
34//! - Request dedupe and cancellation tokens for long-running ops
35
36pub mod MountainProvideCodeActions;
37
38pub mod MountainProvideCompletions;
39
40pub mod MountainProvideDefinition;
41
42pub mod MountainProvideDocumentHighlights;
43
44pub mod MountainProvideHover;
45
46pub mod MountainProvideReferences;
47
48pub(crate) mod CodeActions;
49
50pub(crate) mod Completions;
51
52pub(crate) mod Definition;
53
54pub(crate) mod Highlights;
55
56pub(crate) mod Hover;
57
58pub(crate) mod References;
59
60pub(crate) mod InvokeProvider;
61
62pub(crate) mod Validation;