From d3a36b4d9f99c3da06583d04e2b492ab4e6eb0e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= Date: Fri, 26 Feb 2021 11:34:23 +0100 Subject: [PATCH 1/2] Initial prototype of the eos icons extension for VSCode --- .gitignore | 5 + .vscode/launch.json | 13 ++ .vscodeignore | 3 + README.md | 13 +- create_icon_theme.py | 61 ++++++ package.json | 39 ++++ select_product_theme.png | Bin 0 -> 14381 bytes yarn.lock | 454 +++++++++++++++++++++++++++++++++++++++ 8 files changed, 587 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 .vscode/launch.json create mode 100644 .vscodeignore create mode 100755 create_icon_theme.py create mode 100644 package.json create mode 100644 select_product_theme.png create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..be3c58c --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules +vscode-eos-icons-*.vsix +.log +theme +.env3 diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..fc17bff --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,13 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Launch Extension", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": ["--extensionDevelopmentPath=${workspaceRoot}"], + "stopOnEntry": false + } + ] +} diff --git a/.vscodeignore b/.vscodeignore new file mode 100644 index 0000000..b69b0bb --- /dev/null +++ b/.vscodeignore @@ -0,0 +1,3 @@ +**/* +!theme/eos-icons.woff +!theme/eos-icons-product-icon-theme.json diff --git a/README.md b/README.md index 363138e..1c7960d 100644 --- a/README.md +++ b/README.md @@ -1 +1,12 @@ -# eos-icons-vsc \ No newline at end of file +# EOS Icons for VSCode + +This extension allows you to replace VSCode's default icons with those from the +[EOS icon set](https://eos-icons.com/). + + +## Usage + +Install the extension from the Marketplace, execute the command `Preferences: +Product Icon Theme` and select the entry `EOS Icons` in the presented drop down: + +![select_product_theme.png](select_product_theme.png) diff --git a/create_icon_theme.py b/create_icon_theme.py new file mode 100755 index 0000000..f65712e --- /dev/null +++ b/create_icon_theme.py @@ -0,0 +1,61 @@ +#!/usr/bin/python3 + +import shutil +import json +from os.path import dirname, join + +from fontTools.ttLib import TTFont + +dest = join(dirname(__file__), "./theme/eos-icons.woff") +shutil.copyfile( + join( + dirname(__file__), "./node_modules/eos-icons/dist/fonts/eos-icons.woff" + ), + dest, +) + +code_points = {} + +with TTFont(dest, 0, ignoreDecompileErrors=True) as ttf: + for x in ttf["cmap"].tables: + for (code, name) in x.cmap.items(): + code_points[name] = code + + +icon_to_glyph_mapping = [ + ["accounts-view-bar-icon", "account_circle"], + ["callhierarchy-incoming", "call_received"], + ["callhierarchy-outgoing", "call_made"], + ["callstack-view-session", "bug_report"], + ["comments-view-icon", "comment"], + ["debug-configure", "settings_applications"], + ["extensions-manage", "settings_applications"], + ["settings-view-bar-icon", "settings_applications"], +] + +eos_icons_theme = { + "fonts": [ + { + "id": "eos-icons", + "src": [ + { + "path": "./eos-icons.woff", + "format": "woff", + }, + ], + "weight": "normal", + "style": "normal", + }, + ], + "iconDefinitions": {}, +} + +for (icon_name, glyph_name) in icon_to_glyph_mapping: + eos_icons_theme["iconDefinitions"][icon_name] = { + "fontCharacter": chr(code_points[glyph_name]), + } + +with open( + join(dirname(__file__), "theme/eos-icons-product-icon-theme.json"), "w" +) as product_icon_file: + product_icon_file.write(json.dumps(eos_icons_theme, indent=2)) diff --git a/package.json b/package.json new file mode 100644 index 0000000..fdb52ce --- /dev/null +++ b/package.json @@ -0,0 +1,39 @@ +{ + "name": "eos-icons-vscode", + "version": "0.0.1", + "publisher": "EOS-uiux-Solutions", + "license": "MIT", + "description": "The iconic and open source font made for EOS Design System for VSCode.", + "keywords": ["iconic", "font", "eos", "icons", "product-icon"], + "author": "SUSE UX/UI team", + "engines": { + "vscode": ">=1.53.0" + }, + "scripts": { + "cleandeps": "rm -rf node_modules .env3", + "package": "vsce package --yarn", + "prepare": "python3 -m venv .env3 && . .env3/bin/activate && pip install fonttools", + "vscode:prepublish": ". .env3/bin/activate && ./create_icon_theme.py" + }, + "contributes": { + "productIconThemes": [ + { + "id": "eos-icons", + "label": "EOS Icons", + "path": "./theme/eos-icons-product-icon-theme.json" + } + ] + }, + "devDependencies": { + "eos-icons": "^4.12.0", + "vsce": ">=1.85" + }, + "homepage": "https://eos-icons.com/", + "bugs": { + "url": "https://github.com/EOS-uiux-Solutions/eos-icons-vscode/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/EOS-uiux-Solutions/eos-icons-vscode.git" + } +} diff --git a/select_product_theme.png b/select_product_theme.png new file mode 100644 index 0000000000000000000000000000000000000000..c90eec5c5485e409863bc46e120ebe8f1ebe7151 GIT binary patch literal 14381 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.85: + version "1.85.0" + resolved "https://registry.yarnpkg.com/vsce/-/vsce-1.85.0.tgz#37c72dd508ec7a94600b6c96b5f614f8211c2716" + integrity sha512-YVFwjXWvHRwk75mm3iL4Wr3auCdbBPTv2amtLf97ccqH0hkt0ZVBddu7iOs4HSEbSr9xiiaZwQHUsqMm6Ks0ag== + dependencies: + azure-devops-node-api "^7.2.0" + chalk "^2.4.2" + cheerio "^1.0.0-rc.1" + commander "^6.1.0" + denodeify "^1.2.1" + glob "^7.0.6" + leven "^3.1.0" + lodash "^4.17.15" + markdown-it "^10.0.0" + mime "^1.3.4" + minimatch "^3.0.3" + osenv "^0.1.3" + parse-semver "^1.1.1" + read "^1.0.7" + semver "^5.1.0" + tmp "0.0.29" + typed-rest-client "1.2.0" + url-join "^1.1.0" + yauzl "^2.3.1" + yazl "^2.2.2" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +yauzl@^2.3.1: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yazl@^2.2.2: + version "2.5.1" + resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" + integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== + dependencies: + buffer-crc32 "~0.2.3" From d92842bc8c4f7be8f3a233904039cb97b6215210 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20=C4=8Cerm=C3=A1k?= Date: Tue, 2 Mar 2021 08:39:52 +0100 Subject: [PATCH 2/2] Add development documentation section to the README --- README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/README.md b/README.md index 1c7960d..c374691 100644 --- a/README.md +++ b/README.md @@ -10,3 +10,26 @@ Install the extension from the Marketplace, execute the command `Preferences: Product Icon Theme` and select the entry `EOS Icons` in the presented drop down: ![select_product_theme.png](select_product_theme.png) + + +## Development + +To build the extension yourself, you will need the following packages installed: + +- nodejs +- yarn +- python + +and execute the following commands to setup your development environment: +```ShellSession +$ yarn install +$ yarn run prepare +``` + +To build the extension itself, execute `yarn run package`. + +To try the extension out in VSCode, open this folder in VSCode and press `` +to launch a debugging session. This will create a fresh VSCode instance with the +extension pre-installed and loaded. Note that sometimes the icon theme is not +properly loaded on launch, in that case switch the Product Icon Theme to the +default and back to EOS Icons.