Skip to main content

lsp_max_protocol/
lib.rs

1//! Protocol vocabulary and conformance types for tower-lsp-max.
2//!
3//! Re-exports the generated LSP 3.18 meta-model (`lsp_3_18`), defines `LawAxis`
4//! for typed law identifiers, and houses `ConformanceVector` and capability
5//! negotiation helpers consumed by the runtime and CLI crates.
6
7pub mod lsp_3_18;
8pub use lsp_3_18 as generated_3_18;
9
10pub mod conformance;
11pub mod core;
12pub mod custom_methods;
13pub mod diagnostics;
14pub mod hooks;
15pub mod policy;
16
17// Re-export all types so they are visible at the crate root level exactly as before.
18
19pub use conformance::{ConformanceGrade, ConformanceVector, LawAxis};
20
21pub use diagnostics::{
22    DocRoute, MaxCodeAction, MaxDiagnostic, Precondition, ReceiptPlan, RepairAction, Repairability,
23    RollbackPlan, SnapshotId, Terminality, TransitionAttempt, ValidationPlan,
24};
25
26pub use hooks::{
27    AdmissionDecision, AdmissionResult, AutonomicLoopStatus, ChainDescriptor, HookDescriptor,
28    HookEvent, HookGraphNode, LawfulTransitionResult, ManifoldSnapshot, PropagationResult,
29    RefusalResult, ReleaseActuationResult, ReplayResult,
30};
31
32pub use custom_methods::{
33    METHOD_ADMISSION, METHOD_AUTONOMIC_LOOP, METHOD_CHAIN, METHOD_HOOK, METHOD_HOOK_GRAPH,
34    METHOD_LAWFUL_TRANSITION, METHOD_LSIF_EXPORT, METHOD_MANIFOLD_SNAPSHOT, METHOD_PROPAGATE,
35    METHOD_REFUSAL, METHOD_RELEASE_ACTUATION, METHOD_REPLAY,
36};
37
38pub use policy::PolicyState;
39
40pub use core::{
41    AnalysisBundle, CapabilityGap, GateId, InstanceId, LspStateModel, MaxCapabilityVector, Receipt,
42    ReceiptObligation,
43};
44
45impl lsp_types_max::request::Request for lsp_3_18::FoldingRangeRefreshRequest {
46    type Params = ();
47    type Result = ();
48    const METHOD: &'static str = "workspace/foldingRange/refresh";
49}
50
51impl lsp_types_max::request::Request for lsp_3_18::TextDocumentContentRefreshRequest {
52    type Params = lsp_3_18::TextDocumentContentRefreshParams;
53    type Result = ();
54    const METHOD: &'static str = "workspace/textDocumentContent/refresh";
55}