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