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 Tab,
237 Terminal,
238 TerminalAlt,
239 TextSnippet,
240 TextThread,
241 ThinkingMode,
242 ThinkingModeOff,
243 Thread,
244 ThreadFromSummary,
245 ThreadsSidebarLeftClosed,
246 ThreadsSidebarLeftOpen,
247 ThreadsSidebarRightClosed,
248 ThreadsSidebarRightOpen,
249 ThumbsDown,
250 ThumbsUp,
251 TodoComplete,
252 TodoPending,
253 TodoProgress,
254 ToolCopy,
255 ToolDeleteFile,
256 ToolDiagnostics,
257 ToolFolder,
258 ToolHammer,
259 ToolNotification,
260 ToolPencil,
261 ToolSearch,
262 ToolTerminal,
263 ToolThink,
264 ToolWeb,
265 Trash,
266 Triangle,
267 TriangleRight,
268 Undo,
269 Unpin,
270 UserCheck,
271 UserGroup,
272 UserRoundPen,
273 Warning,
274 WholeWord,
275 XCircle,
276 XCircleFilled,
277 ZedAgent,
278 ZedAgentTwo,
279 ZedAssistant,
280 ZedPredict,
281 ZedPredictDisabled,
282 ZedPredictDown,
283 ZedPredictError,
284 ZedPredictUp,
285 ZedSrcCustom,
286 ZedSrcExtension,
287}
288
289impl IconName {
290 /// Returns the path to this icon.
291 pub fn path(&self) -> Arc<str> {
292 let file_stem: &'static str = self.into();
293 format!("icons/{file_stem}.svg").into()
294 }
295}