Merge pull request #85 from oskarrrrrrr/lspkind-error-msg

Show lspkind error message just once
This commit is contained in:
~hedy
2024-08-13 12:48:16 +08:00
committed by GitHub
2 changed files with 24 additions and 13 deletions

View File

@@ -3,6 +3,7 @@ local cfg = require('outline.config')
local highlight = require('outline.highlight') local highlight = require('outline.highlight')
local providers = require('outline.providers.init') local providers = require('outline.providers.init')
local utils = require('outline.utils.init') local utils = require('outline.utils.init')
local symbols = require('outline.symbols')
local M = { local M = {
---@type outline.Sidebar[] ---@type outline.Sidebar[]
@@ -354,6 +355,7 @@ function M.setup(opts)
cfg.setup(opts) cfg.setup(opts)
highlight.setup() highlight.setup()
symbols.setup()
setup_global_autocmd() setup_global_autocmd()
setup_commands() setup_commands()

View File

@@ -45,6 +45,11 @@ for k, v in pairs(M.kinds) do
M.str_to_kind[v] = k M.str_to_kind[v] = k
end end
-- use a stub if lspkind is missing or not configured
local lspkind = {
symbolic = function(kind, opts) return '' end
}
---@param kind string|integer ---@param kind string|integer
---@param bufnr integer ---@param bufnr integer
---@return string icon ---@return string icon
@@ -65,22 +70,26 @@ function M.icon_from_kind(kind, bufnr)
end end
end end
if cfg.o.symbols.icon_source == 'lspkind' then local icon = lspkind.symbolic(kindstr, { with_text = false })
local has_lspkind, lspkind = pcall(require, 'lspkind') if icon and icon ~= '' then
if not has_lspkind then return icon
vim.notify(
'[outline]: icon_source set to lspkind but failed to require lspkind!',
vim.log.levels.ERROR
)
else
local icon = lspkind.symbolic(kindstr, { with_text = false })
if icon and icon ~= '' then
return icon
end
end
end end
return cfg.o.symbols.icons[kindstr].icon return cfg.o.symbols.icons[kindstr].icon
end end
function M.setup()
if cfg.o.symbols.icon_source == 'lspkind' then
local has_lspkind, _lspkind = pcall(require, 'lspkind')
if has_lspkind then
lspkind = _lspkind
else
vim.notify(
'[outline]: icon_source set to lspkind but failed to require lspkind!',
vim.log.levels.ERROR
)
end
end
end
return M return M