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    Clipboard,
 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    Eraser,
111    Escape,
112    Exit,
113    ExpandDown,
114    ExpandUp,
115    ExpandVertical,
116    ExternalLink,
117    Eye,
118    File,
119    FileCode,
120    FileCreate,
121    FileDelete,
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    LockOutlined,
169    LspDebug,
170    LspRestart,
171    LspStop,
172    MagnifyingGlass,
173    MailOpen,
174    Maximize,
175    Menu,
176    MenuAlt,
177    MessageBubbles,
178    Mic,
179    MicMute,
180    Microscope,
181    Minimize,
182    Option,
183    PageDown,
184    PageUp,
185    PanelLeft,
186    PanelRight,
187    Pencil,
188    Person,
189    PersonCircle,
190    PhoneIncoming,
191    Pin,
192    Play,
193    PlayAlt,
194    PlayBug,
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    SearchCode,
219    SearchSelection,
220    SelectAll,
221    Send,
222    Server,
223    Settings,
224    SettingsAlt,
225    Shift,
226    Slash,
227    SlashSquare,
228    Sliders,
229    SlidersVertical,
230    Snip,
231    Space,
232    Sparkle,
233    SparkleAlt,
234    SparkleFilled,
235    Spinner,
236    Split,
237    SplitAlt,
238    SquareDot,
239    SquareMinus,
240    SquarePlus,
241    Star,
242    StarFilled,
243    Stop,
244    StopFilled,
245    Strikethrough,
246    Supermaven,
247    SupermavenDisabled,
248    SupermavenError,
249    SupermavenInit,
250    SwatchBook,
251    Tab,
252    Terminal,
253    TextSnippet,
254    ThumbsDown,
255    ThumbsUp,
256    ToolBulb,
257    ToolFolder,
258    ToolHammer,
259    ToolPencil,
260    ToolRegex,
261    ToolSearch,
262    ToolTerminal,
263    ToolWeb,
264    Trash,
265    TrashAlt,
266    Triangle,
267    TriangleRight,
268    Undo,
269    Unpin,
270    Update,
271    UserCheck,
272    UserGroup,
273    UserRoundPen,
274    Visible,
275    Wand,
276    Warning,
277    WholeWord,
278    X,
279    XCircle,
280    ZedAssistant,
281    ZedAssistantFilled,
282    ZedBurnMode,
283    ZedBurnModeOn,
284    ZedMcpCustom,
285    ZedMcpExtension,
286    ZedPredict,
287    ZedPredictDisabled,
288    ZedPredictDown,
289    ZedPredictError,
290    ZedPredictUp,
291    ZedXCopilot,
292}
293
294impl IconName {
295    /// Returns the path to this icon.
296    pub fn path(&self) -> Arc<str> {
297        let file_stem: &'static str = self.into();
298        format!("icons/{file_stem}.svg").into()
299    }
300}