Skip to main content

perl_diagnostics/
lib.rs

1#![deny(unsafe_code)]
2#![warn(rust_2018_idioms)]
3#![warn(missing_docs)]
4#![warn(clippy::all)]
5
6//! Unified diagnostic codes, types, and catalog for Perl LSP.
7//!
8//! This crate consolidates three previously separate diagnostic crates:
9//! - `perl-diagnostics-codes` — stable diagnostic codes, severity, and tags (now `codes` module)
10//! - `perl-lsp-diagnostic-types` — diagnostic model types (Diagnostic, RelatedInformation) (now `types` module)
11//! - `perl-lsp-diagnostic-catalog` — LSP metadata builders for codes (now `catalog` module)
12//!
13//! # Modules
14//!
15//! - [`codes`] — canonical `DiagnosticCode`, `DiagnosticCategory`, `DiagnosticSeverity`, `DiagnosticTag`
16//! - [`types`] — `Diagnostic` and `RelatedInformation` structs; `DiagnosticSeverity` and `DiagnosticTag` are re-exported from [`codes`]
17//! - [`catalog`] — LSP metadata catalog functions
18//!
19//! # Type unification
20//!
21//! `DiagnosticSeverity` and `DiagnosticTag` are single canonical types defined in [`codes`].
22//! The [`types`] module re-exports them so the legacy `types::DiagnosticSeverity` import
23//! path still resolves to the same underlying type.
24//!
25//! # Re-exports
26//!
27//! The crate root re-exports all public items via [`api`].
28
29/// Diagnostic metadata catalog and LSP-facing helpers.
30pub mod catalog;
31/// Canonical diagnostic codes, categories, severities, and tags.
32pub mod codes;
33/// Diagnostic payload data structures and related information types.
34pub mod types;
35
36mod api;
37pub use api::*;