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 NewThread,
180 Notepad,
181 OpenFolder,
182 Option,
183 PageDown,
184 PageUp,
185 Paperclip,
186 Pencil,
187 PencilUnavailable,
188 Person,
189 Pin,
190 PlayFilled,
191 PlayOutlined,
192 Plus,
193 Power,
194 Public,
195 PullRequest,
196 QueueMessage,
197 Quote,
198 Reader,
199 RefreshTitle,
200 Regex,
201 ReplNeutral,
202 Replace,
203 ReplaceAll,
204 ReplaceNext,
205 ReplyArrowRight,
206 Rerun,
207 Return,
208 RotateCcw,
209 RotateCw,
210 Scissors,
211 Screen,
212 SelectAll,
213 Send,
214 Server,
215 Settings,
216 ShieldCheck,
217 Shift,
218 Slash,
219 Sliders,
220 Space,
221 Sparkle,
222 Split,
223 SplitAlt,
224 SquareDot,
225 SquareMinus,
226 SquarePlus,
227 Star,
228 StarFilled,
229 Stop,
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}