Skip to content

Commit f716404

Browse files
Get extensions
1 parent 93113fd commit f716404

File tree

4 files changed

+24
-5
lines changed

4 files changed

+24
-5
lines changed

resources/report_issue_template.md

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<!-- Please fill in all XXX markers -->
22
# Behaviour
3-
## Expected vs. Actual
43

54
XXX
65

resources/report_issue_user_data_template.md

+9-4
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,19 @@
33
- Value of the `python.languageServer` setting: {2}
44

55
<details>
6-
76
<summary>User Settings</summary>
8-
97
<p>
108

119
```
1210
{3}{4}
1311
```
14-
1512
</p>
16-
</details>
13+
</details>
14+
15+
<details>
16+
<summary>Installed Extensions</summary>
17+
18+
|Extension Name |Extension Id| Version|
19+
|---|---|---|
20+
{5}
21+
</details>

src/client/common/application/commands/reportIssueCommand.ts

+11
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { EventName } from '../../../telemetry/constants';
1919
import { EnvironmentType } from '../../../pythonEnvironments/info';
2020
import { PythonSettings } from '../../configSettings';
2121
import { SystemVariables } from '../../variables/systemVariables';
22+
import { getExtensions } from '../../vscodeApis/extensionsApi';
2223

2324
/**
2425
* Allows the user to report an issue related to the Python extension using our template.
@@ -100,6 +101,15 @@ export class ReportIssueCommandHandler implements IExtensionSingleActivationServ
100101
hasMultipleFolders && userSettings !== ''
101102
? `Multiroot scenario, following user settings may not apply:${os.EOL}`
102103
: '';
104+
105+
let installedExtensions = getExtensions()
106+
.filter((extension) => !extension.id.startsWith('vscode.'))
107+
.sort((a, b) => a.packageJSON.displayName.localeCompare(b.packageJSON.displayName))
108+
.map(
109+
(extension) =>
110+
`|${extension.packageJSON.displayName}|${extension.id}|${extension.packageJSON.version}|`,
111+
);
112+
103113
await this.commandManager.executeCommand('workbench.action.openIssueReporter', {
104114
extensionId: 'ms-python.python',
105115
issueBody: template,
@@ -109,6 +119,7 @@ export class ReportIssueCommandHandler implements IExtensionSingleActivationServ
109119
languageServer,
110120
hasMultipleFoldersText,
111121
userSettings,
122+
installedExtensions.join('\n'),
112123
),
113124
});
114125
sendTelemetryEvent(EventName.USE_REPORT_ISSUE_COMMAND, undefined, {});

src/client/common/vscodeApis/extensionsApi.ts

+4
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,7 @@ export function isExtensionDisabled(extensionId: string): boolean {
3232
export function isInsider(): boolean {
3333
return vscode.env.appName.includes('Insider');
3434
}
35+
36+
export function getExtensions(): readonly vscode.Extension<any>[] {
37+
return vscode.extensions.all;
38+
}

0 commit comments

Comments
 (0)