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 Ai,
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 AiOpenRouter,
25 AiVZero,
26 AiXAi,
27 AiZed,
28 ArrowCircle,
29 ArrowDown,
30 ArrowDown10,
31 ArrowDownRight,
32 ArrowLeft,
33 ArrowRight,
34 ArrowRightLeft,
35 ArrowUp,
36 ArrowUpRight,
37 Attach,
38 Audio,
39 AudioOff,
40 AudioOn,
41 Backspace,
42 Bell,
43 BellDot,
44 BellOff,
45 BellRing,
46 Binary,
47 Blocks,
48 BoltOutlined,
49 BoltFilled,
50 Book,
51 BookCopy,
52 CaseSensitive,
53 Chat,
54 Check,
55 CheckDouble,
56 ChevronDown,
57 ChevronLeft,
58 ChevronRight,
59 ChevronUp,
60 ChevronUpDown,
61 Circle,
62 CircleHelp,
63 Close,
64 CloudDownload,
65 Code,
66 Cog,
67 Command,
68 Control,
69 Copilot,
70 CopilotDisabled,
71 CopilotError,
72 CopilotInit,
73 Copy,
74 CountdownTimer,
75 Crosshair,
76 CursorIBeam,
77 Dash,
78 DatabaseZap,
79 Debug,
80 DebugBreakpoint,
81 DebugContinue,
82 DebugDisabledBreakpoint,
83 DebugDisabledLogBreakpoint,
84 DebugDetach,
85 DebugIgnoreBreakpoints,
86 DebugLogBreakpoint,
87 DebugPause,
88 DebugStepBack,
89 DebugStepInto,
90 DebugStepOut,
91 DebugStepOver,
92 Diff,
93 Disconnected,
94 Download,
95 EditorAtom,
96 EditorCursor,
97 EditorEmacs,
98 EditorJetBrains,
99 EditorSublime,
100 EditorVsCode,
101 Ellipsis,
102 EllipsisVertical,
103 Envelope,
104 Eraser,
105 Escape,
106 Exit,
107 ExpandDown,
108 ExpandUp,
109 ExpandVertical,
110 Eye,
111 File,
112 FileCode,
113 FileDiff,
114 FileDoc,
115 FileGeneric,
116 FileGit,
117 FileLock,
118 FileMarkdown,
119 FileRust,
120 FileTextFilled,
121 FileTextOutlined,
122 FileToml,
123 FileTree,
124 Filter,
125 Flame,
126 Folder,
127 FolderOpen,
128 FolderSearch,
129 Font,
130 FontSize,
131 FontWeight,
132 ForwardArrow,
133 GenericClose,
134 GenericMaximize,
135 GenericMinimize,
136 GenericRestore,
137 GitBranch,
138 GitBranchAlt,
139 Github,
140 Hash,
141 HistoryRerun,
142 Image,
143 Indicator,
144 Info,
145 Json,
146 Keyboard,
147 Library,
148 LineHeight,
149 ListCollapse,
150 ListFilter,
151 ListTodo,
152 ListTree,
153 ListX,
154 LoadCircle,
155 LocationEdit,
156 LockOutlined,
157 MagnifyingGlass,
158 Maximize,
159 Menu,
160 MenuAlt,
161 MenuAltTemp,
162 Mic,
163 MicMute,
164 Minimize,
165 Notepad,
166 Option,
167 PageDown,
168 PageUp,
169 Pencil,
170 PencilUnavailable,
171 Person,
172 Pin,
173 PlayOutlined,
174 PlayFilled,
175 Plus,
176 Power,
177 Public,
178 PullRequest,
179 Quote,
180 Reader,
181 RefreshTitle,
182 Regex,
183 ReplNeutral,
184 Replace,
185 ReplaceAll,
186 ReplaceNext,
187 ReplyArrowRight,
188 Rerun,
189 Return,
190 RotateCcw,
191 RotateCw,
192 Scissors,
193 Screen,
194 SelectAll,
195 Send,
196 Server,
197 Settings,
198 ShieldCheck,
199 Shift,
200 Slash,
201 Sliders,
202 Space,
203 Sparkle,
204 Split,
205 SplitAlt,
206 SquareDot,
207 SquareMinus,
208 SquarePlus,
209 Star,
210 StarFilled,
211 Stop,
212 Supermaven,
213 SupermavenDisabled,
214 SupermavenError,
215 SupermavenInit,
216 SwatchBook,
217 Tab,
218 Terminal,
219 TerminalAlt,
220 TerminalGhost,
221 TextSnippet,
222 TextThread,
223 Thread,
224 ThreadFromSummary,
225 ThumbsDown,
226 ThumbsUp,
227 TodoComplete,
228 TodoPending,
229 TodoProgress,
230 ToolCopy,
231 ToolDeleteFile,
232 ToolDiagnostics,
233 ToolFolder,
234 ToolHammer,
235 ToolNotification,
236 ToolPencil,
237 ToolRead,
238 ToolRegex,
239 ToolSearch,
240 ToolTerminal,
241 ToolThink,
242 ToolWeb,
243 Trash,
244 Triangle,
245 TriangleRight,
246 Undo,
247 Unpin,
248 UserCheck,
249 UserGroup,
250 UserRoundPen,
251 Warning,
252 WholeWord,
253 XCircle,
254 XCircleFilled,
255 ZedAgent,
256 ZedAssistant,
257 ZedBurnMode,
258 ZedBurnModeOn,
259 ZedMcpCustom,
260 ZedMcpExtension,
261 ZedPredict,
262 ZedPredictDisabled,
263 ZedPredictDown,
264 ZedPredictError,
265 ZedPredictUp,
266 ZedXCopilot,
267 Linux,
268}
269
270impl IconName {
271 /// Returns the path to this icon.
272 pub fn path(&self) -> Arc<str> {
273 let file_stem: &'static str = self.into();
274 format!("icons/{file_stem}.svg").into()
275 }
276}