A Rust library inspired by vim-devicons, that provides filetype glyphs (icons) for a wide range of common file formats.
- 🦞 Icon Retrieval: Get file or directory icons based on file name/extension.
- 🦞 Icon Color: Retrieve the color associated with the icon depending on the specified theme.
- 🦞 Filetype Support: Supports a wide range of filetypes and filename conventions (dockerfile, makefile, etc.).
- 🦞 Customizable Themes: Supports both light and dark themes.
cargo add devicons
NOTE: you'll need to use a NerdFont to properly display the icons.
Here’s a simple example of how to use devicons
to retrieve a file icon with the dark theme:
use std::path::Path;
use devicons::{File, Theme, icon_for_file, FileIcon};
fn main() {
// getting the icon from a path with a specified theme
let path = Path::new("Cargo.toml");
let icon = icon_for_file(path, Some(Theme::Dark));
// getting the icon from a string with a specified theme
let icon = icon_for_file("Cargo.toml", Some(Theme::Dark));
// getting the icon from a path with the default theme
let icon = FileIcon::from(path);
// directly getting an icon from a filename
let icon = FileIcon::from("Cargo.toml");
println!("File: {}", path.to_string_lossy());
println!("Icon: {}", icon.icon);
println!("Color: {}", icon.color);
}
You can find more usage examples in the examples
directory. To run them, use:
cargo run --example <example_name>
This project is licensed under the Apache 2.0 License.