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//! TODO: document symbols, formatting, rename, signature help, semantic
30//! tokens, code lens, inlay hints, linked editing range, call/type
31//! hierarchy, document color, folding/selection range, request dedupe
32//! and cancellation tokens for long-running ops.
33
34pub mod MountainProvideCodeActions;
35pub mod MountainProvideCompletions;
36pub mod MountainProvideDefinition;
37pub mod MountainProvideDocumentHighlights;
38pub mod MountainProvideHover;
39pub mod MountainProvideReferences;
40
41pub(crate) mod CodeActions;
42pub(crate) mod Completions;
43pub(crate) mod Definition;
44pub(crate) mod Highlights;
45pub(crate) mod Hover;
46pub(crate) mod References;
47
48pub(crate) mod InvokeProvider;
49pub(crate) mod Validation;