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