From 661f185f9ffc6ebb4462d08f62522983196723a4 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 19 May 2026 22:33:07 -0400 Subject: [PATCH] Add file icon for Ballerina (.bal) files (#56799) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Adds a `ballerina` icon key to the default icon theme, mapping the `.bal` file suffix to a new SVG under `assets/icons/file_icons/ballerina.svg`. - Icon is the monochrome Ballerina mark from the official WSO2 VS Code extension, rescaled to Zed's 16×16 viewBox. ## Icon source / license The SVG is adapted from `ballerina-inverse.svg` in [wso2/vscode-extensions](https://github.com/wso2/vscode-extensions), which is Apache-2.0 licensed. The original 400×400 geometry is preserved via the existing `translate`/`scale` transform; only the viewBox and fill were normalized to match the convention used by the other icons in `assets/icons/file_icons/`. ## Test plan - [x] `cargo build --release --bin zed` - [x] Opened a folder containing `.bal` files and confirmed the icon renders in the project panel and tabs. - [x] Alphabetical ordering preserved in both `FILE_SUFFIXES_BY_ICON_KEY` and `FILE_ICONS`. Release Notes: - N/A --------- Co-authored-by: Danilo Leal Co-authored-by: Danilo Leal <67129314+danilo-leal@users.noreply.github.com> --- assets/icons/file_icons/ballerina.svg | 8 ++++++++ crates/theme/src/icon_theme.rs | 2 ++ 2 files changed, 10 insertions(+) create mode 100644 assets/icons/file_icons/ballerina.svg diff --git a/assets/icons/file_icons/ballerina.svg b/assets/icons/file_icons/ballerina.svg new file mode 100644 index 00000000000..4a8287252c6 --- /dev/null +++ b/assets/icons/file_icons/ballerina.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/crates/theme/src/icon_theme.rs b/crates/theme/src/icon_theme.rs index a1d65dddc46..5303f2952e8 100644 --- a/crates/theme/src/icon_theme.rs +++ b/crates/theme/src/icon_theme.rs @@ -80,6 +80,7 @@ const FILE_SUFFIXES_BY_ICON_KEY: &[(&str, &[&str])] = &[ ], ), ("backup", &["bak"]), + ("ballerina", &["bal"]), ("bicep", &["bicep"]), ("bun", &["lockb"]), ("c", &["c", "h"]), @@ -312,6 +313,7 @@ const FILE_SUFFIXES_BY_ICON_KEY: &[(&str, &[&str])] = &[ const FILE_ICONS: &[(&str, &str)] = &[ ("astro", "icons/file_icons/astro.svg"), ("audio", "icons/file_icons/audio.svg"), + ("ballerina", "icons/file_icons/ballerina.svg"), ("bicep", "icons/file_icons/file.svg"), ("bun", "icons/file_icons/bun.svg"), ("c", "icons/file_icons/c.svg"),