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