From 392461f853805c73fcb7390f8b2dc7c0c828b63b Mon Sep 17 00:00:00 2001 From: Ron <45816308+rjaegers@users.noreply.github.com> Date: Sat, 8 Mar 2025 14:45:00 +0000 Subject: [PATCH 1/4] feat: add name demangling for C++ symbols --- package.json | 2 ++ src/coverage.ts | 4 +++- yarn.lock | 10 ++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 125dc59e52..1dfee480b6 100644 --- a/package.json +++ b/package.json @@ -3757,6 +3757,7 @@ "@types/chai": "^4.2.15", "@types/chai-as-promised": "^7.1.3", "@types/chai-string": "^1.4.2", + "@types/demangler-js": "^0.1.0", "@types/js-yaml": "^4.0.0", "@types/json5": "~0.0.30", "@types/lodash": "4.14.202", @@ -3811,6 +3812,7 @@ "@types/string.prototype.matchall": "^4.0.4", "ajv": "^7.1.0", "chokidar": "^3.5.1", + "demangler-js": "^0.1.7", "handlebars": "^4.7.7", "iconv-lite": "^0.6.2", "js-yaml": "^4.0.0", diff --git a/src/coverage.ts b/src/coverage.ts index 786c6ff25d..9eb8113a92 100644 --- a/src/coverage.ts +++ b/src/coverage.ts @@ -2,6 +2,7 @@ import * as vscode from 'vscode'; import { lcovParser } from "@friedemannsommer/lcov-parser"; import * as nls from 'vscode-nls'; import * as logging from '@cmt/logging'; +import { demangle } from 'demangler-js'; nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })(); const localize: nls.LocalizeFunc = nls.loadMessageBundle(); @@ -60,7 +61,8 @@ export async function handleCoverageInfoFiles(run: vscode.TestRun, coverageInfoF const declarations: vscode.DeclarationCoverage[] = []; for (const declaration of section.functions.details) { - declarations.push(new vscode.DeclarationCoverage(declaration.name, declaration.hit, + const demangledName = demangle(declaration.name); + declarations.push(new vscode.DeclarationCoverage(demangledName, declaration.hit, new vscode.Position(declaration.line - 1, 0))); } diff --git a/yarn.lock b/yarn.lock index f3cf9a5173..b8928392d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -547,6 +547,11 @@ resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/chai/-/chai-4.3.1.tgz" integrity sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ== +"@types/demangler-js@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@types/demangler-js/-/demangler-js-0.1.0.tgz#938a0f160ece42b3cf8d46f3b0ab1218f46821e6" + integrity sha512-b3a1aKbmgqzzNYS/98p+bUqRi8NSL8KD0m2M9xt3vvZTjVRJ3XqgozQtOe6QEd69GmvojUuYbJugYVpTAuAT8A== + "@types/estree@^1.0.5": version "1.0.6" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" @@ -2232,6 +2237,11 @@ delegates@^1.0.0: resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/delegates/-/delegates-1.0.0.tgz" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +demangler-js@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/demangler-js/-/demangler-js-0.1.7.tgz#42454730da691746e35c5e8861900192be1cbc4d" + integrity sha512-USj/QFE6HPt1k/wwdpuRHgpHGfZpyiuJfBi/INnU5EEh0xHQnd/4NfvIjcKZ3YhlQiIBFXk+UGLKMKWlWtx2dw== + deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/deprecation/-/deprecation-2.3.1.tgz" From 6f4c8b48334fcf3454903b535a4ac809630764ef Mon Sep 17 00:00:00 2001 From: Ron <45816308+rjaegers@users.noreply.github.com> Date: Sat, 8 Mar 2025 15:55:37 +0100 Subject: [PATCH 2/4] docs: update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27589efbaa..a9673f4c12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # What's New? +## 1.21 + +Improvements: + +- Add name de-mangling for C++ symbols in the Test Explorer view when running tests with coverage. [#4340](https://github.com/microsoft/vscode-cmake-tools/pull/4340) [@rjaegers](https://github.com/rjaegers) + ## 1.20.53 Improvements: From ad5a41f352209bda2125cd6516b52591b337fd6b Mon Sep 17 00:00:00 2001 From: Ron <45816308+rjaegers@users.noreply.github.com> Date: Sat, 8 Mar 2025 15:01:57 +0000 Subject: [PATCH 3/4] chore: revert changes in yarn.lock as per CONTRIBUTING guide --- yarn.lock | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index b8928392d7..f3cf9a5173 100644 --- a/yarn.lock +++ b/yarn.lock @@ -547,11 +547,6 @@ resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/chai/-/chai-4.3.1.tgz" integrity sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ== -"@types/demangler-js@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@types/demangler-js/-/demangler-js-0.1.0.tgz#938a0f160ece42b3cf8d46f3b0ab1218f46821e6" - integrity sha512-b3a1aKbmgqzzNYS/98p+bUqRi8NSL8KD0m2M9xt3vvZTjVRJ3XqgozQtOe6QEd69GmvojUuYbJugYVpTAuAT8A== - "@types/estree@^1.0.5": version "1.0.6" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" @@ -2237,11 +2232,6 @@ delegates@^1.0.0: resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/delegates/-/delegates-1.0.0.tgz" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -demangler-js@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/demangler-js/-/demangler-js-0.1.7.tgz#42454730da691746e35c5e8861900192be1cbc4d" - integrity sha512-USj/QFE6HPt1k/wwdpuRHgpHGfZpyiuJfBi/INnU5EEh0xHQnd/4NfvIjcKZ3YhlQiIBFXk+UGLKMKWlWtx2dw== - deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/deprecation/-/deprecation-2.3.1.tgz" From 7583c767f3885976774d0e43590b9ee5d2443961 Mon Sep 17 00:00:00 2001 From: Garrett Campbell Date: Fri, 11 Apr 2025 12:10:42 -0400 Subject: [PATCH 4/4] updating yarn.lock --- yarn.lock | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/yarn.lock b/yarn.lock index f3cf9a5173..1268eda8fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -547,6 +547,11 @@ resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/chai/-/chai-4.3.1.tgz" integrity sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ== +"@types/demangler-js@^0.1.0": + version "0.1.0" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/demangler-js/-/demangler-js-0.1.0.tgz#938a0f160ece42b3cf8d46f3b0ab1218f46821e6" + integrity sha1-k4oPFg7OQrPPjUbzsKsSGPRoIeY= + "@types/estree@^1.0.5": version "1.0.6" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" @@ -2232,6 +2237,11 @@ delegates@^1.0.0: resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/delegates/-/delegates-1.0.0.tgz" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= +demangler-js@^0.1.7: + version "0.1.7" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/demangler-js/-/demangler-js-0.1.7.tgz#42454730da691746e35c5e8861900192be1cbc4d" + integrity sha1-QkVHMNppF0bjXF6IYZABkr4cvE0= + deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/deprecation/-/deprecation-2.3.1.tgz"