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    AiXAi,
 25    AiZed,
 26    ArrowCircle,
 27    ArrowDown,
 28    ArrowDown10,
 29    ArrowDownFromLine,
 30    ArrowDownRight,
 31    ArrowLeft,
 32    ArrowRight,
 33    ArrowRightLeft,
 34    ArrowUp,
 35    ArrowUpAlt,
 36    ArrowUpFromLine,
 37    ArrowUpRight,
 38    ArrowUpRightAlt,
 39    AtSign,
 40    AudioOff,
 41    AudioOn,
 42    Backspace,
 43    Bell,
 44    BellDot,
 45    BellOff,
 46    BellRing,
 47    Binary,
 48    Blocks,
 49    Bolt,
 50    BoltFilled,
 51    BoltFilledAlt,
 52    Book,
 53    BookCopy,
 54    BookPlus,
 55    Brain,
 56    BugOff,
 57    CaseSensitive,
 58    Check,
 59    CheckDouble,
 60    ChevronDown,
 61    /// This chevron indicates a popover menu.
 62    ChevronDownSmall,
 63    ChevronLeft,
 64    ChevronRight,
 65    ChevronUp,
 66    ChevronUpDown,
 67    Circle,
 68    CircleOff,
 69    CircleHelp,
 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    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    LocationEdit,
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    PlayFilled,
196    Plus,
197    PocketKnife,
198    Power,
199    Public,
200    PullRequest,
201    Quote,
202    RefreshTitle,
203    Regex,
204    ReplNeutral,
205    Replace,
206    ReplaceAll,
207    ReplaceNext,
208    ReplyArrowRight,
209    Rerun,
210    Return,
211    Reveal,
212    RotateCcw,
213    RotateCw,
214    Route,
215    Save,
216    Scissors,
217    Screen,
218    ScrollText,
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    TerminalAlt,
254    TextSnippet,
255    ThumbsDown,
256    ThumbsUp,
257    ToolBulb,
258    ToolCopy,
259    ToolDeleteFile,
260    ToolDiagnostics,
261    ToolFolder,
262    ToolHammer,
263    ToolNotification,
264    ToolPencil,
265    ToolRead,
266    ToolRegex,
267    ToolSearch,
268    ToolTerminal,
269    ToolWeb,
270    Trash,
271    TrashAlt,
272    Triangle,
273    TriangleRight,
274    Undo,
275    Unpin,
276    Update,
277    UserCheck,
278    UserGroup,
279    UserRoundPen,
280    Visible,
281    Wand,
282    Warning,
283    WholeWord,
284    X,
285    XCircle,
286    ZedAssistant,
287    ZedAssistantFilled,
288    ZedBurnMode,
289    ZedBurnModeOn,
290    ZedMcpCustom,
291    ZedMcpExtension,
292    ZedPredict,
293    ZedPredictDisabled,
294    ZedPredictDown,
295    ZedPredictError,
296    ZedPredictUp,
297    ZedXCopilot,
298}
299
300impl IconName {
301    /// Returns the path to this icon.
302    pub fn path(&self) -> Arc<str> {
303        let file_stem: &'static str = self.into();
304        format!("icons/{file_stem}.svg").into()
305    }
306}