icons.rs

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