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

news2025/1/16 1:34:51

【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.coloradmin.cn/o/955100.html

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

相关文章

Docker基础入门:Docker网络与微服务项目发布

Docker基础入门:Docker网络与微服务项目发布 一、前言二、Docker0理解2.1 ip a查看当前网络环境2.2 实战--启动一个tomact01容器(查看网络环境)2.3 实战--启动一个tomact02容器(查看网络环境)2.4 容器与容器之间的通信…

企业数据将作为资产被纳入财务报表?百望云建议企业做好三点准备

在数字化转型过程中,大家一直比较关心技术创新有哪些,我如何能快速使用?却经常忽略了更深层次的问题,如:数字化转型的价值效益“有哪些”、我的企业“怎么获取”、我的系统是否支持“价值传递”? 近日&…

Apipost:为什么是开发者首选的API调试工具

文章目录 前言正文接口调试接口公共参数、环境全局参数的使用快速生成并导出接口文档研发协作接口压测和自动化测试结论 前言 Apipost是一款支持 RESTful API、SOAP API、GraphQL API等多种API类型,支持 HTTPS、WebSocket、gRPC多种通信协议的API调试工具。除此之外…

不知道怎么归类的题型

爆破 weak_auth 进来看到 随便输入 知道账号名为admin,再爆破密码,从返回包中得到flag

【C++】多态学习

多态 多态的概念与定义多态的概念构成多态的两个条件虚函数与重写重写的两个特例 final 和 override重载、重写(覆盖)、重定义(隐藏)的对比抽象类多态的原理静态绑定与动态绑定 单继承与多继承关系下的虚函数表(派生类)单继承中的虚函数表查看多继承中的虚函数表查看 菱形继承与…

JavaScript Web APIs -03 事件流、事件委托、其他事件(加载、滚动、尺寸)

Web APIs - 03 文章目录 Web APIs - 03事件流捕获和冒泡阻止冒泡 事件委托其他事件页面加载事件元素滚动事件页面尺寸事件 元素尺寸与位置 进一步学习 事件进阶,实现更多交互的网页特效,结合事件流的特征优化事件执行的效率 掌握阻止事件冒泡的方法理解事…

第五章 树与二叉树 四、线索树(手算与代码实现)

一、定义 1.线索树是一种二叉树,它在每个节点上增加了两个指针,分别指向其前驱和后继。 2.这些指针称为“线索”,因此线索树也叫做“线索化二叉树”。 3.在线索树中,所有的叶子节点都被线索化,使得遍历树的过程可以…

小程序实现图片上传、数量配置、预览、删除功能的开发指南

当谈到在小程序中实现图片上传、预览和删除等功能时,我们必须认识到这些功能对于提升用户体验和丰富应用的交互性非常关键。随着智能手机的普及,人们越来越习惯于通过图片来表达自己的想法、分享生活点滴,因此,使用户能够方便地在小程序中处理图片是非常重要的一步。 目录 …

MonoDETR: Depth-guided Transformer for Monocular 3D Object Detection 论文解读

MonoDETR论文解读 abstract 单目目标检测在自动驾驶领域,一直是一个具有挑战的任务。现在大部分的方式都是沿用基于卷积的2D 检测器,首先检测物体中心,后通过中心附近的特征去预测3D属性。 但是仅仅通过局部的特征去预测3D特征是不高效的&…

2023开学季中大许少辉著《乡村振兴战略下传统村落文化旅游设计》建筑畅销榜排名465位

2023开学季中大许少辉著《乡村振兴战略下传统村落文化旅游设计》建筑畅销榜排名465位

W5100S-EVB-PICO通过SNTP获取网络时间(十一)

前言 上一章我们用开发板进行ping测试,本章我们用它通过SNTP获取网络时间并在串口显示。 什么是SNTP? 能用来做什么? SNTP(Simple Network Time Protocal简单网络时间协议),用于跨广域网或局域网同步时间的协议,具有较高的精确度&#xff…

PXE网络批量装机(centos7)

目录 前言 一、实验拓扑图 二、PXE的组件 三、配置PXE装机服务器 1、设置防火墙、selinux 2.安装、启动vsftp 3、拷贝系统文件到/var/ftp用于装机 4、配置tftp 5、准备pxelinx.0文件、引导文件、内核文件 6、配置本机IP 7、配置DHCP服务 8、创建default文件 四、配…

撤回IPO背后:透视树根互联“以退为进”的成长逻辑

如果说,互联网的上半场属于消费互联网,那么下半场的主角将会是工业互联网,它也被称为“第四次工业革命的重要基石”。 工业互联网属于典型的“长坡厚雪”型赛道,前期需要在技术、资金、人才等方面进行大量投入,而等待…

【强化学习】基本概念

基本大概框架 强化学习的主要角色是 智能体 (agent)和 环境,环境是智能体存在和互动的世界。智能体根据当前的环境做出action,action影响环境。然后智能体根据新的环境再进行action。 基础用语 状态(state, s)&…

Krahets 笔面试精选 88 题——40. 组合总和 II

使用深度搜索的方法: 由于题目说候选数组中的每个数字在每个组合只能出现一次,所以,为了避免重复,在开始之前对候选数组进行升序排序,这样优先选择小的数,如果当前的数都小于目标值,则后面的数就…

CSAPP的Lab学习——BombLab

文章目录 前言一、一号炸弹(小试牛刀)二、二号炸弹(六重循环)三、三号炸弹(不同输入,不同答案)四、四号炸弹(判断语句的实现)五、五号炸弹(跳转,循…

VoxWeekly|The Sandbox 生态周报|20230828

欢迎来到由 The Sandbox 发布的《VoxWeekly》。我们会在每周发布,对上一周 The Sandbox 生态系统所发生的事情进行总结。 如果你喜欢我们内容,欢迎与朋友和家人分享。请订阅我们的 Medium 、关注我们的 Twitter,并加入 Discord 社区&#xf…

PHP多语言代入电商平台api接口采集拼多多根据ID获取商品详情原数据示例

拼多多商品详情原数据API接口的作用是获取拼多多电商平台上某一商品的详细信息,包括商品的标题、价格、库存、图片、描述、包邮信息、销量、评价、优惠券等数据。通过该API接口可以获取到商品的原始数据,用于分析、筛选和展示商品信息。 pinduoduo.item…

typeerror: web3 is not a constructor

typeerror: web3 is not a constructor

PXE批量装机

目录 目录 一、概念 二、PXE的组件 三、操作步骤 一、配置基础环境 二、安装软件 三、文件配置 一、DHCP配置 二、配置TFTP 三、pxelinx.0 四、新机器验证 一、第一次验证 二、第二次验证 五、配置pxe无人值守安装 六、无人值守验证 一、概念 PXE是批量装机系统…