From 6daaba38ed8104f8735eb2bd1419a86b7e41769b Mon Sep 17 00:00:00 2001 From: fent Date: Sun, 8 Sep 2024 02:56:36 -0700 Subject: [PATCH] activate winbar symbols when opening file --- lua/lspsaga/symbol/head.lua | 20 ++++++++++++-------- lua/lspsaga/symbol/init.lua | 14 +++++++++----- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/lua/lspsaga/symbol/head.lua b/lua/lspsaga/symbol/head.lua index 3b730032e..a0e143842 100644 --- a/lua/lspsaga/symbol/head.lua +++ b/lua/lspsaga/symbol/head.lua @@ -162,6 +162,17 @@ end function symbol:register_module() local group = api.nvim_create_augroup('LspsagaSymbols', { clear = true }) + api.nvim_create_autocmd('FileType', { + group = group, + callback = function(args) + local winbar + if config.symbol_in_winbar.enable then + winbar = require('lspsaga.symbol.winbar') + winbar.init_winbar(args.buf) + end + self:buf_watcher(args.buf, group) + end, + }) api.nvim_create_autocmd('LspAttach', { group = group, callback = function(args) @@ -176,20 +187,13 @@ function symbol:register_module() self:do_request(args.buf, args.data.client_id) - local winbar - if config.symbol_in_winbar.enable then - winbar = require('lspsaga.symbol.winbar') - winbar.init_winbar(args.buf) - end - self:buf_watcher(args.buf, group) - if config.implement.enable and client.supports_method('textDocument/implementation') then require('lspsaga.implement').start() end end, }) - api.nvim_create_autocmd('LspDetach', { + api.nvim_create_autocmd({ 'LspDetach', 'BufDelete', 'BufWipeout' }, { group = group, callback = function(args) if self[args.buf] then diff --git a/lua/lspsaga/symbol/init.lua b/lua/lspsaga/symbol/init.lua index 79476c721..8142ebbba 100644 --- a/lua/lspsaga/symbol/init.lua +++ b/lua/lspsaga/symbol/init.lua @@ -182,6 +182,14 @@ end function symbol:register_module() local group = api.nvim_create_augroup('LspsagaSymbols', { clear = true }) + api.nvim_create_autocmd('FileType', { + group = group, + callback = function(args) + if config.symbol_in_winbar.enable then + require('lspsaga.symbol.winbar').init_winbar(args.buf) + end + end, + }) api.nvim_create_autocmd('LspAttach', { group = group, callback = function(args) @@ -195,17 +203,13 @@ function symbol:register_module() end self:do_request(args.buf, args.data.client_id) - if config.symbol_in_winbar.enable then - require('lspsaga.symbol.winbar').init_winbar(args.buf) - end - if config.implement.enable and client.supports_method('textDocument/implementation') then require('lspsaga.implement').start() end end, }) - api.nvim_create_autocmd('LspDetach', { + api.nvim_create_autocmd({ 'LspDetach', 'BufDelete' }, { group = group, callback = function(args) if self[args.buf] then