13 releases (4 breaking)
0.6.11 | Oct 15, 2024 |
---|---|
0.6.10 | Oct 15, 2024 |
0.5.4 | Sep 29, 2024 |
0.4.4 | Sep 29, 2024 |
0.1.0 | Sep 9, 2024 |
#181 in Filesystem
1,239 downloads per month
Used in 7 crates
(6 directly)
205KB
9K
SLoC
π¦ rust-devicons
A Rust library inspired by vim-devicons, that provides filetype glyphs (icons) for a wide range of common file formats.
Features
- π¦ 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.
Installation
cargo add devicons
NOTE: you'll need to use a NerdFont to properly display the icons.
Usage
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);
}
Running the Examples
You can find more usage examples in the examples
directory. To run them, use:
cargo run --example <example_name>
License
This project is licensed under the Apache 2.0 License.