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