summary refs log tree commit diff
path: root/.vim
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2022-09-21 18:54:41 +0200
committerRobert Günzler <r@gnzler.io>2022-09-21 18:54:41 +0200
commit206569cf8685dee53b9713b1f3e774145565a393 (patch)
tree8ddd2dbc457648568d623f84bd2bbfdd8da6c947 /.vim
parente768acca8a8cea044badaa502706430a390cbef8 (diff)
vim: add aerial support
Diffstat (limited to '.vim')
-rw-r--r--.vim/lua/lsp.lua4
-rw-r--r--.vim/lua/plugins.lua17
2 files changed, 18 insertions, 3 deletions
diff --git a/.vim/lua/lsp.lua b/.vim/lua/lsp.lua
index 86b85a3..5c5b8ef 100644
--- a/.vim/lua/lsp.lua
+++ b/.vim/lua/lsp.lua
@@ -1,6 +1,5 @@
 local lsp         = require('lspconfig')
 local lspstatus   = require('lsp-status')
-local navic       = require('nvim-navic')
 
 local my_attach = function(client, bufnr)
   if vim.opt.diff:get() then
@@ -29,7 +28,8 @@ local my_attach = function(client, bufnr)
 
   lspstatus.on_attach(client)
   if client.supports_method('textDocument/symbols') then
-    navic.attach(client, bufnr)
+    require('nvim-navic').attach(client, bufnr)
+    require('aerial').on_attach(client, bufnr)
   end
 
   if client.supports_method('textDocument/definition') then
diff --git a/.vim/lua/plugins.lua b/.vim/lua/plugins.lua
index c8fffb5..549aabb 100644
--- a/.vim/lua/plugins.lua
+++ b/.vim/lua/plugins.lua
@@ -345,6 +345,7 @@ require('packer').startup({function()
   use {'neovim/nvim-lspconfig', -- {{{
     require = {
       'nvim-lua/lsp-status.nvim',
+      'stevearc/aerial.nvim',
     },
     config = function()
       require('lsp').setup()
@@ -361,12 +362,26 @@ require('packer').startup({function()
       lspstatus.register_progress()
     end} -- }}}
 
+  use {'stevearc/aerial.nvim', -- {{{
+    config = function()
+      local aerial = require('aerial')
+      aerial.setup({
+        icons = require('lsp').symbols,
+        close_automatic_events = {'switch_buffer'},
+        open_automatic = function(bufnr)
+            return vim.api.nvim_buf_line_count(bufnr) > 80
+              and aerial.num_symbols(bufnr) > 4
+              and not aerial.was_closed()
+        end,
+      })
+    end} --- }}}
+
   use {'SmiteshP/nvim-navic', -- {{{
     requires = {'neovim/nvim-lspconfig'},
     config = function()
       local navic = require('nvim-navic')
       navic.setup {
-        icons = package.loaded.lsp.symbols
+        icons = require('lsp').symbols,
       }
     end} -- }}}