use praxis_lsp::Revision;
use praxis_lsp::query::Snapshot;
use crate::color_mode::ColorMode;
use crate::{diagnostic_render, exit_code, source_file};
pub fn run(file: &str, color: ColorMode) -> anyhow::Result<i32> {
let text = match source_file::read(file) {
Ok(t) => t,
Err(code) => return Ok(code),
};
let snapshot = Snapshot::new(file, text, Revision(0));
let diagnostics = snapshot.diagnostics();
let rendered =
diagnostic_render::render_all(snapshot.source_map(), &diagnostics, color.palette());
diagnostic_render::write_to(&mut std::io::stderr(), &rendered)?;
Ok(if rendered.has_errors() {
exit_code::FAILED
} else {
exit_code::OK
})
}