Environment:
- Windows 10
- CSharpier: v10.0.3
Summary
DiagnosticsService.runDiagnostics() incorrectly assumes that CSharpier should handle a file when editor.defaultFormatter is null:
let a = workspace.getConfiguration("editor", uri).get("defaultFormatter");
let i = ... && (a == null || a === "csharpier.csharpier-vscode");
When opening a .d.ts file (typescript language ID), no default formatter may be configured for TypeScript, causing a == null to evaluate to true. As a result, CSharpier treats the file as if it should be formatted, even though it isn't a supported language.
Additionally, registerEditorEvents() invokes diagnostics on onDidChangeActiveTextEditor and onDidSaveTextDocument without checking the document's language ID.
Workarounds
Configure explicit formatters for TS/JS files:
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[typescriptreact]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[javascriptreact]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
}
Or disable diagnostics entirely:
"csharpier.enableDiagnostics": false
Expected Behavior
Diagnostics should only run for languages supported by CSharpier (C# and XML), regardless of whether editor.defaultFormatter is configured.
Actual Behavior
Opening or saving unsupported files such as .d.ts can trigger CSharpier diagnostics if no language-specific formatter has been configured.
Environment:
Summary
DiagnosticsService.runDiagnostics()incorrectly assumes that CSharpier should handle a file wheneditor.defaultFormatterisnull:When opening a
.d.tsfile (typescriptlanguage ID), no default formatter may be configured for TypeScript, causinga == nullto evaluate totrue. As a result, CSharpier treats the file as if it should be formatted, even though it isn't a supported language.Additionally,
registerEditorEvents()invokes diagnostics ononDidChangeActiveTextEditorandonDidSaveTextDocumentwithout checking the document's language ID.Workarounds
Configure explicit formatters for TS/JS files:
Or disable diagnostics entirely:
Expected Behavior
Diagnostics should only run for languages supported by CSharpier (C# and XML), regardless of whether
editor.defaultFormatteris configured.Actual Behavior
Opening or saving unsupported files such as
.d.tscan trigger CSharpier diagnostics if no language-specific formatter has been configured.