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