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 AiDeepSeek,
15 AiEdit,
16 AiGemini,
17 AiGoogle,
18 AiLmStudio,
19 AiMistral,
20 AiOllama,
21 AiOpenAi,
22 AiOpenRouter,
23 AiVZero,
24 AiZed,
25 ArrowCircle,
26 ArrowDown,
27 ArrowDown10,
28 ArrowDownFromLine,
29 ArrowDownRight,
30 ArrowLeft,
31 ArrowRight,
32 ArrowRightLeft,
33 ArrowUp,
34 ArrowUpAlt,
35 ArrowUpFromLine,
36 ArrowUpRight,
37 ArrowUpRightAlt,
38 AtSign,
39 AudioOff,
40 AudioOn,
41 Backspace,
42 Bell,
43 BellDot,
44 BellOff,
45 BellRing,
46 Binary,
47 Blocks,
48 Bolt,
49 BoltFilled,
50 BoltFilledAlt,
51 Book,
52 BookCopy,
53 BookPlus,
54 Brain,
55 BugOff,
56 CaseSensitive,
57 Check,
58 CheckDouble,
59 ChevronDown,
60 /// This chevron indicates a popover menu.
61 ChevronDownSmall,
62 ChevronLeft,
63 ChevronRight,
64 ChevronUp,
65 ChevronUpDown,
66 Circle,
67 CircleOff,
68 CircleHelp,
69 Clipboard,
70 Close,
71 Cloud,
72 Code,
73 Cog,
74 Command,
75 Context,
76 Control,
77 Copilot,
78 CopilotDisabled,
79 CopilotError,
80 CopilotInit,
81 Copy,
82 CountdownTimer,
83 Crosshair,
84 CursorIBeam,
85 Dash,
86 DatabaseZap,
87 Debug,
88 DebugBreakpoint,
89 DebugContinue,
90 DebugDisabledBreakpoint,
91 DebugDisabledLogBreakpoint,
92 DebugDetach,
93 DebugIgnoreBreakpoints,
94 DebugLogBreakpoint,
95 DebugPause,
96 DebugRestart,
97 DebugStepBack,
98 DebugStepInto,
99 DebugStepOut,
100 DebugStepOver,
101 DebugStop,
102 Delete,
103 Diff,
104 Disconnected,
105 DocumentText,
106 Download,
107 Ellipsis,
108 EllipsisVertical,
109 Envelope,
110 Eraser,
111 Escape,
112 Exit,
113 ExpandDown,
114 ExpandUp,
115 ExpandVertical,
116 ExternalLink,
117 Eye,
118 File,
119 FileCode,
120 FileCreate,
121 FileDelete,
122 FileDiff,
123 FileDoc,
124 FileGeneric,
125 FileGit,
126 FileLock,
127 FileRust,
128 FileSearch,
129 FileText,
130 FileToml,
131 FileTree,
132 Filter,
133 Flame,
134 Folder,
135 FolderOpen,
136 FolderX,
137 Font,
138 FontSize,
139 FontWeight,
140 ForwardArrow,
141 Function,
142 GenericClose,
143 GenericMaximize,
144 GenericMinimize,
145 GenericRestore,
146 GitBranch,
147 GitBranchSmall,
148 Github,
149 Globe,
150 Hammer,
151 Hash,
152 HistoryRerun,
153 Image,
154 Indicator,
155 Info,
156 InlayHint,
157 Keyboard,
158 Layout,
159 Library,
160 LightBulb,
161 LineHeight,
162 Link,
163 ListCollapse,
164 ListTodo,
165 ListTree,
166 ListX,
167 LoadCircle,
168 LockOutlined,
169 LspDebug,
170 LspRestart,
171 LspStop,
172 MagnifyingGlass,
173 MailOpen,
174 Maximize,
175 Menu,
176 MenuAlt,
177 MessageBubbles,
178 Mic,
179 MicMute,
180 Microscope,
181 Minimize,
182 Option,
183 PageDown,
184 PageUp,
185 PanelLeft,
186 PanelRight,
187 Pencil,
188 Person,
189 PersonCircle,
190 PhoneIncoming,
191 Pin,
192 Play,
193 PlayAlt,
194 PlayBug,
195 Plus,
196 PocketKnife,
197 Power,
198 Public,
199 PullRequest,
200 Quote,
201 RefreshTitle,
202 Regex,
203 ReplNeutral,
204 Replace,
205 ReplaceAll,
206 ReplaceNext,
207 ReplyArrowRight,
208 Rerun,
209 Return,
210 Reveal,
211 RotateCcw,
212 RotateCw,
213 Route,
214 Save,
215 Scissors,
216 Screen,
217 ScrollText,
218 SearchCode,
219 SearchSelection,
220 SelectAll,
221 Send,
222 Server,
223 Settings,
224 SettingsAlt,
225 Shift,
226 Slash,
227 SlashSquare,
228 Sliders,
229 SlidersVertical,
230 Snip,
231 Space,
232 Sparkle,
233 SparkleAlt,
234 SparkleFilled,
235 Spinner,
236 Split,
237 SplitAlt,
238 SquareDot,
239 SquareMinus,
240 SquarePlus,
241 Star,
242 StarFilled,
243 Stop,
244 StopFilled,
245 Strikethrough,
246 Supermaven,
247 SupermavenDisabled,
248 SupermavenError,
249 SupermavenInit,
250 SwatchBook,
251 Tab,
252 Terminal,
253 TextSnippet,
254 ThumbsDown,
255 ThumbsUp,
256 ToolBulb,
257 ToolFolder,
258 ToolHammer,
259 ToolPencil,
260 ToolRegex,
261 ToolSearch,
262 ToolTerminal,
263 ToolWeb,
264 Trash,
265 TrashAlt,
266 Triangle,
267 TriangleRight,
268 Undo,
269 Unpin,
270 Update,
271 UserCheck,
272 UserGroup,
273 UserRoundPen,
274 Visible,
275 Wand,
276 Warning,
277 WholeWord,
278 X,
279 XCircle,
280 ZedAssistant,
281 ZedAssistantFilled,
282 ZedBurnMode,
283 ZedBurnModeOn,
284 ZedMcpCustom,
285 ZedMcpExtension,
286 ZedPredict,
287 ZedPredictDisabled,
288 ZedPredictDown,
289 ZedPredictError,
290 ZedPredictUp,
291 ZedXCopilot,
292}
293
294impl IconName {
295 /// Returns the path to this icon.
296 pub fn path(&self) -> Arc<str> {
297 let file_stem: &'static str = self.into();
298 format!("icons/{file_stem}.svg").into()
299 }
300}