perl-workspace 0.13.3

Workspace file discovery, indexing, and observability for Perl
Documentation
//! Workspace indexing and refactoring orchestration for Perl.
//!
//! Maintains an in-memory index of all symbols, references, and module
//! declarations across a Perl workspace. Provides incremental update, a
//! document store for open files, and coordinates cross-file operations
//! such as workspace-wide rename and symbol search.
//!
//! # Module guide
//!
//! - [`api`] — curated, conflict-free re-exports for workspace bootstrap flows.
//! - [`discovery`] / [`folder`] / [`ignore`] — workspace root/file discovery helpers.
//! - [`monitoring`], [`slo`], [`state_machine`] — lifecycle policy + observability.
//! - [`workspace`] — indexing engine, caches, coordinator, and rename support.

#![deny(unsafe_code)]
#![deny(unreachable_pub)]
#![cfg_attr(test, allow(clippy::panic, clippy::unwrap_used, clippy::expect_used))]
#![warn(rust_2018_idioms)]
#![warn(missing_docs)]
#![warn(clippy::all)]
#![allow(
    clippy::too_many_lines,
    clippy::module_name_repetitions,
    clippy::cast_possible_truncation,
    clippy::cast_sign_loss,
    clippy::cast_precision_loss,
    clippy::cast_possible_wrap,
    clippy::must_use_candidate,
    clippy::missing_errors_doc,
    clippy::missing_panics_doc,
    clippy::wildcard_imports,
    clippy::enum_glob_use,
    clippy::match_same_arms,
    clippy::if_not_else,
    clippy::struct_excessive_bools,
    clippy::items_after_statements,
    clippy::return_self_not_must_use,
    clippy::unused_self,
    clippy::collapsible_match,
    clippy::collapsible_if,
    clippy::only_used_in_recursion,
    clippy::items_after_test_module,
    clippy::while_let_loop,
    clippy::single_range_in_vec_init,
    clippy::arc_with_non_send_sync,
    clippy::needless_range_loop,
    clippy::result_large_err,
    clippy::if_same_then_else,
    clippy::should_implement_trait,
    clippy::manual_flatten,
    clippy::needless_raw_string_hashes,
    clippy::single_char_pattern,
    clippy::uninlined_format_args
)]

pub use perl_parser_core::line_index;
pub use perl_parser_core::{Node, NodeKind, SourceLocation};
pub use perl_parser_core::{Parser, ast, position};

/// Unified public API surface.
pub mod api;
/// Git-aware workspace file discovery.
pub mod discovery;
/// Workspace folder URI/path parsing.
pub mod folder;
/// Workspace noise filtering rules.
pub mod ignore;
/// Monitoring, limits, and lifecycle instrumentation primitives.
pub mod monitoring;
/// Semantic shadow-compare receipt model for old-vs-new workspace query outputs.
pub mod semantic_shadow_compare;
/// Service-level objective tracking for workspace index operations.
pub mod slo;

/// Index lifecycle state machine.
pub mod state_machine;

/// Canonical semantic substrate: fact population, indexes, and query facade.
pub mod semantic;

/// Workspace indexing and refactoring orchestration.
pub mod workspace;

/// Workspace document storage and cache management.
pub use workspace::document_store;
/// Workspace-wide symbol index and lookup utilities.
pub use workspace::workspace_index;
/// Workspace rename operations for cross-file symbol changes.
pub use workspace::workspace_rename;

#[cfg(test)]
mod workspace_index_utf16_test;