diff options
Diffstat (limited to 'fnl/nvrc/ui/modules/diagnostics.fnl')
-rw-r--r-- | fnl/nvrc/ui/modules/diagnostics.fnl | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/fnl/nvrc/ui/modules/diagnostics.fnl b/fnl/nvrc/ui/modules/diagnostics.fnl new file mode 100644 index 0000000..a1e2530 --- /dev/null +++ b/fnl/nvrc/ui/modules/diagnostics.fnl @@ -0,0 +1,21 @@ +(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 + (.. " %#DiagnosticSignWarning#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} |