【C++】Visual Studio EditorConfig 格式设置

【C++】Visual Studio EditorConfig 格式设置

文章目录

  • 【C++】Visual Studio EditorConfig 格式设置
    • I - EditorConfig
      • 1.1 - 通用设置
        • indent_style
        • indent_size
        • tab_width
        • end_of_line
        • charset
        • trim_trailing_whitespace
        • insert_final_newline
    • II - Visual Studio 特定键值
      • 缩进设置
        • cpp_indent_braces
        • cpp_indent_multi_line_relative_to
        • cpp_indent_within_parentheses
        • cpp_indent_preserve_within_parentheses
        • cpp_indent_case_contents
        • cpp_indent_case_labels
        • cpp_indent_case_contents_when_block
        • cpp_indent_lambda_braces_when_parameter
        • cpp_indent_goto_labels
        • cpp_indent_preprocessor
        • cpp_indent_access_specifiers
        • cpp_indent_namespace_contents
        • cpp_indent_preserve_comments
      • 换行符设置
        • cpp_new_line_before_open_brace_namespace
        • cpp_new_line_before_open_brace_type
        • cpp_new_line_before_open_brace_function
        • cpp_new_line_before_open_brace_block
        • cpp_new_line_before_open_brace_lambda
        • cpp_new_line_scope_braces_on_separate_lines
        • cpp_new_line_close_brace_same_line_empty_type
        • cpp_new_line_close_brace_same_line_empty_function
        • cpp_new_line_before_catch
        • cpp_new_line_before_else
        • cpp_new_line_before_while_in_do_while
      • 间距设置
        • cpp_space_before_function_open_parenthesis
        • cpp_space_within_parameter_list_parentheses
        • cpp_space_between_empty_parameter_list_parentheses
        • cpp_space_after_keywords_in_control_flow_statements
        • cpp_space_within_control_flow_statement_parentheses
        • cpp_space_before_lambda_open_parenthesis
        • cpp_space_within_cast_parentheses
        • cpp_space_after_cast_close_parenthesis
        • cpp_space_within_expression_parentheses
        • cpp_space_before_block_open_brace
        • cpp_space_between_empty_braces
        • cpp_space_before_initializer_list_open_brace
        • cpp_space_within_initializer_list_braces
        • cpp_space_preserve_in_initializer_list
        • cpp_space_before_open_square_bracket
        • cpp_space_within_square_brackets
        • cpp_space_before_empty_square_brackets
        • cpp_space_between_empty_square_brackets
        • cpp_space_group_square_brackets
        • cpp_space_within_lambda_brackets
        • cpp_space_between_empty_lambda_brackets
        • cpp_space_before_comma
        • cpp_space_after_comma
        • cpp_space_remove_around_member_operators
        • cpp_space_before_inheritance_colon
        • cpp_space_before_constructor_colon
        • cpp_space_remove_before_semicolon
        • cpp_space_after_semicolon
        • cpp_space_remove_around_unary_operator
        • cpp_space_around_binary_operator
        • cpp_space_around_assignment_operator
        • cpp_space_pointer_reference_alignment
        • cpp_space_around_ternary_operator
      • 换行选项
        • cpp_wrap_preserve_blocks
    • 参考链接

I - EditorConfig

Visual Studio 自带支持 .editorconfig 文件,使用时,需要将 .editorconfig 文件放在工程的根目录。

关于 .editorconfig 文件,作用类似于 .clang-format,用于多人开发时多编辑器的配置,为了格式统一等等。

https://editorconfig.org
请添加图片描述
这个是 EditorConfig 的官方网站,网站中说明了哪些编辑器或者 IDE(集成开发环境) 内置支持此文件,哪些编辑器需要安装插件支持,以及对应编辑器插件的下载链接。

1.1 - 通用设置

禁用设置属性需要使用 unset,举例:

indent_size = unset

表示移除 indent_size 的效果,取消 indent_size 的属性,使用编辑器的默认值

indent_style

缩进样式,可用的值为

  • tab
  • space

设置缩进使用制表符或空格
此属性值不区分大小写

indent_size

缩进大小,可设置的值为一个正整数或 tab,如果设置为 tab ,也就是与制表符长度相同,则 indent_size 会等于 tab_width,如果未指定 tab_width 则使用编辑器的制表符大小设置

此属性值不区分大小写

tab_width

单个制表符的大小,可以设置为一个正整数,默认值 在 indent_size 设置为数字时与此属性相同

end_of_line

行尾格式可以为三种

  • lf
  • crlf
  • cr

lf 为 Line Feed 即 \n
cr 为 Carrier Return 即 \r
crlf 则为 \r\n

此属性值不区分大小写,如果需要跟随系统默认,则最好不设置此属性

charset

文件的编码字符集
可设置为

  • latin1
  • utf-8
  • utf-16be
  • utf-16le
  • utf-8-bom

