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