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 AiClaude,
15 AiDeepSeek,
16 AiEdit,
17 AiGemini,
18 AiGoogle,
19 AiLmStudio,
20 AiMistral,
21 AiOllama,
22 AiOpenAi,
23 AiOpenAiCompat,
24 AiOpenRouter,
25 AiVZero,
26 AiXAi,
27 AiZed,
28 ArrowCircle,
29 ArrowDown,
30 ArrowDown10,
31 ArrowDownRight,
32 ArrowLeft,
33 ArrowRight,
34 ArrowRightLeft,
35 ArrowUp,
36 ArrowUpRight,
37 Attach,
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 DebugStepBack,
89 DebugStepInto,
90 DebugStepOut,
91 DebugStepOver,
92 Diff,
93 Disconnected,
94 Download,
95 EditorAtom,
96 EditorCursor,
97 EditorEmacs,
98 EditorJetBrains,
99 EditorSublime,
100 EditorVsCode,
101 Ellipsis,
102 EllipsisVertical,
103 Envelope,
104 Eraser,
105 Escape,
106 Exit,
107 ExpandDown,
108 ExpandUp,
109 ExpandVertical,
110 Eye,
111 File,
112 FileCode,
113 FileDiff,
114 FileDoc,
115 FileGeneric,
116 FileGit,
117 FileLock,
118 FileMarkdown,
119 FileRust,
120 FileTextFilled,
121 FileTextOutlined,
122 FileToml,
123 FileTree,
124 Filter,
125 Flame,
126 Folder,
127 FolderOpen,
128 FolderSearch,
129 Font,
130 FontSize,
131 FontWeight,
132 ForwardArrow,
133 GenericClose,
134 GenericMaximize,
135 GenericMinimize,
136 GenericRestore,
137 GitBranch,
138 GitBranchAlt,
139 Github,
140 Hash,
141 HistoryRerun,
142 Image,
143 Indicator,
144 Info,
145 Json,
146 Keyboard,
147 Library,
148 LineHeight,
149 Link,
150 ListCollapse,
151 ListFilter,
152 ListTodo,
153 ListTree,
154 ListX,
155 LoadCircle,
156 LocationEdit,
157 LockOutlined,
158 MagnifyingGlass,
159 Maximize,
160 Menu,
161 MenuAlt,
162 MenuAltTemp,
163 Mic,
164 MicMute,
165 Minimize,
166 Notepad,
167 Option,
168 PageDown,
169 PageUp,
170 Paperclip,
171 Pencil,
172 PencilUnavailable,
173 Person,
174 Pin,
175 PlayOutlined,
176 PlayFilled,
177 Plus,
178 Power,
179 Public,
180 PullRequest,
181 Quote,
182 Reader,
183 RefreshTitle,
184 Regex,
185 ReplNeutral,
186 Replace,
187 ReplaceAll,
188 ReplaceNext,
189 ReplyArrowRight,
190 Rerun,
191 Return,
192 RotateCcw,
193 RotateCw,
194 Scissors,
195 Screen,
196 SelectAll,
197 Send,
198 Server,
199 Settings,
200 ShieldCheck,
201 Shift,
202 Slash,
203 Sliders,
204 Space,
205 Sparkle,
206 Split,
207 SplitAlt,
208 SquareDot,
209 SquareMinus,
210 SquarePlus,
211 Star,
212 StarFilled,
213 Stop,
214 Supermaven,
215 SupermavenDisabled,
216 SupermavenError,
217 SupermavenInit,
218 SwatchBook,
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}