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