Skip to content

Commit a4d12d0

Browse files
authored
Report specific c# settings in issue template (#8433)
2 parents c8fbfa3 + ea78e79 commit a4d12d0

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

src/shared/reportIssue.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { IHostExecutableResolver } from '../shared/constants/IHostExecutableReso
88
import { basename, dirname } from 'path';
99
import { DotnetInfo } from './utils/dotnetInfo';
1010
import { CSharpExtensionId } from '../constants/csharpExtensionId';
11-
import { commonOptions } from './options';
11+
import { commonOptions, LanguageServerOptions, languageServerOptions } from './options';
1212

1313
export default async function reportIssue(
1414
csharpExtVersion: string,
@@ -61,6 +61,9 @@ ${fullDotnetInfo}</details>
6161
<details><summary>Visual Studio Code Extensions</summary>
6262
${generateExtensionTable(extensions)}
6363
</details>
64+
<details><summary>C# Settings</summary>
65+
${generateOptionsTable()}
66+
</details>
6467
`;
6568

6669
await vscode.commands.executeCommand('workbench.action.openIssueReporter', {
@@ -101,6 +104,31 @@ ${tableHeader}\n${table};
101104
return extensionTable;
102105
}
103106

107+
function generateOptionsTable() {
108+
const tableHeader = `|Setting|Value|\n|---|---|`;
109+
const relevantOptions = [
110+
getLanguageServerOptionData('preferCSharpExtension'),
111+
getLanguageServerOptionData('compilerDiagnosticScope'),
112+
getLanguageServerOptionData('analyzerDiagnosticScope'),
113+
getLanguageServerOptionData('enableXamlTools'),
114+
getLanguageServerOptionData('useServerGC'),
115+
];
116+
const table = relevantOptions.map((e) => `|${e.name}|${e.value}|`).join('\n');
117+
118+
const extensionTable = `
119+
${tableHeader}\n${table};
120+
`;
121+
122+
return extensionTable;
123+
}
124+
125+
function getLanguageServerOptionData(k: keyof LanguageServerOptions): { name: string; value: string | undefined } {
126+
return {
127+
name: k,
128+
value: languageServerOptions[k]?.toString(),
129+
};
130+
}
131+
104132
async function getMonoIfPlatformValid(monoResolver: IHostExecutableResolver): Promise<string> {
105133
let monoVersion = 'Unknown Mono version';
106134
try {

0 commit comments

Comments
 (0)