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 TodoComplete,
260 TodoPending,
261 TodoProgress,
262 ToolBulb,
263 ToolCopy,
264 ToolDeleteFile,
265 ToolDiagnostics,
266 ToolFolder,
267 ToolHammer,
268 ToolNotification,
269 ToolPencil,
270 ToolRead,
271 ToolRegex,
272 ToolSearch,
273 ToolTerminal,
274 ToolWeb,
275 Trash,
276 TrashAlt,
277 Triangle,
278 TriangleRight,
279 Undo,
280 Unpin,
281 Update,
282 UserCheck,
283 UserGroup,
284 UserRoundPen,
285 Visible,
286 Wand,
287 Warning,
288 WholeWord,
289 X,
290 XCircle,
291 ZedAssistant,
292 ZedAssistantFilled,
293 ZedBurnMode,
294 ZedBurnModeOn,
295 ZedMcpCustom,
296 ZedMcpExtension,
297 ZedPredict,
298 ZedPredictDisabled,
299 ZedPredictDown,
300 ZedPredictError,
301 ZedPredictUp,
302 ZedXCopilot,
303}
304
305impl IconName {
306 /// Returns the path to this icon.
307 pub fn path(&self) -> Arc<str> {
308 let file_stem: &'static str = self.into();
309 format!("icons/{file_stem}.svg").into()
310 }
311}