local icon = require 'std.icon' ---@class DbgKind ---@field icon string nerd font icon ---@field hl_group string neovim highlight group ---@type table local DBG_KINDS = { DEBUG = { icon = icon.search, hl_group = 'DiagnosticInfo' }, TRACE = { icon = icon.event, hl_group = 'DiagnosticHint' }, ERROR = { icon = icon.error, hl_group = 'DiagnosticError' }, } ---Returns the kind details for a given kind name. ---@param kind_name string must be one of DEBUG, TRACE, ERROR ---@return DbgKind local function get(kind_name) vim.validate('kind_name', kind_name, 'string') local kind = DBG_KINDS[kind_name] if not kind then local available = vim.tbl_keys(DBG_KINDS) error('Unknown debug kind: ' .. kind_name .. '. Available: ' .. vim.inspect(available)) end return kind end ---Returns a list of all available kind names. ---@return string[] local function list() return vim.tbl_keys(DBG_KINDS) end ---Formats a kind name into a display string with icon and name. ---@param kind_name string ---@return string local function format(kind_name) local kind = get(kind_name) return kind.icon .. ' ' .. kind_name end return { DEBUG = DBG_KINDS.DEBUG, TRACE = DBG_KINDS.TRACE, ERROR = DBG_KINDS.ERROR, get = get, list = list, format = format, }