#![cfg_attr(test, allow(clippy::unwrap_used))]
pub mod analyze;
pub mod cache;
pub mod completion;
mod config;
pub mod edit;
pub mod formatter;
pub mod formatter_defuse;
pub mod graph;
pub mod lang;
pub mod languages;
pub mod pagination;
pub mod parser;
pub mod test_detection;
pub mod traversal;
pub mod types;
#[cfg(feature = "schemars")]
pub mod schema_helpers;
pub(crate) const EXCLUDED_DIRS: &[&str] = &[
"node_modules",
"vendor",
".git",
"__pycache__",
"target",
"dist",
"build",
".venv",
];
pub use analyze::{
AnalysisOutput, AnalyzeError, CallChainEntry, FileAnalysisOutput, FocusedAnalysisConfig,
FocusedAnalysisOutput, analyze_directory, analyze_directory_with_progress, analyze_file,
analyze_focused, analyze_focused_with_progress, analyze_focused_with_progress_with_entries,
analyze_module_file, analyze_str,
};
pub use config::AnalysisConfig;
pub use edit::{EditError, edit_overwrite_content, edit_replace_block};
pub use lang::{language_for_extension, supported_languages};
pub use parser::ParserError;
pub use types::{
AnalysisMode, AnalysisResult, AnalyzeDirectoryParams, AnalyzeFileField, AnalyzeFileParams,
AnalyzeModuleParams, AnalyzeSymbolParams, CallChain, CallEdge, CallInfo, ClassInfo, DefUseKind,
DefUseSite, EditOverwriteOutput, EditOverwriteParams, EditReplaceOutput, EditReplaceParams,
ErrorMeta, ExecCommandParams, FileInfo, FocusedAnalysisData, FunctionInfo, ImplTraitInfo,
ImportInfo, ModuleFunctionInfo, ModuleImportInfo, ModuleInfo, OutputControlParams,
PaginationParams, ReferenceInfo, ReferenceType, STDIN_MAX_BYTES, SemanticAnalysis, ShellOutput,
SymbolMatchMode,
};
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct QueryCapture {
pub capture_name: String,
pub text: String,
pub start_line: usize,
pub end_line: usize,
pub start_byte: usize,
pub end_byte: usize,
}
pub fn execute_query(
language: &str,
source: &str,
query: &str,
) -> Result<Vec<QueryCapture>, parser::ParserError> {
parser::execute_query_impl(language, source, query)
}