不区分大小写
BOM 为 byte-order mark 字节序标记

trim_trailing_whitespace

指定是否移除行尾空白符

  • true 移除所有换行符之前的空白符
  • false 保证编辑器保留空白符

不区分大小写

insert_final_newline

指定是否在文件末尾添加空白行,可设置为

  • true
  • false

II - Visual Studio 特定键值

Visual Studio 中C++ 格式设置 EditorConfig 属性以 cpp_ 为前缀。

示例

# 指定生效的文件
[*.{c++,cc,cpp,cxx,h,h++,hh,hpp,hxx,inl,ipp,tlh,tli}]cpp_indent_case_contents_when_block = true
cpp_new_line_before_open_brace_namespace = same_line

以下为 Visual Studio 和 VS Code 支持的所有 EditorConfig C++ 格式设置。

缩进设置

cpp_indent_braces

缩进大括号
可用值:true、false

cpp_indent_multi_line_relative_to

相对该对象缩进各行
可用值:

  • outermost_parenthesis - 键入新行时,它会相对最外侧的左括号缩进。
  • innermost_parenthesis - 键入新行时,它会相对最内侧的左括号缩进。
  • statement_begin - 键入新行时,它会相对当前语句的开头缩进。

cpp_indent_within_parentheses

在圆括号内部输入新行时进行对齐
可用值:

  • align_to_parenthesis - 将内容与左圆括号对齐。
  • indent - 缩进新行。

cpp_indent_preserve_within_parentheses

可用值:true、false
在现有代码中,不要使用圆括号中的新行的对齐设置

cpp_indent_case_contents

缩进 case 内容
可用值:true、false
缩进 case 标签

cpp_indent_case_labels

缩进 case 标签
可用值:true、false

cpp_indent_case_contents_when_block

缩进 case 语句后面的大括号
可用值:true、false

cpp_indent_lambda_braces_when_parameter

缩进用作参数的 lambda 的大括号,可用值:true、false

cpp_indent_goto_labels

goto 标签的位置,可用值:

  • one_left - 向左缩进一次
  • leftmost_column - 移到最左侧的列
  • none - 保留缩进

cpp_indent_preprocessor

预处理器指令位置,可用值:

  • one_left - 向左缩进一次
  • leftmost_column - 移到最左侧的列
  • none - 保留缩进

cpp_indent_access_specifiers

缩进访问说明符 :true、false

cpp_indent_namespace_contents

缩进命名空间内容 :true、false

cpp_indent_preserve_comments

保留注释的缩进:true、false

换行符设置

cpp_new_line_before_open_brace_namespace

命名空间的左大括号的位置:

  • new_line - 移动到新行
  • same_line - 保持在同一行上,但在前面添加一个空格
  • ignore - 不要自动重新定位

cpp_new_line_before_open_brace_type

类型的左大括号的位置:

  • new_line - 移动到新行
  • same_line - 保持在同一行上,但在前面添加一个空格
  • ignore - 不要自动重新定位

cpp_new_line_before_open_brace_function

函数的左大括号的位置:

  • new_line - 移动到新行
  • same_line - 保持在同一行上,但在前面添加一个空格
  • ignore - 不要自动重新定位

cpp_new_line_before_open_brace_block

控制块的左大括号的位置:

  • new_line - 移动到新行
  • same_line - 保持在同一行上,但在前面添加一个空格
  • ignore - 不要自动重新定位

cpp_new_line_before_open_brace_lambda

lambda 的左大括号的位置:

  • new_line - 移动到新行
  • same_line - 保持在同一行上,但在前面添加一个空格
  • ignore - 不要自动重新定位

cpp_new_line_scope_braces_on_separate_lines

将范围大括号放到单独的行上:true、false

cpp_new_line_close_brace_same_line_empty_type

对于空类型,将右大括号移动到左大括号所在的同一行:true、false

cpp_new_line_close_brace_same_line_empty_function

对于空的函数体,将右大括号移动到左大括号所在的同一行:true、false

cpp_new_line_before_catch

catch 和相似的关键字放在新行上:true、false

cpp_new_line_before_else

else 放在新行上:true、false

cpp_new_line_before_while_in_do_while

将 do-while 循环中的 while 放在新行上:true、false

间距设置

cpp_space_before_function_open_parenthesis

在函数名称与参数列表的左括号之间插入空格:

  • insert - 插入空格
  • remove - 移除空格
  • ignore - 请勿更改空格

cpp_space_within_parameter_list_parentheses

在参数列表的圆括号中插入空格:true、false

cpp_space_between_empty_parameter_list_parentheses

当参数列表为空时在圆括号之间插入空格:true、false

cpp_space_after_keywords_in_control_flow_statements

在关键字与控制流语句中的左圆括号之间插入空格:true、false

