(fn diagnostics [] (let [count {} levels {:errors :Error :warnings :Warn :info :Info :hints :Hint}] (each [k level (pairs levels)] (tset count k (vim.tbl_count (vim.diagnostic.get 0 {:severity level})))) (var errors "") (var warnings "") (var hints "") (var info "") (when (not= (. count :errors) 0) (set errors (.. "%#DiagnosticSignError#E" (. count :errors)))) (when (not= (. count :warnings) 0) (set warnings (.. " %#DiagnosticSignWarn#W" (. count :warnings)))) (when (not= (. count :hints) 0) (set hints (.. " %#DiagnosticSignHint#H" (. count :hints)))) (when (not= (. count :info) 0) (set info (.. " %#DiagnosticSignInformation#I" (. count :info)))) (.. errors warnings hints info "%#StatusLine#"))) {: diagnostics}