mago_analyzer/plugin/hook/mod.rs
1//! Hook traits for the analyzer plugin system.
2//!
3//! Hooks allow plugins to intercept and modify the analysis process at various points:
4//!
5//! - [`ProgramHook`]: Program-level events (before/after program analysis)
6//! - [`StatementHook`]: Statement analysis (before/after each statement)
7//! - [`ExpressionHook`]: Expression analysis (before/after each expression)
8//! - [`FunctionCallHook`]: Function call analysis
9//! - [`MethodCallHook`]: Method call analysis
10//! - [`StaticMethodCallHook`]: Static method call analysis
11//! - [`NullSafeMethodCallHook`]: Nullsafe method call analysis
12//! - [`ClassDeclarationHook`]: Class declaration analysis
13//! - [`InterfaceDeclarationHook`]: Interface declaration analysis
14//! - [`TraitDeclarationHook`]: Trait declaration analysis
15//! - [`EnumDeclarationHook`]: Enum declaration analysis
16//! - [`FunctionDeclarationHook`]: Function declaration analysis
17//! - [`IssueFilterHook`]: Filter issues at the end of analysis
18//!
19//! All hooks receive real AST references and a [`HookContext`](crate::plugin::context::HookContext)
20//! that provides mutable access to the analysis state.
21
22mod action;
23mod call;
24mod declaration;
25mod expression;
26mod filter;
27mod program;
28mod statement;
29
30pub use action::*;
31pub use call::*;
32pub use declaration::*;
33pub use expression::*;
34pub use filter::*;
35pub use program::*;
36pub use statement::*;