cpp_space_within_control_flow_statement_parentheses

在控制语句的圆括号中插入空格:true、false

cpp_space_before_lambda_open_parenthesis

在 lambda 参数列表的左圆括号前面插入空格:true、false

cpp_space_within_cast_parentheses

在 C 样式强制转换的圆括号中插入空格:true、false

cpp_space_after_cast_close_parenthesis

在 C 样式强制转换的右圆括号后面插入空格:true、false

cpp_space_within_expression_parentheses

在带圆括号的表达式的圆括号中插入空格:true、false

cpp_space_before_block_open_brace

在块的左大括号前插入空格:true、false

cpp_space_between_empty_braces

在空大括号之间插入空格:true、false

cpp_space_before_initializer_list_open_brace

在统一初始化和初始值设定项列表的左大括号前插入空格:true、false

cpp_space_within_initializer_list_braces

在统一初始化和初始值设定项列表中插入空格:true、false

cpp_space_preserve_in_initializer_list

保留统一初始化和初始值设定项列表内的空格:true、false

cpp_space_before_open_square_bracket

在左方括号前插入空格:true、false

cpp_space_within_square_brackets

在方括号中插入空格:true、false

cpp_space_before_empty_square_brackets

在空方括号前插入空格:true、false

cpp_space_between_empty_square_brackets

在空方括号之间插入空格:true、false

cpp_space_group_square_brackets

将多维数组的方括号组合在一起:true、false

cpp_space_within_lambda_brackets

在 lambda 的方括号中插入空格:true、false

cpp_space_between_empty_lambda_brackets

lambda 空的方括号中的空格:true、false

cpp_space_before_comma

在逗号前插入空格:true、false

cpp_space_after_comma

在逗号后面插入空格:true、false

cpp_space_remove_around_member_operators

移除成员运算符前后的空格:true、false

cpp_space_before_inheritance_colon

在类型声明中的基类的冒号前插入空格:true、false

cpp_space_before_constructor_colon

在构造函数中的冒号前插入空格:true、false

cpp_space_remove_before_semicolon

移除分号前的空格:true、false

cpp_space_after_semicolon

在分号后面插入空格:true、false

cpp_space_remove_around_unary_operator

移除一元运算符和其操作数之间的空格 :true、false

cpp_space_around_binary_operator

二元运算符的间距:

  • insert - 在二元运算符的前后插入空格。
  • remove - 移除二元运算符周围的空格。
  • ignore - 不要更改二元运算符周围的空格。

cpp_space_around_assignment_operator

赋值运算符的间距:

  • insert - 在赋值运算符周围插入空格。
  • remove - 移除赋值运算符周围的空格。
  • ignore - 不要更改赋值运算符周围的空格。

cpp_space_pointer_reference_alignment

指针/引用对齐方式:

  • left - 左对齐。
  • center - 居中对齐。
  • right - 右对齐。
  • ignore - 保持不变。

cpp_space_around_ternary_operator

条件运算符的间距:

  • insert - 在条件运算符周围插入空格。
  • remove - 移除条件运算符周围的空格。
  • ignore - 不要更改条件运算符周围的空格。

换行选项

cpp_wrap_preserve_blocks

块的换行选项:

  • one_liners - 不要对单行代码块换行。
  • all_one_line_scopes - 不要对左大括号和右大括号位于下一行上的代码块进行换行。
  • never - 始终为块应用新行设置。

参考链接

  • EditorConfig
    https://spec.editorconfig.org

  • Microsoft
    https://learn.microsoft.com/en-us/visualstudio/ide/cpp-editorconfig-properties?view=vs-2019

  • Github
    https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/67404.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蚂蚁集团SQLess 开源,与内部版有何区别?

当我们使用关系型数据库时,SQL 是联系起用户和数据库的一座桥梁。 SQL 是一种高度非过程化的语言,当我们在编写SQL 时,表达的是想要什么数据,而不是怎么获取数据。因此,我们往往更关心SQL 有没有满足业务逻辑&#xff…

朴素,word,任何参考文献导入endnote

朴素,word,任何参考文献导入endnote 注意:对于以下这几种不做阐述,看其他帖子都有讲述: 这里的参考文献指的是类似于: [1]. Li Y, Lu Y, Huo X, et al. Bandgap tuning strategy by cations and halide io…

如何快速搭建母婴行业的微信小程序?

如果你想为你的母婴行业打造一个独特的小程序,但没有任何编程经验,别担心!现在有许多小程序制作平台提供了简单易用的工具,让你可以轻松地建立自己的小程序。接下来,我将为你详细介绍搭建母婴行业小程序的步骤。 首先&…

[unity]三角形顶点顺序

