From b713f4ecad3c6db182094bf6e8d71a53243ed1ff Mon Sep 17 00:00:00 2001 From: Mike Jones Date: Fri, 23 Jan 2026 10:54:03 -0800 Subject: [PATCH] Update articles on calculating code metrics (#14913) * Update articles on calculating code metrics * Added screenshot * Update article on working with code metrics * Correct indentation to restore proper numbering --------- Co-authored-by: Dennis Rea --- .../how-to-generate-code-metrics-data.md | 26 ++++++++++++-- .../visualstudio/code-metrics-window.png | Bin 0 -> 21814 bytes .../working-with-code-metrics-data.md | 33 ++++++++++++++++-- 3 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 docs/code-quality/media/visualstudio/code-metrics-window.png diff --git a/docs/code-quality/how-to-generate-code-metrics-data.md b/docs/code-quality/how-to-generate-code-metrics-data.md index f19122a8989..41e1101a497 100644 --- a/docs/code-quality/how-to-generate-code-metrics-data.md +++ b/docs/code-quality/how-to-generate-code-metrics-data.md @@ -19,7 +19,7 @@ You can generate code metrics data in three ways: - By enabling [.NET code-quality analyzers](#net-code-quality-analyzers-code-metrics-rules) and enabling the four code metrics (maintainability) rules it contains. -- By choosing the [**Analyze** > **Calculate Code Metrics**](#calculate-code-metrics-menu-command) menu command within Visual Studio. +- By choosing the command or button to analyze code metrics in Visual Studio. Results are displayed in the Code Metrics window. - From the [command line](#command-line-code-metrics) for C# and Visual Basic projects. @@ -60,10 +60,29 @@ You can configure the thresholds at which the code metrics rules fire. ``` -## Calculate Code Metrics menu command +## Calculate Code Metrics -Generate code metrics for one or all of your open projects in the IDE by using the **Analyze** > **Calculate Code Metrics** menu. +Generate code metrics for one or all of your open projects in the IDE by using the Code Metrics window. +::: moniker range="visualstudio" +### Generate code metrics for a solution or project + +You can generate code metrics results for an entire solution or project using the following method: + +1. In **Solution Explorer**, set the scope of results to either a solution or project by selecting either the solution or project. + +1. From the menu bar, select **View** > **Other Windows** > **Code Metrics**. + + The Code Metrics Results window opens. + +1. In the **Code Metrics Results** window, select the **Calculate Code Metrics for Solution** button. + + The results are generated. To view the results details, expand the tree in the **Hierarchy** column. + + ![Screenshot of the Code Metrics window.](../code-quality/media/visualstudio/code-metrics-window.png) +::: moniker-end + +::: moniker range="vs-2022" ### Generate code metrics results for an entire solution You can generate code metrics results for an entire solution in any of the following ways: @@ -83,6 +102,7 @@ The results are generated and the **Code Metrics Results** window is displayed. 1. From the menu bar, select **Analyze** > **Calculate Code Metrics** > **For Selected Project(s)**. The results are generated and the **Code Metrics Results** window is displayed. To view the results details, expand the tree in the **Hierarchy**. +::: moniker-end ## Command-line code metrics diff --git a/docs/code-quality/media/visualstudio/code-metrics-window.png b/docs/code-quality/media/visualstudio/code-metrics-window.png new file mode 100644 index 0000000000000000000000000000000000000000..fc5015a03d7a3637751a1a0bfd48495a4ca0298a GIT binary patch literal 21814 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 literal 0 HcmV?d00001 diff --git a/docs/code-quality/working-with-code-metrics-data.md b/docs/code-quality/working-with-code-metrics-data.md index c41a8643455..951788d65c7 100644 --- a/docs/code-quality/working-with-code-metrics-data.md +++ b/docs/code-quality/working-with-code-metrics-data.md @@ -1,6 +1,6 @@ --- title: Code Metrics window -ms.date: 12/12/2017 +ms.date: 1/22/2025 description: Learn how to view, filter, rearrange, and export Visual Studio code metrics analysis data. See how to create work items based on code metric results. ms.topic: reference f1_keywords: @@ -15,8 +15,24 @@ manager: mijacobs ms.subservice: code-analysis --- -# Use the Code Metrics Results window +# Use the Code Metrics window +::: moniker range="visualstudio" +The **Code Metrics** window displays the data that is generated by the code metrics analysis. For more information about code metrics data values, see [Code metrics values](../code-quality/code-metrics-values.md). + +## Display code metrics results + +You can display the Code Metrics window using the following sequence: + +1. On the **View** menu, choose **Other Windows** > **Code Metrics**. + +1. Select the **Calculate Code Metrics button** to generate results. + + Results are scoped to the project or solution based on the current selection in Solution Explorer. Select either the project node or the solution node. + +::: moniker-end + +::: moniker range="vs-2022" The **Code Metrics Results** window displays the data that is generated by the code metrics analysis. For more information about code metrics data values, see [Code metrics values](../code-quality/code-metrics-values.md). ## Display code metrics results @@ -30,6 +46,7 @@ You can display the Code Metrics Results window using one of the following menu - On the **View** menu, choose **Other Windows** > **Code Metrics Results**. The **Code Metrics Results** window opens, even if it contains no results. +::: moniker-end ### To view code metrics details @@ -37,7 +54,13 @@ If code metrics results have been generated, expand the tree in the **Hierarchy* ## Filter code metrics results +::: moniker range="visualstudio" +You can filter the results that are displayed in the **Code Metrics** window by using the toolbar at the top. For example, you might want to see only the results that have a maintainability index below 65. +::: moniker-end + +::: moniker range="vs-2022" You can filter the results that are displayed in the **Code Metrics Results** window by using the toolbar at the top. For example, you might want to see only the results that have a maintainability index below 65. +::: moniker-end The **Filter** dropdown list box contains the names of the results columns. When a filter is defined, it is added to the bottom of the list together with an indentation. The list can contain the last 10 filters that were defined. @@ -55,7 +78,13 @@ The **Filter** dropdown list box contains the names of the results columns. When ## Add, remove, and rearrange data columns +::: moniker range="visualstudio" +You can add or remove results columns from the **Code Metrics** window. In addition, you can rearrange results columns so that they appear in the order that you want. +::: moniker-end + +::: moniker range="vs-2022" You can add or remove results columns from the **Code Metrics Results** window. In addition, you can rearrange results columns so that they appear in the order that you want. +::: moniker-end ### Add or remove a column