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