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 GitMergeConflict,
151 Github,
152 Hash,
153 HistoryRerun,
154 Image,
155 Inception,
156 Indicator,
157 Info,
158 Json,
159 Keyboard,
160 Library,
161 LineHeight,
162 Link,
163 Linux,
164 ListCollapse,
165 ListFilter,
166 ListTodo,
167 ListTree,
168 ListX,
169 LoadCircle,
170 LocationEdit,
171 LockOutlined,
172 MagnifyingGlass,
173 Maximize,
174 Menu,
175 MenuAlt,
176 MenuAltTemp,
177 Mic,
178 MicMute,
179 Minimize,
180 NewThread,
181 Notepad,
182 OpenFolder,
183 Option,
184 PageDown,
185 PageUp,
186 Paperclip,
187 Pencil,
188 PencilUnavailable,
189 Person,
190 Pin,
191 PlayFilled,
192 PlayOutlined,
193 Plus,
194 Power,
195 Public,
196 PullRequest,
197 QueueMessage,
198 Quote,
199 Reader,
200 RefreshTitle,
201 Regex,
202 ReplNeutral,
203 Replace,
204 ReplaceAll,
205 ReplaceNext,
206 ReplyArrowRight,
207 Rerun,
208 Return,
209 RotateCcw,
210 RotateCw,
211 Scissors,
212 Screen,
213 SelectAll,
214 Send,
215 Server,
216 Settings,
217 ShieldCheck,
218 Shift,
219 Slash,
220 Sliders,
221 Space,
222 Sparkle,
223 Split,
224 SplitAlt,
225 SquareDot,
226 SquareMinus,
227 SquarePlus,
228 Star,
229 StarFilled,
230 Stop,
231 SwatchBook,
232 SweepAi,
233 SweepAiDisabled,
234 SweepAiDown,
235 SweepAiError,
236 SweepAiUp,
237 Tab,
238 Terminal,
239 TerminalAlt,
240 TerminalGhost,
241 TextSnippet,
242 TextThread,
243 ThinkingMode,
244 ThinkingModeOff,
245 Thread,
246 ThreadFromSummary,
247 ThreadsSidebarLeftClosed,
248 ThreadsSidebarLeftOpen,
249 ThreadsSidebarRightClosed,
250 ThreadsSidebarRightOpen,
251 ThumbsDown,
252 ThumbsUp,
253 TodoComplete,
254 TodoPending,
255 TodoProgress,
256 ToolCopy,
257 ToolDeleteFile,
258 ToolDiagnostics,
259 ToolFolder,
260 ToolHammer,
261 ToolNotification,
262 ToolPencil,
263 ToolRead,
264 ToolRegex,
265 ToolSearch,
266 ToolTerminal,
267 ToolThink,
268 ToolWeb,
269 Trash,
270 Triangle,
271 TriangleRight,
272 Undo,
273 Unpin,
274 UserCheck,
275 UserGroup,
276 UserRoundPen,
277 Warning,
278 WholeWord,
279 XCircle,
280 XCircleFilled,
281 ZedAgent,
282 ZedAgentTwo,
283 ZedAssistant,
284 ZedPredict,
285 ZedPredictDisabled,
286 ZedPredictDown,
287 ZedPredictError,
288 ZedPredictUp,
289 ZedSrcCustom,
290 ZedSrcExtension,
291 ZedXCopilot,
292}
293
294impl IconName {
295 /// Returns the path to this icon.
296 pub fn path(&self) -> Arc<str> {
297 let file_stem: &'static str = self.into();
298 format!("icons/{file_stem}.svg").into()
299 }
300}