local icons = {} ---@type table local data = { kind = { Class = "󰠱", Color = "󰏘", Constant = "󰏿", Constructor = "", Enum = "", EnumMember = "", Event = "", Field = "󰇽", File = "󰈙", Folder = "󰉋", Fragment = "", Function = "󰊕", Interface = "", Implementation = "", Keyword = "󰌋", Method = "󰆧", Module = "", Namespace = "󰌗", Number = "", Operator = "󰆕", Package = "", Property = "󰜢", Reference = "", Snippet = "", Struct = "", Text = "󰉿", TypeParameter = "󰅲", Undefined = "", Unit = "", Value = "󰎠", Variable = "", -- ccls-specific icons. TypeAlias = "", Parameter = "", StaticMethod = "", Macro = "", }, type = { Array = "󰅪", Boolean = "", Null = "󰟢", Number = "", Object = "󰅩", String = "󰉿", }, documents = { Default = "", File = "", Files = "", FileTree = "󰙅", Import = "", Symlink = "", }, git = { Add = "", Branch = "", Diff = "", Git = "󰊢", Ignore = "", Mod = "M", Mod_alt = "", Remove = "", Rename = "", Repo = "", Unmerged = "󰘬", Untracked = "󰞋", Unstaged = "", Staged = "", Conflict = "", }, ui = { Accepted = "", ArrowClosed = "", ArrowOpen = "", BigCircle = "", BigUnfilledCircle = "", BookMark = "󰃃", Buffer = "󰓩", Bug = "", Calendar = "", Character = "", Check = "󰄳", ChevronRight = "", Circle = "", Close = "󰅖", Close_alt = "", CloudDownload = "", CodeAction = "󰌵", Comment = "󰅺", Dashboard = "", Emoji = "󰱫", EmptyFolder = "", EmptyFolderOpen = "", File = "󰈤", Fire = "", Folder = "", FolderOpen = "", FolderWithHeart = "󱃪", Gear = "", History = "󰄉", Incoming = "󰏷", Indicator = "", Keyboard = "", Left = "", List = "", Square = "", SymlinkFolder = "", Lock = "󰍁", Modified = "✥", Modified_alt = "", NewFile = "", Newspaper = "", Note = "󰍨", Outgoing = "󰏻", Package = "", Pencil = "󰏫", Perf = "󰅒", Play = "", Project = "", Right = "", RootFolderOpened = "", Search = "󰍉", Separator = "", DoubleSeparator = "󰄾", SignIn = "", SignOut = "", Sort = "", Spell = "󰓆", Symlink = "", Tab = "", Table = "", Telescope = "", }, diagnostics = { Error = "", Warning = "", Information = "", Question = "", Hint = "󰌵", -- Holo version Error_alt = "󰅚", Warning_alt = "󰀪", Information_alt = "", Question_alt = "", Hint_alt = "󰌶", }, misc = { Campass = "󰀹", Code = "", Gavel = "", Glass = "󰂖", NoActiveLsp = "󱚧", PyEnv = "󰢩", Squirrel = "", Tag = "", Tree = "", Watch = "", Lego = "", LspAvailable = "󱜙", Vbar = "│", Add = "+", Added = "", Ghost = "󰊠", ManUp = "", Neovim = "", Vim = "", Update = "", }, cmp = { Codeium = "", TabNine = "", Copilot = "", Copilot_alt = "", -- Add source-specific icons here buffer = "", cmp_tabnine = "", codeium = "", copilot = "", copilot_alt = "", latex_symbols = "", luasnip = "󰃐", nvim_lsp = "", nvim_lua = "", orgmode = "", path = "", spell = "󰓆", tmux = "", treesitter = "", undefined = "", }, dap = { Breakpoint = "󰝥", BreakpointCondition = "󰟃", BreakpointRejected = "", LogPoint = "", Pause = "", Play = "", RunLast = "↻", StepBack = "", StepInto = "󰆹", StepOut = "󰆸", StepOver = "󰆷", Stopped = "", Terminate = "󰝤", }, } ---Get a specific icon set. ---@param category "kind"|"type"|"documents"|"git"|"ui"|"diagnostics"|"misc"|"cmp"|"dap" ---@param add_space? boolean @Add trailing space after the icon. ---@return table function icons.get(category, add_space) if add_space then return setmetatable({}, { __index = function(_, key) return data[category][key] .. " " end, }) else return data[category] end end return icons