Skip to main content

perl_workspace_index/
lib.rs

1//! Workspace indexing and refactoring orchestration for Perl.
2//!
3//! Maintains an in-memory index of all symbols, references, and module
4//! declarations across a Perl workspace. Provides incremental update, a
5//! document store for open files, and coordinates cross-file operations
6//! such as workspace-wide rename and symbol search.
7
8#![deny(unsafe_code)]
9#![deny(unreachable_pub)]
10#![cfg_attr(test, allow(clippy::panic, clippy::unwrap_used, clippy::expect_used))]
11#![warn(rust_2018_idioms)]
12#![warn(missing_docs)]
13#![warn(clippy::all)]
14#![allow(
15    clippy::too_many_lines,
16    clippy::module_name_repetitions,
17    clippy::cast_possible_truncation,
18    clippy::cast_sign_loss,
19    clippy::cast_precision_loss,
20    clippy::cast_possible_wrap,
21    clippy::must_use_candidate,
22    clippy::missing_errors_doc,
23    clippy::missing_panics_doc,
24    clippy::wildcard_imports,
25    clippy::enum_glob_use,
26    clippy::match_same_arms,
27    clippy::if_not_else,
28    clippy::struct_excessive_bools,
29    clippy::items_after_statements,
30    clippy::return_self_not_must_use,
31    clippy::unused_self,
32    clippy::collapsible_match,
33    clippy::collapsible_if,
34    clippy::only_used_in_recursion,
35    clippy::items_after_test_module,
36    clippy::while_let_loop,
37    clippy::single_range_in_vec_init,
38    clippy::arc_with_non_send_sync,
39    clippy::needless_range_loop,
40    clippy::result_large_err,
41    clippy::if_same_then_else,
42    clippy::should_implement_trait,
43    clippy::manual_flatten,
44    clippy::needless_raw_string_hashes,
45    clippy::single_char_pattern,
46    clippy::uninlined_format_args
47)]
48
49pub use perl_parser_core::line_index;
50pub use perl_parser_core::{Node, NodeKind, SourceLocation};
51pub use perl_parser_core::{Parser, ast, position};
52
53/// Workspace indexing and refactoring orchestration.
54pub mod workspace;
55
56/// Workspace document storage and cache management.
57pub use workspace::document_store;
58/// Workspace-wide symbol index and lookup utilities.
59pub use workspace::workspace_index;
60/// Workspace rename operations for cross-file symbol changes.
61pub use workspace::workspace_rename;
62
63#[cfg(test)]
64mod workspace_index_utf16_test;