about summary refs log tree commit diff
path: root/fnl/nvrc/ui/modules/diagnostics.fnl
blob: 9cf6a023f0fa9cf4a5e08a4456a5a57d658a67d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
           (.. " %#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}