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