Merge pull request #109 from epheien/feat-icon_fetcher
feat: icon_fetcher adds symbol parameter
This commit is contained in:
18
README.md
18
README.md
@@ -921,6 +921,24 @@ symbols = {
|
||||
-- ...
|
||||
end,
|
||||
}
|
||||
```
|
||||
|
||||
The `icon_fetcher` function may also accept a third parameter, the symbol
|
||||
which type is outline.Symbol. Provider can add extra info to symbol.
|
||||
For example, access specifier information can be added at the icon location.
|
||||
|
||||
```lua
|
||||
symbols = {
|
||||
icon_fetcher = function(kind, bufnr, symbol)
|
||||
local access_icons = { public = '○', protected = '◉', private = '●' }
|
||||
local icon = require('outline.config').o.symbols.icons[kind].icon
|
||||
-- ctags provider add `access` key
|
||||
if symbol and symbol.access then
|
||||
return icon .. ' ' .. access_icons[symbol.access]
|
||||
end
|
||||
return icon
|
||||
end,
|
||||
}
|
||||
```
|
||||
|
||||
See [this section](#custom-icons) for other examples of this function.
|
||||
|
||||
@@ -47,7 +47,7 @@ local function parse_result(result, depth, hierarchy, parent, bufnr)
|
||||
local node = {
|
||||
deprecated = value.deprecated,
|
||||
kind = value.kind,
|
||||
icon = symbols.icon_from_kind(value.kind, bufnr),
|
||||
icon = symbols.icon_from_kind(value.kind, bufnr, value),
|
||||
name = value.name or value.text,
|
||||
detail = value.detail,
|
||||
line = selectionRange.start.line,
|
||||
|
||||
@@ -52,8 +52,9 @@ local lspkind = {
|
||||
|
||||
---@param kind string|integer
|
||||
---@param bufnr integer
|
||||
---@param symbol? outline.Symbol
|
||||
---@return string icon
|
||||
function M.icon_from_kind(kind, bufnr)
|
||||
function M.icon_from_kind(kind, bufnr, symbol)
|
||||
local kindstr = kind
|
||||
if type(kind) ~= 'string' then
|
||||
kindstr = M.kinds[kind]
|
||||
@@ -63,7 +64,7 @@ function M.icon_from_kind(kind, bufnr)
|
||||
end
|
||||
|
||||
if type(cfg.o.symbols.icon_fetcher) == 'function' then
|
||||
local icon = cfg.o.symbols.icon_fetcher(kindstr, bufnr)
|
||||
local icon = cfg.o.symbols.icon_fetcher(kindstr, bufnr, symbol)
|
||||
-- Allow returning empty string
|
||||
if icon then
|
||||
return icon
|
||||
|
||||
Reference in New Issue
Block a user