序 详见官方文档:Unity - Manual: Mesh data (unity3d.com) Topology:拓扑结构 翻译: 拓扑描述网格具有的面类型。 网格的拓扑定义了索引缓冲区的结构,索引缓冲区又描述了顶点位置如何组合成面。每种类型的拓扑都使用索引数组中…

Django实现音乐网站 ⒂

使用Python Django框架制作一个音乐网站, 本篇主要是歌手详情页-基本信息、单曲列表功能开发实现内容。 目录 歌手基本信息 增加路由 显示视图 模板显示 推荐歌手跳转详情 歌手增加基本信息 表模型增加字段 数据表更新 基本信息增加内容渲染 歌手单曲列表…

SpringMVC入门指南

目录 前言 一、什么是SpringMVC 二、MVC架构模式 三、SpringMVC的工作流程 四、SpringMVC核心组件 五、SpringMVC的优势 六、SpringMVC的配置与常用注解 七、SpringMvc请求处理流程、 控制器的编写 、视图的渲染 1.请求处理流程: 2.控制器的编写&#xff1…

优化Docker权限管理:配置Docker用户组

Docker 利用 Linux 的用户和组权限来管理对 Docker 守护进程的访问权限。一般情况下,只有 root 用户和属于 docker 用户组的用户才被允许访问 Docker 守护进程。在 Linux 系统上使用 Docker 时,如果您尚未配置 docker 用户组,那么作为非 root…

12. 微积分 - 梯度积分

Hi,大家好。我是茶桁。 上一节课,我们讲了方向导数,并且在最后留了个小尾巴,是什么呢?就是梯度。 我们再来回看一下但是的这个式子: [ f x f y

css强制显示一行

要强制将文本内容显示在一行中,可以使用CSS的white-space属性和overflow属性来实现。 首先,将white-space属性设置为nowrap,这样文本内容就不会换行。然后,将overflow属性设置为hidden,这样超出一行的内容就会被隐藏起…

SpringCloud(36):Nacos服务发现基础应用

1 服务发现数据模型 Nacos在经过阿里内部多年生产经验后提炼出的数据模型,则是一种服务-集群-实例的三层模型,这样基本可以满足服务在所有场景下的数据存储和管理。 命名空间(Namespace) 用于进行租户粒度的配置隔离,命名空间不仅适用于nacos的配置管理,同样适用于服务发…

【Vue】集成百度地图

Vue 集成 百度地图 1、获取百度地图 ak 密钥 2、登录网址 https://lbsyun.baidu.com/ 3、注册百度地图开放平台账号,填写认证信息,并且创建应用 安装 npm install vue-baidu-map --savemain.js import BaiduMap from vue-baidu-map;Vue.use(BaiduM…

【Windows 常用工具系列 11 -- 笔记本F5亮度调节关闭】

文章目录 笔记本 F 按键功能恢复 笔记本 F 按键功能恢复 使用笔记本在进行网页浏览时,本想使用F5刷新下网页,结果出现了亮度调节,如下图所示: 所以就在网上查询是否有解决这个问题的帖子,结果还真找到了:…

基于串口校时的数字钟设计

文章目录 设计目标硬件设计数码管串口 软件设计顶层模块串口接收模块数据处理模块时钟模块串口发送模块 总结 设计目标 环境:ACX720开发板 实现功能: 数码管能够显示时分秒能够接收串口数据修改时间能够将当前时间以1s一次速率发送到电脑 硬件设计 数…

1782_Adobe Reader X实现pdf分页保存

全部学习汇总: GitHub - GreyZhang/windows_skills: some skills when using windows system. 看了一本pdf电子书,觉得其中几页很值得分享。如果分享整本书当然是不错的选择,但是分享整本书很可能会导致一个结局——内容太多别人不会去看&…

内网穿透实战应用-如何通过内网穿透实现远程发送个人本地搭建的hMailServer的邮件服务

文章目录 1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpolar内网映射工…

SpringMVC入门详细介绍

一. SpringMVC简介 Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发&a…

17-Sharding-jdbc

一 Sharding-JDBC介绍 1 背景 随着通信技术的革新,全新领域的应用层出不穷,数据存量随着应用的探索不断增加,数据的存储和计算模式无时无刻不面临着创 新。面向交易、大数据、关联分析、物联网等场景越来越细分,单 一数据库再也无…

设计模式之代理模式与外观模式

目录 代理模式 简介 优缺点 角色职责 实现 运用场景 外观模式 简介 角色职责 优缺点 实现 使用场景 代理模式 简介 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为…

Android 1.2.1 使用Eclipse + ADT + SDK开发Android APP

1.2.1 使用Eclipse ADT SDK开发Android APP 1.前言 这里我们有两条路可以选,直接使用封装好的用于开发Android的ADT Bundle,或者自己进行配置 因为谷歌已经放弃了ADT的更新,官网上也取消的下载链接,这里提供谷歌放弃更新前最新…