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