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    ArrowDown10,
 27    ArrowDownFromLine,
 28    ArrowDownRight,
 29    ArrowLeft,
 30    ArrowRight,
 31    ArrowRightLeft,
 32    ArrowUp,
 33    ArrowUpAlt,
 34    ArrowUpFromLine,
 35    ArrowUpRight,
 36    ArrowUpRightAlt,
 37    AtSign,
 38    AudioOff,
 39    AudioOn,
 40    Backspace,
 41    Bell,
 42    BellDot,
 43    BellOff,
 44    BellRing,
 45    Binary,
 46    Blocks,
 47    Bolt,
 48    BoltFilled,
 49    BoltFilledAlt,
 50    Book,
 51    BookCopy,
 52    BookPlus,
 53    Brain,
 54    BugOff,
 55    CaseSensitive,
 56    Check,
 57    CheckDouble,
 58    ChevronDown,
 59    /// This chevron indicates a popover menu.
 60    ChevronDownSmall,
 61    ChevronLeft,
 62    ChevronRight,
 63    ChevronUp,
 64    ChevronUpDown,
 65    Circle,
 66    CircleOff,
 67    CircleHelp,
 68    Clipboard,
 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    FileDelete,
121    FileDiff,
122    FileDoc,
123    FileGeneric,
124    FileGit,
125    FileLock,
126    FileRust,
127    FileSearch,
128    FileText,
129    FileToml,
130    FileTree,
131    Filter,
132    Flame,
133    Folder,
134    FolderOpen,
135    FolderX,
136    Font,
137    FontSize,
138    FontWeight,
139    ForwardArrow,
140    Function,
141    GenericClose,
142    GenericMaximize,
143    GenericMinimize,
144    GenericRestore,
145    GitBranch,
146    GitBranchSmall,
147    Github,
148    Globe,
149    Hammer,
150    Hash,
151    HistoryRerun,
152    Image,
153    Indicator,
154    Info,
155    InlayHint,
156    Keyboard,
157    Layout,
158    Library,
159    LightBulb,
160    LineHeight,
161    Link,
162    ListCollapse,
163    ListTodo,
164    ListTree,
165    ListX,
166    LoadCircle,
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    Plus,
195    PocketKnife,
196    Power,
197    Public,
198    PullRequest,
199    Quote,
200    RefreshTitle,
201    Regex,
202    ReplNeutral,
203    Replace,
204    ReplaceAll,
205    ReplaceNext,
206    ReplyArrowRight,
207    Rerun,
208    Return,
209    Reveal,
210    RotateCcw,
211    RotateCw,
212    Route,
213    Save,
214    Scissors,
215    Screen,
216    ScrollText,
217    SearchCode,
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    TextSnippet,
253    ThumbsDown,
254    ThumbsUp,
255    Trash,
256    TrashAlt,
257    Triangle,
258    TriangleRight,
259    Undo,
260    Unpin,
261    Update,
262    UserCheck,
263    UserGroup,
264    UserRoundPen,
265    Visible,
266    Wand,
267    Warning,
268    WholeWord,
269    X,
270    XCircle,
271    ZedAssistant,
272    ZedAssistantFilled,
273    ZedBurnMode,
274    ZedBurnModeOn,
275    ZedMcpCustom,
276    ZedMcpExtension,
277    ZedPredict,
278    ZedPredictDisabled,
279    ZedPredictDown,
280    ZedPredictError,
281    ZedPredictUp,
282    ZedXCopilot,
283}
284
285impl IconName {
286    /// Returns the path to this icon.
287    pub fn path(&self) -> Arc<str> {
288        let file_stem: &'static str = self.into();
289        format!("icons/{file_stem}.svg").into()
290    }
291}