我正在尝试利用与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等。
答案 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,
}
}
答案 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.json
中指定。 不推荐修改此文件。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# extension的also supports EditorConfig
,您可以通过以下方法之一启用它:
omnisharp.json
→File
→Preferences
→Settings
→Extensions
→C# configuration
OmniSharp: Enable Editor Config Support
中...
settings.json
{
"omnisharp.enableEditorConfigSupport": true,
}
中
omnisharp.json
答案 2 :(得分:0)
Linux 用户:
对于不想为每个项目一遍又一遍重复步骤的人来说,这是一个全局解决方案。
重要事项:选择正确的 Linux 版本来安装来自 above given code 的 dotNet SDK 很重要!否则 omnisharp 将无法正确安装,上面的代码将无法运行。