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