我如何确定Visual Studio Code的C#/ OmniSharp扩展所提供的格式设置选项的名称和默认值?

问题描述 投票:0回答:1

我正在创建omnisharp.json文件来设置C#格式首选项。 我如何知道可以设置哪些属性以及它们的默认值是什么?

当然,必须有明确的最新信息来源,或者我可以自行确定的方式,对吧?

c# visual-studio-code configuration code-formatting omnisharp
1个回答
0
投票

SchemaStoreomnisharp.json属性映射到C# code formatting settings in VS Code and OmniSharp的实例。现在,您可以获取该源代码并对其进行一些文本操作...

  • ...将构造函数中的属性初始化转换为JSON(例如FormattingOptionsomnisharp.json,但随后您将不会获得未明确初始化的任何属性。
  • ...将属性定义转换为JSON(例如OmniSharp.Options.FormattingOptions classOmniSharp.Options.FormattingOptions),但是您将无法获得默认值。

...但是我认为最好的方法是自己简单地实例化该类并检查其属性。您可以使用NewLine = "\n";轻松完成此操作。

您需要做的第一件事就是确定包含"NewLine": "\n",类的public string NewLine { get; set; }程序集的路径。从"NewLine": "",开始(在Windows上为PowerShell (Core);在Mac / Linux上为OmniSharp.Shared.dll),您会在这里找到它...

我在Windows上安装了csharp-{major}.{minor}.{patch}扩展名的v1.21.11,所以该程序集的路径是.omnisharp

在PowerShell会话中,将该路径传递给命令以加载程序集...

{major}.{minor}.{patch}

如果成功,将不会产生任何输出。然后,您只需要实例化一个OmniSharp.Shared.dll实例,该实例的属性名称和默认值将显示在控制台中。

ms-vscode.csharp

您甚至可以让它为您创建相应的JSON ...

C:\Users\UserName\.vscode\extensions\ms-vscode.csharp-1.21.11\.omnisharp\1.34.11\OmniSharp.Shared.dll

...或直接将其写入当前目录中的默认PS> Add-Type -Path 'C:\Users\UserName\.vscode\extensions\ms-vscode.csharp-1.21.11\.omnisharp\1.34.11\OmniSharp.Shared.dll' 文件...

FormattingOptions

上述技术可能对使用PS> New-Object -TypeName 'OmniSharp.Options.FormattingOptions' OrganizeImports : False EnableEditorConfigSupport : False NewLine : UseTabs : False TabSize : 4 [snip] 的其他编辑者有效;只需查找PS> [PSCustomObject] @{ FormattingOptions = New-Object -TypeName 'OmniSharp.Options.FormattingOptions' } | ConvertTo-Json { "FormattingOptions": { "OrganizeImports": false, "EnableEditorConfigSupport": false, "NewLine": "\n", "UseTabs": false, "TabSize": 4, [snip] } } 的存储位置即可。请注意,我not

提供默认omnisharp.json的全文,因此这不会成为复制和粘贴配置的另一个过时资源。该想法是动态查询您的 OmniSharp安装版本的值。
© www.soinside.com 2019 - 2024. All rights reserved.