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