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