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