From ed8d6854a3c0f4a48285856b7c5bbea57676a32e Mon Sep 17 00:00:00 2001 From: Adam Ratzman Date: Tue, 24 Mar 2026 10:17:53 -0700 Subject: [PATCH 1/3] add file association for apphosts --- extension/package.json | 19 ++++++++++++ extension/resources/aspire-file-icon.svg | 37 ++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 extension/resources/aspire-file-icon.svg diff --git a/extension/package.json b/extension/package.json index 82e0715cded..73369dbd6cc 100644 --- a/extension/package.json +++ b/extension/package.json @@ -39,6 +39,25 @@ "main": "./dist/extension.js", "l10n": "./l10n", "contributes": { + "languages": [ + { + "id": "aspire-apphost", + "filenames": [ + "apphost.cs", + "AppHost.cs", + "apphost.js", + "AppHost.js", + "apphost.java", + "AppHost.java", + "apphost.py", + "AppHost.py" + ], + "icon": { + "light": "./resources/aspire-file-icon.svg", + "dark": "./resources/aspire-file-icon.svg" + } + } + ], "mcpServerDefinitionProviders": [ { "id": "aspire-mcp-server", diff --git a/extension/resources/aspire-file-icon.svg b/extension/resources/aspire-file-icon.svg new file mode 100644 index 00000000000..3fb97ca78e7 --- /dev/null +++ b/extension/resources/aspire-file-icon.svg @@ -0,0 +1,37 @@ + + + + From d4b257f1c7b31f9b6fe79ccfb33fd65061af758d Mon Sep 17 00:00:00 2001 From: Adam Ratzman Date: Tue, 24 Mar 2026 10:18:37 -0700 Subject: [PATCH 2/3] Add Aspire file icons for AppHost files Register a language contribution that associates AppHost.cs, AppHost.js, AppHost.java, and AppHost.py files with the Aspire logo icon in both light and dark themes. Includes both lowercase and PascalCase filename variants for cross-platform case-sensitivity support. Fixes #15533 --- extension/resources/aspire-file-icon-light.svg | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 extension/resources/aspire-file-icon-light.svg diff --git a/extension/resources/aspire-file-icon-light.svg b/extension/resources/aspire-file-icon-light.svg new file mode 100644 index 00000000000..0aa26dcdaa7 --- /dev/null +++ b/extension/resources/aspire-file-icon-light.svg @@ -0,0 +1,8 @@ + + + + + + + + From da0acfe08d67325d7cd38e80897919ba10e932a3 Mon Sep 17 00:00:00 2001 From: Adam Ratzman Date: Tue, 24 Mar 2026 10:29:38 -0700 Subject: [PATCH 3/3] Add Aspire file icon theme for AppHost files Register an icon theme that associates AppHost.cs, AppHost.js, AppHost.java, and AppHost.py files with the Aspire logo icon. The icon theme fileNames matching is case-insensitive. Fixes #15533 --- extension/package.json | 22 ++------- .../resources/aspire-file-icon-light.svg | 8 ---- .../resources/aspire-file-icon-theme.json | 25 ++++++++++ extension/resources/aspire-file-icon.svg | 47 ++++--------------- extension/resources/default-file.svg | 3 ++ extension/resources/default-folder-open.svg | 3 ++ extension/resources/default-folder.svg | 3 ++ 7 files changed, 49 insertions(+), 62 deletions(-) delete mode 100644 extension/resources/aspire-file-icon-light.svg create mode 100644 extension/resources/aspire-file-icon-theme.json create mode 100644 extension/resources/default-file.svg create mode 100644 extension/resources/default-folder-open.svg create mode 100644 extension/resources/default-folder.svg diff --git a/extension/package.json b/extension/package.json index 73369dbd6cc..6b71cd00a08 100644 --- a/extension/package.json +++ b/extension/package.json @@ -39,23 +39,11 @@ "main": "./dist/extension.js", "l10n": "./l10n", "contributes": { - "languages": [ - { - "id": "aspire-apphost", - "filenames": [ - "apphost.cs", - "AppHost.cs", - "apphost.js", - "AppHost.js", - "apphost.java", - "AppHost.java", - "apphost.py", - "AppHost.py" - ], - "icon": { - "light": "./resources/aspire-file-icon.svg", - "dark": "./resources/aspire-file-icon.svg" - } + "iconThemes": [ + { + "id": "aspire-file-icons", + "label": "Aspire", + "path": "./resources/aspire-file-icon-theme.json" } ], "mcpServerDefinitionProviders": [ diff --git a/extension/resources/aspire-file-icon-light.svg b/extension/resources/aspire-file-icon-light.svg deleted file mode 100644 index 0aa26dcdaa7..00000000000 --- a/extension/resources/aspire-file-icon-light.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/extension/resources/aspire-file-icon-theme.json b/extension/resources/aspire-file-icon-theme.json new file mode 100644 index 00000000000..4bd512935af --- /dev/null +++ b/extension/resources/aspire-file-icon-theme.json @@ -0,0 +1,25 @@ +{ + "iconDefinitions": { + "_file": { + "iconPath": "./default-file.svg" + }, + "_folder": { + "iconPath": "./default-folder.svg" + }, + "_folder_open": { + "iconPath": "./default-folder-open.svg" + }, + "aspire": { + "iconPath": "./aspire-file-icon.svg" + } + }, + "file": "_file", + "folder": "_folder", + "folderExpanded": "_folder_open", + "fileNames": { + "apphost.cs": "aspire", + "apphost.js": "aspire", + "apphost.java": "aspire", + "apphost.py": "aspire" + } +} diff --git a/extension/resources/aspire-file-icon.svg b/extension/resources/aspire-file-icon.svg index 3fb97ca78e7..13cabfb8074 100644 --- a/extension/resources/aspire-file-icon.svg +++ b/extension/resources/aspire-file-icon.svg @@ -1,37 +1,10 @@ - - - - + + + + + + + + + + diff --git a/extension/resources/default-file.svg b/extension/resources/default-file.svg new file mode 100644 index 00000000000..c3065b42fcf --- /dev/null +++ b/extension/resources/default-file.svg @@ -0,0 +1,3 @@ + + + diff --git a/extension/resources/default-folder-open.svg b/extension/resources/default-folder-open.svg new file mode 100644 index 00000000000..3aa37812f51 --- /dev/null +++ b/extension/resources/default-folder-open.svg @@ -0,0 +1,3 @@ + + + diff --git a/extension/resources/default-folder.svg b/extension/resources/default-folder.svg new file mode 100644 index 00000000000..ae8fb05bd2b --- /dev/null +++ b/extension/resources/default-folder.svg @@ -0,0 +1,3 @@ + + +