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