ZIm/crates/diagnostics/src/diagnostics.rs
Max Brunsfeld 418a9a3d66 Get things compiling with diagnostics on worktree
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-13 11:15:03 -08:00

47 lines
1.2 KiB
Rust

use editor::{Editor, MultiBuffer};
use gpui::{elements::*, Entity, ModelHandle, RenderContext, View, ViewContext, ViewHandle};
use postage::watch;
use project::Project;
struct ProjectDiagnostics {
editor: ViewHandle<Editor>,
project: ModelHandle<Project>,
}
impl ProjectDiagnostics {
fn new(
project: ModelHandle<Project>,
settings: watch::Receiver<workspace::Settings>,
cx: &mut ViewContext<Self>,
) -> Self {
let mut buffer = cx.add_model(|cx| MultiBuffer::new(project.read(cx).replica_id(cx)));
for diagnostic_summary in project.read(cx).diagnostic_summaries(cx) {
//
}
Self {
editor: cx.add_view(|cx| {
Editor::for_buffer(
buffer.clone(),
editor::settings_builder(buffer.downgrade(), settings),
cx,
)
}),
project,
}
}
}
impl Entity for ProjectDiagnostics {
type Event = ();
}
impl View for ProjectDiagnostics {
fn ui_name() -> &'static str {
"ProjectDiagnostics"
}
fn render(&mut self, _: &mut RenderContext<Self>) -> ElementBox {
ChildView::new(self.editor.id()).boxed()
}
}