欢迎光临散文网 会员登陆 & 注册

在VSCode使用JS的风格格式化C#代码

2021-08-15 18:45 作者:7_erQ  | 我要投稿

在VSCode使用JS的风格格式化C#代码

最近小组里在梳理开发规范,对于代码格式化方面,考虑到多数同事的开发习惯,决定沿袭TS的风格,即在VSCode中自动格式化时保留左花括号不换行。起初是采用了VSCode的C#FixFormat插件,可以说基本满足要求,唯一不足的是会将->符号分开,变成- >,这样一些指针的写法还是会有问题。

后来看到一种配置VSCode的FormatingOptions的方法,可以自己配置想要的代码格式化。具体方法是在工程根目录下新建一个omnisharp.json(如果要全局生效,则在C:\Users\用户名.omnisharp文件夹下创建)。然后在omnisharp.json中写如以下配置,然后保存即可:

下面是一些配置的释义,有些配置我也不清楚,就打了?号:

{
   "FormattingOptions": {
       "newLine": "\n",    // 换行符
       "useTabs": false,   // 将制表符改为空格
       "tabSize": 4,       // 制表符替换为4个空格
       "indentationSize": 4,   // 换行缩进字符

       "NewLinesForBracesInTypes": false,  // 类花括号另起一行
       "NewLinesForBracesInMethods": false,    // 方法花括号另起一行
       "NewLinesForBracesInProperties": false, // 属性花括号另起一行
       "NewLinesForBracesInAccessors": false,  // 访问器花括号另起一行
       "NewLinesForBracesInAnonymousMethods": false,   // 匿名方法花括号另起一行
       "NewLinesForBracesInControlBlocks": false,  // 控制块?花括号另起一行
       "NewLinesForBracesInAnonymousTypes": false, // 匿名类花括号另起一行
       "NewLinesForBracesInObjectCollectionArrayInitializers": false,  // 数组初始化赋值花括号另起一行
       "NewLinesForBracesInLambdaExpressionBody": false,   // 箭头函数花括号另起一行

       "NewLineForElse": false,    // else另起一行
       "NewLineForCatch": false,   // catch另起一行
       "NewLineForFinally": false, // finally另起一行
       "NewLineForMembersInObjectInit": false, // 对象成员初始化赋值另起一行
       "NewLineForMembersInAnonymousTypes": false, // 匿名类成员初始化赋值另起一行
       "NewLineForClausesInQuery": false   // Query子句?另起一行
   }
}

更多配置项可以在这个链接找到:https://github.com/OmniSharp/omnisharp-roslyn/blob/master/src/OmniSharp.Shared/Options/FormattingOptions.cs


___________________________ 2022/11/10编辑 ________________________________

omnisharp.json文件无效解决:

由于某次VSCode更新后omnisharp.json文件的配置突然就失效了,试过放全局目录和工程目录都没效果,苦寻好久没找到解决方法,结果今天一个程序同事也反馈了omnisharp.json文件无效,然后不到一小时就找到了问题所在。(我好菜,我太依赖搜索引擎了5555~)

原来是VSCode的C#插件在某次更新后默认开启使用.editorconfig配置优先,忽略了omnisharp.json的配置,所以可以在VSCode的Settings里设置"omnisharp.enableEditorConfigSupport": false让omnisharp.json文件继续生效,或者找一下.editorconfig里配置格式化的方法。


在VSCode使用JS的风格格式化C#代码的评论 (共 条)

分享到微博请遵守国家法律