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