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 Disconnected,
96 Download,
97 EditorAtom,
98 EditorCursor,
99 EditorEmacs,
100 EditorJetBrains,
101 EditorSublime,
102 EditorVsCode,
103 Ellipsis,
104 EllipsisVertical,
105 Envelope,
106 Eraser,
107 Escape,
108 Exit,
109 ExpandDown,
110 ExpandUp,
111 ExpandVertical,
112 Eye,
113 File,
114 FileCode,
115 FileDiff,
116 FileDoc,
117 FileGeneric,
118 FileGit,
119 FileLock,
120 FileMarkdown,
121 FileRust,
122 FileTextFilled,
123 FileTextOutlined,
124 FileToml,
125 FileTree,
126 Filter,
127 Flame,
128 Folder,
129 FolderOpen,
130 FolderSearch,
131 Font,
132 FontSize,
133 FontWeight,
134 ForwardArrow,
135 GenericClose,
136 GenericMaximize,
137 GenericMinimize,
138 GenericRestore,
139 GitBranch,
140 GitBranchAlt,
141 GitBranchPlus,
142 Github,
143 Hash,
144 HistoryRerun,
145 Image,
146 Inception,
147 Indicator,
148 Info,
149 Json,
150 Keyboard,
151 Library,
152 LineHeight,
153 Link,
154 Linux,
155 ListCollapse,
156 ListFilter,
157 ListTodo,
158 ListTree,
159 ListX,
160 LoadCircle,
161 LocationEdit,
162 LockOutlined,
163 MagnifyingGlass,
164 Maximize,
165 Menu,
166 MenuAlt,
167 MenuAltTemp,
168 Mic,
169 MicMute,
170 Minimize,
171 Notepad,
172 Option,
173 PageDown,
174 PageUp,
175 Paperclip,
176 Pencil,
177 PencilUnavailable,
178 Person,
179 Pin,
180 PlayFilled,
181 PlayOutlined,
182 Plus,
183 Power,
184 Public,
185 PullRequest,
186 Quote,
187 Reader,
188 RefreshTitle,
189 Regex,
190 ReplNeutral,
191 Replace,
192 ReplaceAll,
193 ReplaceNext,
194 ReplyArrowRight,
195 Rerun,
196 Return,
197 RotateCcw,
198 RotateCw,
199 Scissors,
200 Screen,
201 SelectAll,
202 Send,
203 Server,
204 Settings,
205 ShieldCheck,
206 Shift,
207 Slash,
208 Sliders,
209 Space,
210 Sparkle,
211 Split,
212 SplitAlt,
213 SquareDot,
214 SquareMinus,
215 SquarePlus,
216 Star,
217 StarFilled,
218 Stop,
219 Supermaven,
220 SupermavenDisabled,
221 SupermavenError,
222 SupermavenInit,
223 SwatchBook,
224 SweepAi,
225 SweepAiDisabled,
226 SweepAiDown,
227 SweepAiError,
228 SweepAiUp,
229 Tab,
230 Terminal,
231 TerminalAlt,
232 TerminalGhost,
233 TextSnippet,
234 TextThread,
235 ThinkingMode,
236 Thread,
237 ThreadFromSummary,
238 ThumbsDown,
239 ThumbsUp,
240 TodoComplete,
241 TodoPending,
242 TodoProgress,
243 ToolCopy,
244 ToolDeleteFile,
245 ToolDiagnostics,
246 ToolFolder,
247 ToolHammer,
248 ToolNotification,
249 ToolPencil,
250 ToolRead,
251 ToolRegex,
252 ToolSearch,
253 ToolTerminal,
254 ToolThink,
255 ToolWeb,
256 Trash,
257 Triangle,
258 TriangleRight,
259 Undo,
260 Unpin,
261 UserCheck,
262 UserGroup,
263 UserRoundPen,
264 Warning,
265 WholeWord,
266 XCircle,
267 XCircleFilled,
268 ZedAgent,
269 ZedAgentTwo,
270 ZedAssistant,
271 ZedPredict,
272 ZedPredictDisabled,
273 ZedPredictDown,
274 ZedPredictError,
275 ZedPredictUp,
276 ZedSrcCustom,
277 ZedSrcExtension,
278 ZedXCopilot,
279}
280
281impl IconName {
282 /// Returns the path to this icon.
283 pub fn path(&self) -> Arc<str> {
284 let file_stem: &'static str = self.into();
285 format!("icons/{file_stem}.svg").into()
286 }
287}