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 AcpRegistry,
12 Ai,
13 AiAnthropic,
14 AiBedrock,
15 AiClaude,
16 AiDeepSeek,
17 AiEdit,
18 AiGemini,
19 AiGoogle,
20 AiLmStudio,
21 AiMistral,
22 AiOllama,
23 AiOpenAi,
24 AiOpenAiCompat,
25 AiOpenRouter,
26 AiVZero,
27 AiXAi,
28 AiZed,
29 ArrowCircle,
30 ArrowDown,
31 ArrowDown10,
32 ArrowDownRight,
33 ArrowLeft,
34 ArrowRight,
35 ArrowRightLeft,
36 ArrowUp,
37 ArrowUpRight,
38 AtSign,
39 Attach,
40 AudioOff,
41 AudioOn,
42 Backspace,
43 Bell,
44 BellDot,
45 BellOff,
46 BellRing,
47 Binary,
48 Blocks,
49 BoltFilled,
50 BoltOutlined,
51 Book,
52 BookCopy,
53 Box,
54 CaseSensitive,
55 Chat,
56 Check,
57 CheckDouble,
58 ChevronDown,
59 ChevronDownUp,
60 ChevronLeft,
61 ChevronRight,
62 ChevronUp,
63 ChevronUpDown,
64 Circle,
65 CircleHelp,
66 Close,
67 CloudDownload,
68 Code,
69 Cog,
70 Command,
71 Control,
72 Copilot,
73 CopilotDisabled,
74 CopilotError,
75 CopilotInit,
76 Copy,
77 CountdownTimer,
78 Crosshair,
79 CursorIBeam,
80 Dash,
81 DatabaseZap,
82 Debug,
83 DebugBreakpoint,
84 DebugContinue,
85 DebugDetach,
86 DebugDisabledBreakpoint,
87 DebugDisabledLogBreakpoint,
88 DebugIgnoreBreakpoints,
89 DebugLogBreakpoint,
90 DebugPause,
91 DebugStepInto,
92 DebugStepOut,
93 DebugStepOver,
94 Diff,
95 DiffSplit,
96 DiffUnified,
97 Disconnected,
98 Download,
99 EditorAtom,
100 EditorCursor,
101 EditorEmacs,
102 EditorJetBrains,
103 EditorSublime,
104 EditorVsCode,
105 Ellipsis,
106 EllipsisVertical,
107 Envelope,
108 Eraser,
109 Escape,
110 Exit,
111 ExpandDown,
112 ExpandUp,
113 ExpandVertical,
114 Eye,
115 FastForward,
116 FastForwardOff,
117 File,
118 FileCode,
119 FileDiff,
120 FileDoc,
121 FileGeneric,
122 FileGit,
123 FileLock,
124 FileMarkdown,
125 FileRust,
126 FileTextFilled,
127 FileTextOutlined,
128 FileToml,
129 FileTree,
130 Filter,
131 Flame,
132 Folder,
133 FolderOpen,
134 FolderSearch,
135 Font,
136 FontSize,
137 FontWeight,
138 ForwardArrow,
139 ForwardArrowUp,
140 GenericClose,
141 GenericMaximize,
142 GenericMinimize,
143 GenericRestore,
144 GitBranch,
145 GitBranchAlt,
146 GitBranchPlus,
147 GitCommit,
148 GitGraph,
149 Github,
150 Hash,
151 HistoryRerun,
152 Image,
153 Inception,
154 Indicator,
155 Info,
156 Json,
157 Keyboard,
158 Library,
159 LineHeight,
160 Link,
161 Linux,
162 ListCollapse,
163 ListFilter,
164 ListTodo,
165 ListTree,
166 ListX,
167 LoadCircle,
168 LocationEdit,
169 LockOutlined,
170 MagnifyingGlass,
171 Maximize,
172 Menu,
173 MenuAlt,
174 MenuAltTemp,
175 Mic,
176 MicMute,
177 Minimize,
178 Notepad,
179 Option,
180 PageDown,
181 PageUp,
182 Paperclip,
183 Pencil,
184 PencilUnavailable,
185 Person,
186 Pin,
187 PlayFilled,
188 PlayOutlined,
189 Plus,
190 Power,
191 Public,
192 PullRequest,
193 Quote,
194 Reader,
195 RefreshTitle,
196 Regex,
197 ReplNeutral,
198 Replace,
199 ReplaceAll,
200 ReplaceNext,
201 ReplyArrowRight,
202 Rerun,
203 Return,
204 RotateCcw,
205 RotateCw,
206 Scissors,
207 Screen,
208 SelectAll,
209 Send,
210 Server,
211 Settings,
212 ShieldCheck,
213 Shift,
214 Slash,
215 Sliders,
216 Space,
217 Sparkle,
218 Split,
219 SplitAlt,
220 SquareDot,
221 SquareMinus,
222 SquarePlus,
223 Star,
224 StarFilled,
225 Stop,
226 Supermaven,
227 SupermavenDisabled,
228 SupermavenError,
229 SupermavenInit,
230 SwatchBook,
231 SweepAi,
232 SweepAiDisabled,
233 SweepAiDown,
234 SweepAiError,
235 SweepAiUp,
236 Tab,
237 Terminal,
238 TerminalAlt,
239 TerminalGhost,
240 TextSnippet,
241 TextThread,
242 ThinkingMode,
243 ThinkingModeOff,
244 Thread,
245 ThreadFromSummary,
246 ThumbsDown,
247 ThumbsUp,
248 TodoComplete,
249 TodoPending,
250 TodoProgress,
251 ToolCopy,
252 ToolDeleteFile,
253 ToolDiagnostics,
254 ToolFolder,
255 ToolHammer,
256 ToolNotification,
257 ToolPencil,
258 ToolRead,
259 ToolRegex,
260 ToolSearch,
261 ToolTerminal,
262 ToolThink,
263 ToolWeb,
264 Trash,
265 Triangle,
266 TriangleRight,
267 Undo,
268 Unpin,
269 UserCheck,
270 UserGroup,
271 UserRoundPen,
272 Warning,
273 WholeWord,
274 WorkspaceNavClosed,
275 WorkspaceNavOpen,
276 XCircle,
277 XCircleFilled,
278 ZedAgent,
279 ZedAgentTwo,
280 ZedAssistant,
281 ZedPredict,
282 ZedPredictDisabled,
283 ZedPredictDown,
284 ZedPredictError,
285 ZedPredictUp,
286 ZedSrcCustom,
287 ZedSrcExtension,
288 ZedXCopilot,
289}
290
291impl IconName {
292 /// Returns the path to this icon.
293 pub fn path(&self) -> Arc<str> {
294 let file_stem: &'static str = self.into();
295 format!("icons/{file_stem}.svg").into()
296 }
297}