Skip to main content

perl_refactoring/
lib.rs

1//! Refactoring and modernization helpers for Perl.
2//!
3//! Provides AST-driven refactoring operations including import optimization,
4//! code modernization, and workspace-wide symbol rename. These are consumed by
5//! the LSP code-action and rename providers to offer automated transformations.
6
7#![deny(unsafe_code)]
8#![deny(unreachable_pub)]
9#![warn(rust_2018_idioms)]
10#![warn(missing_docs)]
11#![warn(clippy::all)]
12#![allow(
13    clippy::too_many_lines,
14    clippy::module_name_repetitions,
15    clippy::cast_possible_truncation,
16    clippy::cast_sign_loss,
17    clippy::cast_precision_loss,
18    clippy::cast_possible_wrap,
19    clippy::must_use_candidate,
20    clippy::missing_errors_doc,
21    clippy::missing_panics_doc,
22    clippy::wildcard_imports,
23    clippy::enum_glob_use,
24    clippy::match_same_arms,
25    clippy::if_not_else,
26    clippy::struct_excessive_bools,
27    clippy::items_after_statements,
28    clippy::return_self_not_must_use,
29    clippy::unused_self,
30    clippy::collapsible_match,
31    clippy::collapsible_if,
32    clippy::only_used_in_recursion,
33    clippy::items_after_test_module,
34    clippy::while_let_loop,
35    clippy::single_range_in_vec_init,
36    clippy::arc_with_non_send_sync,
37    clippy::needless_range_loop,
38    clippy::result_large_err,
39    clippy::if_same_then_else,
40    clippy::should_implement_trait,
41    clippy::manual_flatten,
42    clippy::needless_raw_string_hashes,
43    clippy::single_char_pattern,
44    clippy::uninlined_format_args
45)]
46
47pub use perl_parser_core::{Node, NodeKind, SourceLocation};
48pub use perl_parser_core::{ParseError, ParseResult, error};
49pub use perl_parser_core::{Parser, ast, position};
50pub use perl_workspace_index::{document_store, workspace_index};
51
52/// Refactoring and modernization helpers.
53pub mod refactor;
54
55pub use refactor::import_optimizer;
56/// Subroutine inlining refactoring operation.
57pub use refactor::inline;
58/// Code modernization utilities for Perl best practices.
59pub use refactor::modernize;
60/// Enhanced code modernization with refactoring capabilities.
61pub use refactor::modernize_refactored;
62pub use refactor::refactoring;
63#[cfg(not(target_arch = "wasm32"))]
64pub use refactor::workspace_refactor;
65#[cfg(not(target_arch = "wasm32"))]
66/// Workspace-wide symbol rename operations.
67pub use refactor::workspace_rename;