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 Folder,
135 FolderOpen,
136 FolderPlus,
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 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 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 ThinkingMode,
241 ThinkingModeOff,
242 Thread,
243 ThreadFromSummary,
244 ThreadImport,
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}