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