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