diff --git a/lua/symbols-outline.lua b/lua/symbols-outline.lua index 7ec9fa2..a443fec 100644 --- a/lua/symbols-outline.lua +++ b/lua/symbols-outline.lua @@ -4,6 +4,7 @@ local parser = require('symbols-outline.parser') local ui = require('symbols-outline.ui') local writer = require('symbols-outline.writer') local config = require('symbols-outline.config') +local utils = require('symbols-outline.utils.lsp_utils') local M = {} @@ -73,7 +74,7 @@ end function M._highlight_current_item() if M.state.outline_buf == nil or vim.api.nvim_get_current_buf() == - M.state.outline_buf then return end + M.state.outline_buf or not utils.is_buf_attached_to_lsp() then return end local hovered_line = vim.api.nvim_win_get_cursor( vim.api.nvim_get_current_win())[1] - 1 diff --git a/lua/symbols-outline/utils/lsp_utils.lua b/lua/symbols-outline/utils/lsp_utils.lua new file mode 100644 index 0000000..eb9e9e9 --- /dev/null +++ b/lua/symbols-outline/utils/lsp_utils.lua @@ -0,0 +1,10 @@ +local vim = vim + +local M = {} + +function M.is_buf_attached_to_lsp(bufnr) + local clients = vim.lsp.buf_get_clients(bufnr or 0) + return clients ~= nil and #clients > 0 +end + +return M