Skip to main content

mago_analyzer/plugin/libraries/psl/
mod.rs

1//! PSL (PHP Standard Library) providers.
2
3pub mod regex;
4pub mod str;
5pub mod type_;
6
7use crate::plugin::Plugin;
8use crate::plugin::PluginMeta;
9use crate::plugin::PluginRegistry;
10
11/// Plugin providing type inference for azjezz/psl package.
12pub struct PslPlugin;
13
14static META: PluginMeta = PluginMeta::new(
15    "psl",
16    "PSL (PHP Standard Library)",
17    "Type providers for azjezz/psl package",
18    &["php-standard-library", "azjezz-psl"],
19    false,
20);
21
22impl Plugin for PslPlugin {
23    fn meta(&self) -> &'static PluginMeta {
24        &META
25    }
26
27    fn register(&self, registry: &mut PluginRegistry) {
28        registry.register_function_provider(type_::ShapeProvider);
29        registry.register_function_provider(type_::OptionalProvider);
30        registry.register_function_provider(str::StrProvider);
31        registry.register_function_provider(regex::CaptureGroupsProvider);
32    }
33}