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