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