summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.vim/init.lua42
1 files changed, 29 insertions, 13 deletions
diff --git a/.vim/init.lua b/.vim/init.lua
index 2a0bcf0..545afcd 100644
--- a/.vim/init.lua
+++ b/.vim/init.lua
@@ -114,18 +114,26 @@ require('hardmode')
 -- Configure builtin diagnositics {{{
 vim.diagnostic.config {
   underline        = true,
-  virtual_text     = {
-    severity = {min=vim.diagnostic.severity.WARN},
-    source = true,
-    prefix = '',
-  },
+  virtual_text     = false,
+  -- virtual_text     = {
+  --   severity = {min=vim.diagnostic.severity.WARN},
+  --   source = true,
+  --   prefix = '',
+  -- },
   signs            = true,
-  float            = { pos = 'cursor' },
+  float            = { scope = 'line' },
+  virtual_lines    = { prefix = '⬐  ' },
+
   update_in_insert = false,
   severity_sort    = true,
-
-  virtual_lines    = { prefix = '⬐  ' },
 }
+do
+  local group = vim.api.nvim_create_augroup('DiagnosticOpenFloat', { clear = true })
+  vim.api.nvim_create_autocmd('CursorHold', { callback = function()
+    if not _G.diagnostic_hidden then vim.diagnostic.open_float() end
+  end, group = group })
+end
+
 vim.fn.sign_define({
   {name='DiagnosticSignError', text='✗', texthl='DiagnosticSignError'},
   -- {name='DiagnosticSignWarn',  text='⚡', texthl='DiagnosticSignWarn'},
@@ -133,17 +141,25 @@ vim.fn.sign_define({
   {name='DiagnosticSignInfo',  text='ℹ',  texthl='DiagnosticSignInfo'},
   {name='DiagnosticSignHint',  text='🞶',  texthl='DiagnosticSignHint'}
 })
+vim.keymap.set('n',  ']d', vim.diagnostic.goto_next)
+vim.keymap.set('n',  '[d', vim.diagnostic.goto_prev)
+vim.keymap.set('n', '<leader>d', vim.diagnostic.open_float)
+vim.keymap.set('n', '<leader>D', function()
+    if not _G.diagnostic_hidden then
+      vim.diagnostic.hide()
+    else
+      vim.diagnostic.show()
+    end
+    _G.diagnostic_hidden = not _G.diagnostic_hidden
+  end)
 -- }}}
 
 -- KEY BINDS -- {{{
 vim.keymap.set('n',     'Q', [[ :quitall<cr> ]], {silent = true})
 vim.keymap.set('n',    'gb', [[ :bnext<cr> ]], {silent = true})
 vim.keymap.set('n',    'gB', [[ :bprevious<cr> ]], {silent = true})
-vim.keymap.set('n', '<tab>', [[ :exe 'normal za' | IndentBlanklineRefresh<cr> ]], {silent = true})
-
-vim.keymap.set('n',  ']d', vim.diagnostic.goto_next)
-vim.keymap.set('n',  '[d', vim.diagnostic.goto_prev)
-vim.keymap.set('n', '<leader>d', vim.diagnostic.open_float)
+vim.keymap.set('n', '<tab>', [[ :normal za<cr> ]], {silent = true})
+-- vim.keymap.set('n', '<tab>', [[ :exe 'normal za' | IndentBlanklineRefresh<cr> ]], {silent = true})
 
 -- swap gf and gF
 vim.keymap.set('n', 'gf', [[ gF ]])