@@ -283,10 +283,26 @@ impl EditorView {
283283
284284 let style: Style = theme.get("ui.linenr");
285285 let warning: Style = theme.get("warning");
286+ let error: Style = theme.get("error");
287+ let info: Style = theme.get("info");
288+ let hint: Style = theme.get("hint");
289+
286290 let last_line = view.last_line();
287291 for (i, line) in (view.first_line..last_line).enumerate() {
288− if view.doc.diagnostics.iter().any(|d| d.line == line) {
289− surface.set_stringn(viewport.x - OFFSET, viewport.y + i as u16, "●", 1, warning);
292+ use helix_core::diagnostic::Severity;
293+ if let Some(diagnostic) = view.doc.diagnostics.iter().find(|d| d.line == line) {
294+ surface.set_stringn(
295+ viewport.x - OFFSET,
296+ viewport.y + i as u16,
297+ "●",
298+ 1,
299+ match diagnostic.severity {
300+ Some(Severity::Error) => error,
301+ Some(Severity::Warning) | None => warning,
302+ Some(Severity::Info) => info,
303+ Some(Severity::Hint) => hint,
304+ },
305+ );
290306 }
291307
292308 surface.set_stringn(