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 ArrowDownFromLine,
32 ArrowDownRight,
33 ArrowLeft,
34 ArrowRight,
35 ArrowRightLeft,
36 ArrowUp,
37 ArrowUpAlt,
38 ArrowUpFromLine,
39 ArrowUpRight,
40 ArrowUpRightAlt,
41 AtSign,
42 AudioOff,
43 AudioOn,
44 Backspace,
45 Bell,
46 BellDot,
47 BellOff,
48 BellRing,
49 Binary,
50 Blocks,
51 Bolt,
52 BoltFilled,
53 BoltFilledAlt,
54 Book,
55 BookCopy,
56 BookPlus,
57 Brain,
58 BugOff,
59 CaseSensitive,
60 Check,
61 CheckDouble,
62 ChevronDown,
63 /// This chevron indicates a popover menu.
64 ChevronDownSmall,
65 ChevronLeft,
66 ChevronRight,
67 ChevronUp,
68 ChevronUpDown,
69 Circle,
70 CircleOff,
71 CircleHelp,
72 Close,
73 Cloud,
74 Code,
75 Cog,
76 Command,
77 Context,
78 Control,
79 Copilot,
80 CopilotDisabled,
81 CopilotError,
82 CopilotInit,
83 Copy,
84 CountdownTimer,
85 Crosshair,
86 CursorIBeam,
87 Dash,
88 DatabaseZap,
89 Debug,
90 DebugBreakpoint,
91 DebugContinue,
92 DebugDisabledBreakpoint,
93 DebugDisabledLogBreakpoint,
94 DebugDetach,
95 DebugIgnoreBreakpoints,
96 DebugLogBreakpoint,
97 DebugPause,
98 DebugRestart,
99 DebugStepBack,
100 DebugStepInto,
101 DebugStepOut,
102 DebugStepOver,
103 DebugStop,
104 Delete,
105 Diff,
106 Disconnected,
107 DocumentText,
108 Download,
109 Ellipsis,
110 EllipsisVertical,
111 Envelope,
112 Equal,
113 Eraser,
114 Escape,
115 Exit,
116 ExpandDown,
117 ExpandUp,
118 ExpandVertical,
119 ExternalLink,
120 Eye,
121 File,
122 FileCode,
123 FileCreate,
124 FileDiff,
125 FileDoc,
126 FileGeneric,
127 FileGit,
128 FileLock,
129 FileRust,
130 FileSearch,
131 FileText,
132 FileToml,
133 FileTree,
134 Filter,
135 Flame,
136 Folder,
137 FolderOpen,
138 FolderX,
139 Font,
140 FontSize,
141 FontWeight,
142 ForwardArrow,
143 Function,
144 GenericClose,
145 GenericMaximize,
146 GenericMinimize,
147 GenericRestore,
148 GitBranch,
149 GitBranchSmall,
150 Github,
151 Globe,
152 Hammer,
153 Hash,
154 HistoryRerun,
155 Image,
156 Indicator,
157 Info,
158 InlayHint,
159 Keyboard,
160 Layout,
161 Library,
162 LightBulb,
163 LineHeight,
164 Link,
165 ListCollapse,
166 ListTodo,
167 ListTree,
168 ListX,
169 LoadCircle,
170 LocationEdit,
171 LockOutlined,
172 LspDebug,
173 LspRestart,
174 LspStop,
175 MagnifyingGlass,
176 MailOpen,
177 Maximize,
178 Menu,
179 MenuAlt,
180 MessageBubbles,
181 Mic,
182 MicMute,
183 Microscope,
184 Minimize,
185 NewFromSummary,
186 NewTextThread,
187 NewThread,
188 Option,
189 PageDown,
190 PageUp,
191 PanelLeft,
192 PanelRight,
193 Pencil,
194 Person,
195 PersonCircle,
196 PhoneIncoming,
197 Pin,
198 Play,
199 PlayAlt,
200 PlayBug,
201 PlayFilled,
202 Plus,
203 PocketKnife,
204 Power,
205 Public,
206 PullRequest,
207 Quote,
208 RefreshTitle,
209 Regex,
210 ReplNeutral,
211 Replace,
212 ReplaceAll,
213 ReplaceNext,
214 ReplyArrowRight,
215 Rerun,
216 Return,
217 Reveal,
218 RotateCcw,
219 RotateCw,
220 Route,
221 Save,
222 Scissors,
223 Screen,
224 ScrollText,
225 SearchSelection,
226 SelectAll,
227 Send,
228 Server,
229 Settings,
230 SettingsAlt,
231 Shift,
232 Slash,
233 SlashSquare,
234 Sliders,
235 SlidersVertical,
236 Snip,
237 Space,
238 Sparkle,
239 SparkleAlt,
240 SparkleFilled,
241 Spinner,
242 Split,
243 SplitAlt,
244 SquareDot,
245 SquareMinus,
246 SquarePlus,
247 Star,
248 StarFilled,
249 Stop,
250 StopFilled,
251 Strikethrough,
252 Supermaven,
253 SupermavenDisabled,
254 SupermavenError,
255 SupermavenInit,
256 SwatchBook,
257 Tab,
258 Terminal,
259 TerminalAlt,
260 TextSnippet,
261 ThumbsDown,
262 ThumbsUp,
263 TodoComplete,
264 TodoPending,
265 TodoProgress,
266 ToolBulb,
267 ToolCopy,
268 ToolDeleteFile,
269 ToolDiagnostics,
270 ToolFolder,
271 ToolHammer,
272 ToolNotification,
273 ToolPencil,
274 ToolRead,
275 ToolRegex,
276 ToolSearch,
277 ToolTerminal,
278 ToolWeb,
279 Trash,
280 TrashAlt,
281 Triangle,
282 TriangleRight,
283 Undo,
284 Unpin,
285 Update,
286 UserCheck,
287 UserGroup,
288 UserRoundPen,
289 Visible,
290 Wand,
291 Warning,
292 WholeWord,
293 X,
294 XCircle,
295 ZedAssistant,
296 ZedAssistantFilled,
297 ZedBurnMode,
298 ZedBurnModeOn,
299 ZedMcpCustom,
300 ZedMcpExtension,
301 ZedPredict,
302 ZedPredictDisabled,
303 ZedPredictDown,
304 ZedPredictError,
305 ZedPredictUp,
306 ZedXCopilot,
307}
308
309impl IconName {
310 /// Returns the path to this icon.
311 pub fn path(&self) -> Arc<str> {
312 let file_stem: &'static str = self.into();
313 format!("icons/{file_stem}.svg").into()
314 }
315}