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