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 AiBedrock,
13 AiClaude,
14 AiDeepSeek,
15 AiEdit,
16 AiGemini,
17 AiGoogle,
18 AiLmStudio,
19 AiMistral,
20 AiOllama,
21 AiOpenAi,
22 AiOpenAiCompat,
23 AiOpenRouter,
24 AiVZero,
25 AiXAi,
26 AiZed,
27 ArrowCircle,
28 ArrowDown,
29 ArrowDown10,
30 ArrowDownRight,
31 ArrowLeft,
32 ArrowRight,
33 ArrowRightLeft,
34 ArrowUp,
35 ArrowUpRight,
36 Attach,
37 AtSign,
38 AudioOff,
39 AudioOn,
40 Backspace,
41 Bell,
42 BellDot,
43 BellOff,
44 BellRing,
45 Binary,
46 Blocks,
47 BoltOutlined,
48 BoltFilled,
49 Book,
50 BookCopy,
51 CaseSensitive,
52 Chat,
53 Check,
54 CheckDouble,
55 ChevronDown,
56 ChevronDownUp,
57 ChevronLeft,
58 ChevronRight,
59 ChevronUp,
60 ChevronUpDown,
61 Circle,
62 CircleHelp,
63 Close,
64 CloudDownload,
65 Code,
66 Cog,
67 Command,
68 Control,
69 Copilot,
70 CopilotDisabled,
71 CopilotError,
72 CopilotInit,
73 Copy,
74 CountdownTimer,
75 Crosshair,
76 CursorIBeam,
77 Dash,
78 DatabaseZap,
79 Debug,
80 DebugBreakpoint,
81 DebugContinue,
82 DebugDisabledBreakpoint,
83 DebugDisabledLogBreakpoint,
84 DebugDetach,
85 DebugIgnoreBreakpoints,
86 DebugLogBreakpoint,
87 DebugPause,
88 DebugStepInto,
89 DebugStepOut,
90 DebugStepOver,
91 Diff,
92 Disconnected,
93 Download,
94 EditorAtom,
95 EditorCursor,
96 EditorEmacs,
97 EditorJetBrains,
98 EditorSublime,
99 EditorVsCode,
100 Ellipsis,
101 EllipsisVertical,
102 Envelope,
103 Eraser,
104 Escape,
105 Exit,
106 ExpandDown,
107 ExpandUp,
108 ExpandVertical,
109 Eye,
110 File,
111 FileCode,
112 FileDiff,
113 FileDoc,
114 FileGeneric,
115 FileGit,
116 FileLock,
117 FileMarkdown,
118 FileRust,
119 FileTextFilled,
120 FileTextOutlined,
121 FileToml,
122 FileTree,
123 Filter,
124 Flame,
125 Folder,
126 FolderOpen,
127 FolderSearch,
128 Font,
129 FontSize,
130 FontWeight,
131 ForwardArrow,
132 GenericClose,
133 GenericMaximize,
134 GenericMinimize,
135 GenericRestore,
136 GitBranch,
137 GitBranchAlt,
138 Github,
139 Hash,
140 HistoryRerun,
141 Image,
142 Indicator,
143 Info,
144 Json,
145 Keyboard,
146 Library,
147 LineHeight,
148 Link,
149 ListCollapse,
150 ListFilter,
151 ListTodo,
152 ListTree,
153 ListX,
154 LoadCircle,
155 LocationEdit,
156 LockOutlined,
157 MagnifyingGlass,
158 Maximize,
159 Menu,
160 MenuAlt,
161 MenuAltTemp,
162 Mic,
163 MicMute,
164 Minimize,
165 Notepad,
166 Option,
167 PageDown,
168 PageUp,
169 Paperclip,
170 Pencil,
171 PencilUnavailable,
172 Person,
173 Pin,
174 PlayOutlined,
175 PlayFilled,
176 Plus,
177 Power,
178 Public,
179 PullRequest,
180 Quote,
181 Reader,
182 RefreshTitle,
183 Regex,
184 ReplNeutral,
185 Replace,
186 ReplaceAll,
187 ReplaceNext,
188 ReplyArrowRight,
189 Rerun,
190 Return,
191 RotateCcw,
192 RotateCw,
193 Scissors,
194 Screen,
195 SelectAll,
196 Send,
197 Server,
198 Settings,
199 ShieldCheck,
200 Shift,
201 Slash,
202 Sliders,
203 Space,
204 Sparkle,
205 Split,
206 SplitAlt,
207 SquareDot,
208 SquareMinus,
209 SquarePlus,
210 Star,
211 StarFilled,
212 Stop,
213 Supermaven,
214 SupermavenDisabled,
215 SupermavenError,
216 SupermavenInit,
217 SwatchBook,
218 SweepAi,
219 Tab,
220 Terminal,
221 TerminalAlt,
222 TerminalGhost,
223 TextSnippet,
224 TextThread,
225 Thread,
226 ThreadFromSummary,
227 ThumbsDown,
228 ThumbsUp,
229 TodoComplete,
230 TodoPending,
231 TodoProgress,
232 ToolCopy,
233 ToolDeleteFile,
234 ToolDiagnostics,
235 ToolFolder,
236 ToolHammer,
237 ToolNotification,
238 ToolPencil,
239 ToolRead,
240 ToolRegex,
241 ToolSearch,
242 ToolTerminal,
243 ToolThink,
244 ToolWeb,
245 Trash,
246 Triangle,
247 TriangleRight,
248 Undo,
249 Unpin,
250 UserCheck,
251 UserGroup,
252 UserRoundPen,
253 Warning,
254 WholeWord,
255 XCircle,
256 XCircleFilled,
257 ZedAgent,
258 ZedAssistant,
259 ZedBurnMode,
260 ZedBurnModeOn,
261 ZedSrcCustom,
262 ZedSrcExtension,
263 ZedPredict,
264 ZedPredictDisabled,
265 ZedPredictDown,
266 ZedPredictError,
267 ZedPredictUp,
268 ZedXCopilot,
269 Linux,
270}
271
272impl IconName {
273 /// Returns the path to this icon.
274 pub fn path(&self) -> Arc<str> {
275 let file_stem: &'static str = self.into();
276 format!("icons/{file_stem}.svg").into()
277 }
278}