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 AiGoogle,
17 AiLmStudio,
18 AiMistral,
19 AiOllama,
20 AiOpenAi,
21 AiOpenRouter,
22 AiVZero,
23 AiXAi,
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 Trash,
257 TrashAlt,
258 Triangle,
259 TriangleRight,
260 Undo,
261 Unpin,
262 Update,
263 UserCheck,
264 UserGroup,
265 UserRoundPen,
266 Visible,
267 Wand,
268 Warning,
269 WholeWord,
270 X,
271 XCircle,
272 ZedAssistant,
273 ZedAssistantFilled,
274 ZedBurnMode,
275 ZedBurnModeOn,
276 ZedMcpCustom,
277 ZedMcpExtension,
278 ZedPredict,
279 ZedPredictDisabled,
280 ZedPredictDown,
281 ZedPredictError,
282 ZedPredictUp,
283 ZedXCopilot,
284}
285
286impl IconName {
287 /// Returns the path to this icon.
288 pub fn path(&self) -> Arc<str> {
289 let file_stem: &'static str = self.into();
290 format!("icons/{file_stem}.svg").into()
291 }
292}