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 AiAnthropic,
13 AiBedrock,
14 AiClaude,
15 AiDeepSeek,
16 AiEdit,
17 AiGemini,
18 AiGoogle,
19 AiLmStudio,
20 AiMistral,
21 AiOllama,
22 AiOpenAi,
23 AiOpenAiCompat,
24 AiOpenCode,
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 BoxOpen,
57 CaseSensitive,
58 Chat,
59 Check,
60 CheckDouble,
61 ChevronDown,
62 ChevronDownUp,
63 ChevronLeft,
64 ChevronRight,
65 ChevronUp,
66 ChevronUpDown,
67 Circle,
68 CircleHelp,
69 Close,
70 CloudDownload,
71 Code,
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 Envelope,
109 Eraser,
110 Escape,
111 Exit,
112 ExpandDown,
113 ExpandUp,
114 ExpandVertical,
115 Eye,
116 EyeOff,
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 Focus,
135 Folder,
136 FolderOpen,
137 FolderPlus,
138 FolderSearch,
139 Font,
140 FontSize,
141 FontWeight,
142 ForwardArrow,
143 ForwardArrowUp,
144 GenericClose,
145 GenericMaximize,
146 GenericMinimize,
147 GenericRestore,
148 GitBranch,
149 GitBranchAlt,
150 GitBranchPlus,
151 GitCommit,
152 GitGraph,
153 GitMergeConflict,
154 GitWorktree,
155 Github,
156 Hash,
157 HistoryRerun,
158 Image,
159 Inception,
160 Indicator,
161 Info,
162 Json,
163 Keyboard,
164 Library,
165 LineHeight,
166 Link,
167 Linux,
168 ListCollapse,
169 ListFilter,
170 ListTodo,
171 ListTree,
172 ListX,
173 LoadCircle,
174 LocationEdit,
175 LockOutlined,
176 MagnifyingGlass,
177 Maximize,
178 Menu,
179 MenuAltTemp,
180 Mic,
181 MicMute,
182 Minimize,
183 NewThread,
184 Notepad,
185 OpenFolder,
186 Option,
187 PageDown,
188 PageUp,
189 Paperclip,
190 Pencil,
191 PencilUnavailable,
192 Person,
193 Pin,
194 PlayFilled,
195 PlayOutlined,
196 Plus,
197 Power,
198 Public,
199 PullRequest,
200 QueueMessage,
201 Quote,
202 Reader,
203 RefreshTitle,
204 Regex,
205 ReplNeutral,
206 Replace,
207 ReplaceAll,
208 ReplaceNext,
209 ReplyArrowRight,
210 Rerun,
211 Return,
212 RotateCcw,
213 RotateCw,
214 Scissors,
215 Screen,
216 SelectAll,
217 Send,
218 Server,
219 Settings,
220 Shift,
221 SignalHigh,
222 SignalLow,
223 SignalMedium,
224 Slash,
225 Sliders,
226 Space,
227 Sparkle,
228 Split,
229 SplitAlt,
230 SquareDot,
231 SquareMinus,
232 SquarePlus,
233 Star,
234 StarFilled,
235 Stop,
236 SweepAi,
237 SweepAiDisabled,
238 SweepAiDown,
239 SweepAiError,
240 SweepAiUp,
241 Tab,
242 Terminal,
243 TerminalAlt,
244 TextSnippet,
245 TextThread,
246 ThinkingMode,
247 ThinkingModeOff,
248 Thread,
249 ThreadFromSummary,
250 ThreadsSidebarLeftClosed,
251 ThreadsSidebarLeftOpen,
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 ToolSearch,
265 ToolTerminal,
266 ToolThink,
267 ToolWeb,
268 Trash,
269 Triangle,
270 TriangleRight,
271 Undo,
272 Unpin,
273 UserCheck,
274 UserGroup,
275 UserRoundPen,
276 Warning,
277 WholeWord,
278 XCircle,
279 XCircleFilled,
280 ZedAgent,
281 ZedAgentTwo,
282 ZedAssistant,
283 ZedPredict,
284 ZedPredictDisabled,
285 ZedPredictDown,
286 ZedPredictError,
287 ZedPredictUp,
288 ZedSrcCustom,
289 ZedSrcExtension,
290}
291
292impl IconName {
293 /// Returns the path to this icon.
294 pub fn path(&self) -> Arc<str> {
295 let file_stem: &'static str = self.into();
296 format!("icons/{file_stem}.svg").into()
297 }
298}