pub mod common;
mod cpp;
mod csharp;
mod go_lang;
mod java;
mod js;
mod python;
mod ruby;
mod rust_lang;
pub use common::{IndentStyle, StyleAnalysis, StyleGuideScore, StyleSignal};
use crate::Language;
pub fn analyze_style(language: Language, text: &str) -> Option<StyleAnalysis> {
match language {
Language::C | Language::Cpp | Language::ObjectiveC => Some(cpp::analyze(text)),
Language::Python => Some(python::analyze(text)),
Language::JavaScript | Language::TypeScript => Some(js::analyze(language, text)),
Language::Java | Language::Kotlin | Language::Groovy | Language::Scala => {
Some(java::analyze(language, text))
}
Language::CSharp | Language::FSharp => Some(csharp::analyze(language, text)),
Language::Go => Some(go_lang::analyze(text)),
Language::Rust => Some(rust_lang::analyze(text)),
Language::Ruby => Some(ruby::analyze(text)),
_ => None,
}
}