在Visual Studio代码上为OmniSharp设置C#格式化选项?

时间:2015-12-22 03:15:44

标签: visual-studio-code omnisharp

我正在尝试利用与Visual Studio Code的集成,但无法弄清楚如何设置C#格式化选项。我的Mac上的OmniSharp exe旁边的config.json(/ Applications / Visual Studio Code.app/Contents/Resources/app/extensions/jrieken.vscode-omnisharp/bin/packages/OmniSharp/config.json)没有匹配the standard OmniSharp config.json format,因此设置大括号+换行符属性不起作用,例如methodBraceStyle。它确实可以设置tabSize等。

3 个答案:

答案 0 :(得分:9)

使用最新的omnisharp(dev分支)和omnisharp.json(粘贴在下面)与我的项目.sln位于同一文件夹中。 它应该适用于v1.9-beta18之后的所有releases,我刚从源代码编译,因为我没有使用受支持的系统。

{
    "FormattingOptions": {
        "newLine": "\n",
        "useTabs": false,
        "tabSize": 4,
        "indentationSize": 4,

        "NewLinesForBracesInTypes": false,
        "NewLinesForBracesInMethods": false,
        "NewLinesForBracesInProperties": false,
        "NewLinesForBracesInAccessors": false,
        "NewLinesForBracesInAnonymousMethods": false,
        "NewLinesForBracesInControlBlocks": false,
        "NewLinesForBracesInAnonymousTypes": false,
        "NewLinesForBracesInObjectCollectionArrayInitializers": false,
        "NewLinesForBracesInLambdaExpressionBody": false,

        "NewLineForElse": false,
        "NewLineForCatch": false,
        "NewLineForFinally": false,
        "NewLineForMembersInObjectInit": false,
        "NewLineForMembersInAnonymousTypes": false,
        "NewLineForClausesInQuery": false,
    }
}

此文件中列出了可用选项:https://github.com/bstockus/omnisharp-roslyn/blob/dev/src/OmniSharp.Abstractions/Options/FormattingOptions.cs

答案 1 :(得分:3)

来自Configuration Options on the omnisharp-roslyn wiki

在启动时,OmniSharp使用以下(分层的)顺序获取配置选项:

  • 其自己的硬编码默认值
  • 环境变量
  • 命令行参数
  • 位于omnisharp.json的{​​{1}}文件
  • 位于工作目录中的%USERPROFILE%/.omnisharp/文件已指向OmniSharp

每个配置源都可以覆盖前一个源设置的任何设置。

根据a blog article by one of the developers总结以上配置位置:

  • 默认设置在OmniSharp扩展目录的omnisharp.json中指定。 不推荐修改此文件。
  • 环境变量和命令行参数都不适用于C#扩展。
  • config.json放在omnisharp.json(或%USERPROFILE%\.omnisharp\)中以进行用户特定的设置。
  • ~/.omnisharp/放在项目目录中以进行特定于项目的设置。
  • 在每个级别,您都将覆盖各个设置;您无需重复整个配置。

使用Visual Code v1.42.0的omnisharp.json扩展名的v1.21.11进行测试,似乎OmniSharp仅应用在工作区文件夹not descendant directories的根目录中找到的ms-vscode.csharp

用于Visual Studio代码C# extensionalso supports EditorConfig,您可以通过以下方法之一启用它:

  • omnisharp.jsonFilePreferencesSettingsExtensionsC# configuration
  • OmniSharp: Enable Editor Config Support中...
    settings.json
  • { "omnisharp.enableEditorConfigSupport": true, }
    omnisharp.json

答案 2 :(得分:0)

Linux 用户:

  1. 转到主目录 > .omnisharp > 创建 omnisharp.json
  2. 输入 here

对于不想为每个项目一遍又一遍重复步骤的人来说,这是一个全局解决方案。

重要事项:选择正确的 Linux 版本来安装来自 above given code 的 dotNet SDK 很重要!否则 omnisharp 将无法正确安装,上面的代码将无法运行。