use cairo_lang_compiler::db::RootDatabase;
use cairo_lang_compiler::diagnostics::DiagnosticsReporter;
use cairo_lang_compiler::CompilerConfig;
use cairo_lang_filesystem::db::FilesGroup;
use cairo_lang_filesystem::ids::{CrateId, CrateLongId};
use crate::compiler::CompilationUnit;
use crate::core::Workspace;
use crate::ui::TypedMessage;
pub fn build_compiler_config<'c>(unit: &CompilationUnit, ws: &Workspace<'c>) -> CompilerConfig<'c> {
CompilerConfig {
diagnostics_reporter: DiagnosticsReporter::callback({
let config = ws.config();
|diagnostic: String| {
config
.ui()
.print(TypedMessage::naked_text("diagnostic", &diagnostic));
}
}),
replace_ids: unit.compiler_config.sierra_replace_ids,
..CompilerConfig::default()
}
}
pub fn collect_main_crate_ids(unit: &CompilationUnit, db: &RootDatabase) -> Vec<CrateId> {
vec![db.intern_crate(CrateLongId(unit.main_component().cairo_package_name()))]
}