From 9ca65b4df67bbda747f2ea270a70442da7411923 Mon Sep 17 00:00:00 2001 From: arookieofc <2128194521@qq.com> Date: Sun, 1 Nov 2026 05:15:12 +0800 Subject: [PATCH] fix(ui): use dedicated icons for Rust, Cargo and ignore files (#616) `.rs`, `Cargo.toml` and `Cargo.lock` used custom badges or the generic lock, and `.gitignore` used the git logo. They now have dedicated Rust, Cargo and Cargo lock icons with dark variants, and `.gitignore` and `.gitignore_global` share the ignored-file icon with the other ignore files. The icons' source and MIT licence are recorded in `THIRD_PARTY_LICENSES.md`. Co-authored-by: a-rookie-of-C-language <186315048+a-rookie-of-C-language@users.noreply.github.com> --- THIRD_PARTY_LICENSES.md | 35 ++++++++++++++++++++++- src/ui/expui/fileTypes/cargo.svg | 8 ++++++ src/ui/expui/fileTypes/cargoLock.svg | 13 +++++++++ src/ui/expui/fileTypes/cargoLock_dark.svg | 13 +++++++++ src/ui/expui/fileTypes/cargo_dark.svg | 8 ++++++ src/ui/expui/fileTypes/rust.svg | 4 +++ src/ui/expui/fileTypes/rust_dark.svg | 4 +++ src/ui/icons.test.tsx | 4 +-- src/ui/icons.tsx | 13 +++++---- src/ui/openidea/fileTypes/cargo.svg | 3 -- src/ui/openidea/fileTypes/cargo_dark.svg | 3 -- src/ui/openidea/fileTypes/rust.svg | 3 -- src/ui/openidea/fileTypes/rust_dark.svg | 3 -- 13 files changed, 93 insertions(+), 21 deletions(-) create mode 100644 src/ui/expui/fileTypes/cargo.svg create mode 100644 src/ui/expui/fileTypes/cargoLock.svg create mode 100644 src/ui/expui/fileTypes/cargoLock_dark.svg create mode 100644 src/ui/expui/fileTypes/cargo_dark.svg create mode 100644 src/ui/expui/fileTypes/rust.svg create mode 100644 src/ui/expui/fileTypes/rust_dark.svg delete mode 100644 src/ui/openidea/fileTypes/cargo.svg delete mode 100644 src/ui/openidea/fileTypes/cargo_dark.svg delete mode 100644 src/ui/openidea/fileTypes/rust.svg delete mode 100644 src/ui/openidea/fileTypes/rust_dark.svg diff --git a/THIRD_PARTY_LICENSES.md b/THIRD_PARTY_LICENSES.md index 6903ad3d..d184ef89 100644 --- a/THIRD_PARTY_LICENSES.md +++ b/THIRD_PARTY_LICENSES.md @@ -27,6 +27,14 @@ icon set, copied unmodified (some renamed) from JetBrains' open-source repositor `fileTypes/hashiCorp`, Apache-2.0); `makefile` (`expui/makefile` → `fileTypes/makefile`, MIT, Copyright (c) 2016 Victor Kropp — full text below). +- [intellij-rust](https://github.com/intellij-rust/intellij-rust) (MIT): + `src/main/resources/icons/expui/rustFile{,_dark}.svg` → + `src/ui/expui/fileTypes/rust{,_dark}.svg`; + `src/main/resources/icons/expui/cargo{,_dark}.svg` and `cargoLock{,_dark}.svg` → + `src/ui/expui/fileTypes/cargo{,_dark}.svg` and `cargoLock{,_dark}.svg`. + Copyright (c) 2015 Aleksey Kladov, Evgeny Kurbatsky, Alexey Kudinkin and contributors; + Copyright (c) 2016 JetBrains. MIT licence, full text below. + At render time `src/ui/icons.tsx` may recolour monochrome icons to `currentColor`. ## JetBrains IntelliJ Platform diff algorithm @@ -43,7 +51,7 @@ from its tests (`LineComparisonUtilTest`, `WordComparisonUtilTest`, JetBrains s.r.o. and contributors. Apache License 2.0 (below). `src/ui/openidea/**` holds OpenIDEA's own file-type icons drawn in the expui style for -languages whose JetBrains icons are not open source (Go, Rust, Ruby, Dart, Lua, Zig, +languages whose JetBrains icons are not open source (Go, Ruby, Dart, Lua, Zig, Svelte, …). Those using the page-with-corner-badge layout (`goMod`, `goWork`, `dotenv`, `readme`, `lock`, `license`) reuse the page outline of the Apache-2.0 expui `fileTypes/h.svg`; that outline is modified from the original by JetBrains. @@ -54,6 +62,31 @@ The lettering in `src-tauri/icons/source/openidea-wordmark*.svg` is outlined fro Inter Tight (Copyright 2022 The Inter Project Authors, SIL Open Font License 1.1, https://github.com/rsms/inter-tight). +### MIT License (Rust and Cargo icons) + +The MIT License (MIT) + +Copyright (c) 2015 Aleksey Kladov, Evgeny Kurbatsky, Alexey Kudinkin and contributors +Copyright (c) 2016 JetBrains + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + ### MIT License (makefile icon) Copyright (c) 2016 Victor Kropp diff --git a/src/ui/expui/fileTypes/cargo.svg b/src/ui/expui/fileTypes/cargo.svg new file mode 100644 index 00000000..c0ff3dca --- /dev/null +++ b/src/ui/expui/fileTypes/cargo.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/ui/expui/fileTypes/cargoLock.svg b/src/ui/expui/fileTypes/cargoLock.svg new file mode 100644 index 00000000..6ca8a0f3 --- /dev/null +++ b/src/ui/expui/fileTypes/cargoLock.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/ui/expui/fileTypes/cargoLock_dark.svg b/src/ui/expui/fileTypes/cargoLock_dark.svg new file mode 100644 index 00000000..51ff219f --- /dev/null +++ b/src/ui/expui/fileTypes/cargoLock_dark.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/ui/expui/fileTypes/cargo_dark.svg b/src/ui/expui/fileTypes/cargo_dark.svg new file mode 100644 index 00000000..2e8280bb --- /dev/null +++ b/src/ui/expui/fileTypes/cargo_dark.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/ui/expui/fileTypes/rust.svg b/src/ui/expui/fileTypes/rust.svg new file mode 100644 index 00000000..2e75852f --- /dev/null +++ b/src/ui/expui/fileTypes/rust.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/ui/expui/fileTypes/rust_dark.svg b/src/ui/expui/fileTypes/rust_dark.svg new file mode 100644 index 00000000..e4ab4540 --- /dev/null +++ b/src/ui/expui/fileTypes/rust_dark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/ui/icons.test.tsx b/src/ui/icons.test.tsx index 72611ce4..484a454a 100644 --- a/src/ui/icons.test.tsx +++ b/src/ui/icons.test.tsx @@ -112,7 +112,7 @@ describe("fileIconName", () => { ["yarn.lock", "file-lock"], ["pnpm-lock.yaml", "file-lock"], ["Cargo.toml", "file-cargo"], - ["Cargo.lock", "file-lock"], + ["Cargo.lock", "file-cargo-lock"], ["poetry.lock", "file-lock"], ["Gemfile", "file-ruby"], ["Gemfile.lock", "file-lock"], @@ -174,7 +174,7 @@ describe("fileIconName", () => { ["config.hcl", "file-hcl"], ["Jenkinsfile", "file-jenkins"], ["BUILD.bazel", "file-bazel"], - [".gitignore", "file-git"], + [".gitignore", "file-ignored"], [".editorconfig", "file-config"], [".env", "file-dotenv"], [".env.example", "file-dotenv"], diff --git a/src/ui/icons.tsx b/src/ui/icons.tsx index 7d5a8e04..796e6b56 100644 --- a/src/ui/icons.tsx +++ b/src/ui/icons.tsx @@ -121,8 +121,9 @@ const ICONS = { "file-go": "openidea/fileTypes/go", "file-gomod": "openidea/fileTypes/goMod", "file-gowork": "openidea/fileTypes/goWork", - "file-rust": "openidea/fileTypes/rust", - "file-cargo": "openidea/fileTypes/cargo", + "file-rust": "fileTypes/rust", + "file-cargo": "fileTypes/cargo", + "file-cargo-lock": "fileTypes/cargoLock", "file-ruby": "openidea/fileTypes/ruby", "file-lua": "openidea/fileTypes/lua", "file-zig": "openidea/fileTypes/zig", @@ -755,9 +756,9 @@ const FILE_NAMES = table({ "file-makefile": "makefile gnumakefile bsdmakefile makefile.am makefile.in kbuild", "file-cmake": "cmakelists.txt cmakecache.txt", "file-perl": "makefile.pl build.pl cpanfile", - "file-git": ".gitignore .gitignore_global .gitattributes .gitmodules .gitconfig .git-blame-ignore-revs .mailmap", + "file-git": ".gitattributes .gitmodules .gitconfig .git-blame-ignore-revs .mailmap", "file-ignored": - ".dockerignore .npmignore .prettierignore .eslintignore .stylelintignore .hgignore .ignore .rgignore " + + ".gitignore .gitignore_global .dockerignore .npmignore .prettierignore .eslintignore .stylelintignore .hgignore .ignore .rgignore " + ".fdignore .helmignore .vscodeignore .gcloudignore .slugignore .cfignore .bzrignore .containerignore", "file-config": ".editorconfig justfile procfile .npmrc .nvmrc .yarnrc .node-version .python-version .ruby-version " + @@ -767,6 +768,7 @@ const FILE_NAMES = table({ "file-lock": "package-lock.json npm-shrinkwrap.json pnpm-lock.yaml bun.lockb deno.lock go.sum go.work.sum " + "package.resolved", "file-cargo": "cargo.toml", + "file-cargo-lock": "cargo.lock", "file-gomod": "go.mod", "file-gowork": "go.work", "file-pyproject": "pyproject.toml", @@ -845,8 +847,7 @@ const EXT_ICONS = table({ "file-config": "ini cfg conf cnf inf reg url desktop service socket timer config", "file-dotenv": "env", "file-lock": "lock lockb", - "file-git": "gitignore", - "file-ignored": "dockerignore", + "file-ignored": "dockerignore gitignore", "file-properties": "properties prefs", "file-font": "ttf otf woff woff2", "file-patch": "patch diff rej", diff --git a/src/ui/openidea/fileTypes/cargo.svg b/src/ui/openidea/fileTypes/cargo.svg deleted file mode 100644 index 66d1b50d..00000000 --- a/src/ui/openidea/fileTypes/cargo.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/ui/openidea/fileTypes/cargo_dark.svg b/src/ui/openidea/fileTypes/cargo_dark.svg deleted file mode 100644 index 0e6d3aa8..00000000 --- a/src/ui/openidea/fileTypes/cargo_dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/ui/openidea/fileTypes/rust.svg b/src/ui/openidea/fileTypes/rust.svg deleted file mode 100644 index a9d64b51..00000000 --- a/src/ui/openidea/fileTypes/rust.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/ui/openidea/fileTypes/rust_dark.svg b/src/ui/openidea/fileTypes/rust_dark.svg deleted file mode 100644 index f0bd410d..00000000 --- a/src/ui/openidea/fileTypes/rust_dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -