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    AiGoogle,
 17    AiLmStudio,
 18    AiMistral,
 19    AiOllama,
 20    AiOpenAi,
 21    AiOpenRouter,
 22    AiVZero,
 23    AiZed,
 24    ArrowCircle,
 25    ArrowDown,
 26    ArrowDownFromLine,
 27    ArrowDownRight,
 28    ArrowLeft,
 29    ArrowRight,
 30    ArrowRightLeft,
 31    ArrowUp,
 32    ArrowUpAlt,
 33    ArrowUpFromLine,
 34    ArrowUpRight,
 35    ArrowUpRightAlt,
 36    AtSign,
 37    AudioOff,
 38    AudioOn,
 39    Backspace,
 40    Bell,
 41    BellDot,
 42    BellOff,
 43    BellRing,
 44    Binary,
 45    Blocks,
 46    Bolt,
 47    BoltFilled,
 48    BoltFilledAlt,
 49    Book,
 50    BookCopy,
 51    BookPlus,
 52    Brain,
 53    BugOff,
 54    CaseSensitive,
 55    Check,
 56    CheckDouble,
 57    ChevronDown,
 58    /// This chevron indicates a popover menu.
 59    ChevronDownSmall,
 60    ChevronLeft,
 61    ChevronRight,
 62    ChevronUp,
 63    ChevronUpDown,
 64    Circle,
 65    CircleOff,
 66    CircleHelp,
 67    Clipboard,
 68    Close,
 69    Cloud,
 70    Code,
 71    Cog,
 72    Command,
 73    Context,
 74    Control,
 75    Copilot,
 76    CopilotDisabled,
 77    CopilotError,
 78    CopilotInit,
 79    Copy,
 80    CountdownTimer,
 81    Crosshair,
 82    CursorIBeam,
 83    Dash,
 84    DatabaseZap,
 85    Debug,
 86    DebugBreakpoint,
 87    DebugContinue,
 88    DebugDisabledBreakpoint,
 89    DebugDisabledLogBreakpoint,
 90    DebugDetach,
 91    DebugIgnoreBreakpoints,
 92    DebugLogBreakpoint,
 93    DebugPause,
 94    DebugRestart,
 95    DebugStepBack,
 96    DebugStepInto,
 97    DebugStepOut,
 98    DebugStepOver,
 99    DebugStop,
100    Delete,
101    Diff,
102    Disconnected,
103    DocumentText,
104    Download,
105    Ellipsis,
106    EllipsisVertical,
107    Envelope,
108    Eraser,
109    Escape,
110    Exit,
111    ExpandDown,
112    ExpandUp,
113    ExpandVertical,
114    ExternalLink,
115    Eye,
116    File,
117    FileCode,
118    FileCreate,
119    FileDelete,
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    LockOutlined,
167    LspDebug,
168    LspRestart,
169    LspStop,
170    MagnifyingGlass,
171    MailOpen,
172    Maximize,
173    Menu,
174    MenuAlt,
175    MessageBubbles,
176    Mic,
177    MicMute,
178    Microscope,
179    Minimize,
180    Option,
181    PageDown,
182    PageUp,
183    PanelLeft,
184    PanelRight,
185    Pencil,
186    Person,
187    PersonCircle,
188    PhoneIncoming,
189    Pin,
190    Play,
191    PlayAlt,
192    PlayBug,
193    Plus,
194    PocketKnife,
195    Power,
196    Public,
197    PullRequest,
198    Quote,
199    RefreshTitle,
200    Regex,
201    ReplNeutral,
202    Replace,
203    ReplaceAll,
204    ReplaceNext,
205    ReplyArrowRight,
206    Rerun,
207    Return,
208    Reveal,
209    RotateCcw,
210    RotateCw,
211    Route,
212    Save,
213    Scissors,
214    Screen,
215    SearchCode,
216    SearchSelection,
217    SelectAll,
218    Send,
219    Server,
220    Settings,
221    SettingsAlt,
222    Shift,
223    Slash,
224    SlashSquare,
225    Sliders,
226    SlidersVertical,
227    Snip,
228    Space,
229    Sparkle,
230    SparkleAlt,
231    SparkleFilled,
232    Spinner,
233    Split,
234    SquareDot,
235    SquareMinus,
236    SquarePlus,
237    Star,
238    StarFilled,
239    Stop,
240    StopFilled,
241    Strikethrough,
242    Supermaven,
243    SupermavenDisabled,
244    SupermavenError,
245    SupermavenInit,
246    SwatchBook,
247    Tab,
248    Terminal,
249    TextSnippet,
250    ThumbsDown,
251    ThumbsUp,
252    Trash,
253    TrashAlt,
254    Triangle,
255    TriangleRight,
256    Undo,
257    Unpin,
258    Update,
259    UserCheck,
260    UserGroup,
261    UserRoundPen,
262    Visible,
263    Wand,
264    Warning,
265    WholeWord,
266    X,
267    XCircle,
268    ZedAssistant,
269    ZedAssistantFilled,
270    ZedBurnMode,
271    ZedBurnModeOn,
272    ZedMcpCustom,
273    ZedMcpExtension,
274    ZedPredict,
275    ZedPredictDisabled,
276    ZedPredictDown,
277    ZedPredictError,
278    ZedPredictUp,
279    ZedXCopilot,
280}
281
282impl IconName {
283    /// Returns the path to this icon.
284    pub fn path(&self) -> Arc<str> {
285        let file_stem: &'static str = self.into();
286        format!("icons/{file_stem}.svg").into()
287    }
288}