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 AtSign,
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 ChevronDownUp,
58 ChevronLeft,
59 ChevronRight,
60 ChevronUp,
61 ChevronUpDown,
62 Circle,
63 CircleHelp,
64 Close,
65 CloudDownload,
66 Code,
67 Cog,
68 Command,
69 Control,
70 Copilot,
71 CopilotDisabled,
72 CopilotError,
73 CopilotInit,
74 Copy,
75 CountdownTimer,
76 Crosshair,
77 CursorIBeam,
78 Dash,
79 DatabaseZap,
80 Debug,
81 DebugBreakpoint,
82 DebugContinue,
83 DebugDisabledBreakpoint,
84 DebugDisabledLogBreakpoint,
85 DebugDetach,
86 DebugIgnoreBreakpoints,
87 DebugLogBreakpoint,
88 DebugPause,
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 Link,
150 ListCollapse,
151 ListFilter,
152 ListTodo,
153 ListTree,
154 ListX,
155 LoadCircle,
156 LocationEdit,
157 LockOutlined,
158 MagnifyingGlass,
159 Maximize,
160 Menu,
161 MenuAlt,
162 MenuAltTemp,
163 Mic,
164 MicMute,
165 Minimize,
166 Notepad,
167 Option,
168 PageDown,
169 PageUp,
170 Paperclip,
171 Pencil,
172 PencilUnavailable,
173 Person,
174 Pin,
175 PlayOutlined,
176 PlayFilled,
177 Plus,
178 Power,
179 Public,
180 PullRequest,
181 Quote,
182 Reader,
183 RefreshTitle,
184 Regex,
185 ReplNeutral,
186 Replace,
187 ReplaceAll,
188 ReplaceNext,
189 ReplyArrowRight,
190 Rerun,
191 Return,
192 RotateCcw,
193 RotateCw,
194 Scissors,
195 Screen,
196 SelectAll,
197 Send,
198 Server,
199 Settings,
200 ShieldCheck,
201 Shift,
202 Slash,
203 Sliders,
204 Space,
205 Sparkle,
206 Split,
207 SplitAlt,
208 SquareDot,
209 SquareMinus,
210 SquarePlus,
211 Star,
212 StarFilled,
213 Stop,
214 Supermaven,
215 SupermavenDisabled,
216 SupermavenError,
217 SupermavenInit,
218 SwatchBook,
219 SweepAi,
220 Tab,
221 Terminal,
222 TerminalAlt,
223 TerminalGhost,
224 TextSnippet,
225 TextThread,
226 Thread,
227 ThreadFromSummary,
228 ThumbsDown,
229 ThumbsUp,
230 TodoComplete,
231 TodoPending,
232 TodoProgress,
233 ToolCopy,
234 ToolDeleteFile,
235 ToolDiagnostics,
236 ToolFolder,
237 ToolHammer,
238 ToolNotification,
239 ToolPencil,
240 ToolRead,
241 ToolRegex,
242 ToolSearch,
243 ToolTerminal,
244 ToolThink,
245 ToolWeb,
246 Trash,
247 Triangle,
248 TriangleRight,
249 Undo,
250 Unpin,
251 UserCheck,
252 UserGroup,
253 UserRoundPen,
254 Warning,
255 WholeWord,
256 XCircle,
257 XCircleFilled,
258 ZedAgent,
259 ZedAssistant,
260 ZedBurnMode,
261 ZedBurnModeOn,
262 ZedSrcCustom,
263 ZedSrcExtension,
264 ZedPredict,
265 ZedPredictDisabled,
266 ZedPredictDown,
267 ZedPredictError,
268 ZedPredictUp,
269 ZedXCopilot,
270 Linux,
271}
272
273impl IconName {
274 /// Returns the path to this icon.
275 pub fn path(&self) -> Arc<str> {
276 let file_stem: &'static str = self.into();
277 format!("icons/{file_stem}.svg").into()
278 }
279}