Skip to main content

Mountain/Command/
LanguageFeature.rs

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