From 21f085cb926d0c553299ef38983c90c95d621233 Mon Sep 17 00:00:00 2001 From: simrat39 Date: Sat, 24 Apr 2021 15:05:59 -0700 Subject: [PATCH] fix(auto highlight): Only update highlight/position if current buffer is attached to a client --- lua/symbols-outline.lua | 3 ++- lua/symbols-outline/utils/lsp_utils.lua | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 lua/symbols-outline/utils/lsp_utils.lua 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