1use std::sync::Arc;
2
3use serde::{Deserialize, Serialize};
4use strum::{EnumIter, EnumString, IntoStaticStr};
5
6#[derive(
7 Debug, PartialEq, Eq, Copy, Clone, EnumIter, EnumString, IntoStaticStr, Serialize, Deserialize,
8)]
9#[strum(serialize_all = "snake_case")]
10pub enum IconName {
11 Ai,
12 AiAnthropic,
13 AiBedrock,
14 AiClaude,
15 AiDeepSeek,
16 AiEdit,
17 AiGemini,
18 AiGoogle,
19 AiLmStudio,
20 AiMistral,
21 AiOllama,
22 AiOpenAi,
23 AiOpenAiCompat,
24 AiOpenRouter,
25 AiVZero,
26 AiXAi,
27 AiZed,
28 ArrowCircle,
29 ArrowDown,
30 ArrowDown10,
31 ArrowDownRight,
32 ArrowLeft,
33 ArrowRight,
34 ArrowRightLeft,
35 ArrowUp,
36 ArrowUpRight,
37 Attach,
38 AudioOff,
39 AudioOn,
40 Backspace,
41 Bell,
42 BellDot,
43 BellOff,
44 BellRing,
45 Binary,
46 Blocks,
47 BoltOutlined,
48 BoltFilled,
49 Book,
50 BookCopy,
51 CaseSensitive,
52 Chat,
53 Check,
54 CheckDouble,
55 ChevronDown,
56 ChevronLeft,
57 ChevronRight,
58 ChevronUp,
59 ChevronUpDown,
60 Circle,
61 CircleHelp,
62 Close,
63 CloudDownload,
64 Code,
65 Cog,
66 Command,
67 Control,
68 Copilot,
69 CopilotDisabled,
70 CopilotError,
71 CopilotInit,
72 Copy,
73 CountdownTimer,
74 Crosshair,
75 CursorIBeam,
76 Dash,
77 DatabaseZap,
78 Debug,
79 DebugBreakpoint,
80 DebugContinue,
81 DebugDisabledBreakpoint,
82 DebugDisabledLogBreakpoint,
83 DebugDetach,
84 DebugIgnoreBreakpoints,
85 DebugLogBreakpoint,
86 DebugPause,
87 DebugStepBack,
88 DebugStepInto,
89 DebugStepOut,
90 DebugStepOver,
91 Diff,
92 Disconnected,
93 Download,
94 EditorAtom,
95 EditorCursor,
96 EditorEmacs,
97 EditorJetBrains,
98 EditorSublime,
99 EditorVsCode,
100 Ellipsis,
101 EllipsisVertical,
102 Envelope,
103 Eraser,
104 Escape,
105 Exit,
106 ExpandDown,
107 ExpandUp,
108 ExpandVertical,
109 Eye,
110 File,
111 FileCode,
112 FileDiff,
113 FileDoc,
114 FileGeneric,
115 FileGit,
116 FileLock,
117 FileMarkdown,
118 FileRust,
119 FileTextFilled,
120 FileTextOutlined,
121 FileToml,
122 FileTree,
123 Filter,
124 Flame,
125 Folder,
126 FolderOpen,
127 FolderSearch,
128 Font,
129 FontSize,
130 FontWeight,
131 ForwardArrow,
132 GenericClose,
133 GenericMaximize,
134 GenericMinimize,
135 GenericRestore,
136 GitBranch,
137 GitBranchAlt,
138 Github,
139 Hash,
140 HistoryRerun,
141 Image,
142 Indicator,
143 Info,
144 Json,
145 Keyboard,
146 Library,
147 LineHeight,
148 ListCollapse,
149 ListFilter,
150 ListTodo,
151 ListTree,
152 ListX,
153 LoadCircle,
154 LocationEdit,
155 LockOutlined,
156 MagnifyingGlass,
157 Maximize,
158 Menu,
159 MenuAlt,
160 MenuAltTemp,
161 Mic,
162 MicMute,
163 Minimize,
164 Notepad,
165 Option,
166 PageDown,
167 PageUp,
168 Pencil,
169 PencilUnavailable,
170 Person,
171 Pin,
172 PlayOutlined,
173 PlayFilled,
174 Plus,
175 Power,
176 Public,
177 PullRequest,
178 Quote,
179 Reader,
180 RefreshTitle,
181 Regex,
182 ReplNeutral,
183 Replace,
184 ReplaceAll,
185 ReplaceNext,
186 ReplyArrowRight,
187 Rerun,
188 Return,
189 RotateCcw,
190 RotateCw,
191 Scissors,
192 Screen,
193 SelectAll,
194 Send,
195 Server,
196 Settings,
197 ShieldCheck,
198 Shift,
199 Slash,
200 Sliders,
201 Space,
202 Sparkle,
203 Split,
204 SplitAlt,
205 SquareDot,
206 SquareMinus,
207 SquarePlus,
208 Star,
209 StarFilled,
210 Stop,
211 Supermaven,
212 SupermavenDisabled,
213 SupermavenError,
214 SupermavenInit,
215 SwatchBook,
216 Tab,
217 Terminal,
218 TerminalAlt,
219 TerminalGhost,
220 TextSnippet,
221 TextThread,
222 Thread,
223 ThreadFromSummary,
224 ThumbsDown,
225 ThumbsUp,
226 TodoComplete,
227 TodoPending,
228 TodoProgress,
229 ToolCopy,
230 ToolDeleteFile,
231 ToolDiagnostics,
232 ToolFolder,
233 ToolHammer,
234 ToolNotification,
235 ToolPencil,
236 ToolRead,
237 ToolRegex,
238 ToolSearch,
239 ToolTerminal,
240 ToolThink,
241 ToolWeb,
242 Trash,
243 Triangle,
244 TriangleRight,
245 Undo,
246 Unpin,
247 UserCheck,
248 UserGroup,
249 UserRoundPen,
250 Warning,
251 WholeWord,
252 XCircle,
253 XCircleFilled,
254 ZedAgent,
255 ZedAssistant,
256 ZedBurnMode,
257 ZedBurnModeOn,
258 ZedMcpCustom,
259 ZedMcpExtension,
260 ZedPredict,
261 ZedPredictDisabled,
262 ZedPredictDown,
263 ZedPredictError,
264 ZedPredictUp,
265 ZedXCopilot,
266 Linux,
267}
268
269impl IconName {
270 /// Returns the path to this icon.
271 pub fn path(&self) -> Arc<str> {
272 let file_stem: &'static str = self.into();
273 format!("icons/{file_stem}.svg").into()
274 }
275}