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