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 Option,
185 PageDown,
186 PageUp,
187 PanelLeft,
188 PanelRight,
189 Pencil,
190 Person,
191 PersonCircle,
192 PhoneIncoming,
193 Pin,
194 Play,
195 PlayAlt,
196 PlayBug,
197 PlayFilled,
198 Plus,
199 PocketKnife,
200 Power,
201 Public,
202 PullRequest,
203 Quote,
204 RefreshTitle,
205 Regex,
206 ReplNeutral,
207 Replace,
208 ReplaceAll,
209 ReplaceNext,
210 ReplyArrowRight,
211 Rerun,
212 Return,
213 Reveal,
214 RotateCcw,
215 RotateCw,
216 Route,
217 Save,
218 Scissors,
219 Screen,
220 ScrollText,
221 SearchSelection,
222 SelectAll,
223 Send,
224 Server,
225 Settings,
226 SettingsAlt,
227 Shift,
228 Slash,
229 SlashSquare,
230 Sliders,
231 SlidersVertical,
232 Snip,
233 Space,
234 Sparkle,
235 SparkleAlt,
236 SparkleFilled,
237 Spinner,
238 Split,
239 SplitAlt,
240 SquareDot,
241 SquareMinus,
242 SquarePlus,
243 Star,
244 StarFilled,
245 Stop,
246 StopFilled,
247 Strikethrough,
248 Supermaven,
249 SupermavenDisabled,
250 SupermavenError,
251 SupermavenInit,
252 SwatchBook,
253 Tab,
254 Terminal,
255 TerminalAlt,
256 TextSnippet,
257 ThumbsDown,
258 ThumbsUp,
259 ToolBulb,
260 ToolCopy,
261 ToolDeleteFile,
262 ToolDiagnostics,
263 ToolFolder,
264 ToolHammer,
265 ToolNotification,
266 ToolPencil,
267 ToolRead,
268 ToolRegex,
269 ToolSearch,
270 ToolTerminal,
271 ToolWeb,
272 Trash,
273 TrashAlt,
274 Triangle,
275 TriangleRight,
276 Undo,
277 Unpin,
278 Update,
279 UserCheck,
280 UserGroup,
281 UserRoundPen,
282 Visible,
283 Wand,
284 Warning,
285 WholeWord,
286 X,
287 XCircle,
288 ZedAssistant,
289 ZedAssistantFilled,
290 ZedBurnMode,
291 ZedBurnModeOn,
292 ZedMcpCustom,
293 ZedMcpExtension,
294 ZedPredict,
295 ZedPredictDisabled,
296 ZedPredictDown,
297 ZedPredictError,
298 ZedPredictUp,
299 ZedXCopilot,
300}
301
302impl IconName {
303 /// Returns the path to this icon.
304 pub fn path(&self) -> Arc<str> {
305 let file_stem: &'static str = self.into();
306 format!("icons/{file_stem}.svg").into()
307 }
308}