Source insight 配置代码格式化

代码格式化工具:Artistic Style Files Download

配置 Source Insight

添加 Astyle 命令

Tools --> Custom Commands -->Add

 在 Run 栏填入格式化命令:

"D:\Program Files\astyle-3.5.2-x64\astyle.exe" -A3 -t -xV -w -Y -m0 -p -H -U --squeeze-lines=1 --squeeze-ws -k3 -W3 -n %f

 添加 Astyle 快捷键

Tools --> Custom Commands --> Keys --> Assign New Key

Astyle 参数说明

--style 设置代码风格

所有风格见:Artistic Style
 

Allman 风格

--style=allman / --style=bsd / --style=break / -A1

int Foo(bool isBar)
{if (isBar){bar();return 1;}elsereturn 0;
}

gnu 风格

--style=gnu / -A7

int Foo(bool isBar)
{if (isBar){bar();return 1;}elsereturn 0;
}

Linux 风格

--style=linux / --style=knf / -A8

int Foo(bool isBar)
{if (isFoo) {bar();return 1;} elsereturn 0;
}

google 风格

--style=google / -A14

int Foo(bool isBar) {if (isBar) {bar();return 1;} elsereturn 0;
}

 代码宽度设置

--max-code-length=#   / -xC#(# 有效值 50 - 200)
--break-after-logical     / -xL

将if (thisVariable1 == thatVariable1 || thisVariable2 == thatVariable2 || thisVariable3 == thatVariable3)bar();格式化为if (thisVariable1 == thatVariable1|| thisVariable2 == thatVariable2|| thisVariable3 == thatVariable3)bar();加上 break-after-logical 后格式化为if (thisVariable1 == thatVariable1 ||thisVariable2 == thatVariable2 ||thisVariable3 == thatVariable3)bar();

缩进设置

--indent=spaces / --indent=spaces=# / -s#

with indent=spaces=3每次缩进使用 # 个空格进行缩进。2 <= # <=20。不设置 # 时默认为 4void Foo() {
...if (isBar1
.........&& isBar2)
......bar();
}

--indent=tab / --indent=tab=# / -t / -t#

缩进使用制表符进行缩进,使用空格进行连续行对齐。这可以确保无论查看者的标签大小如何,代码都能正确显示。将每个缩进视为 # 个空格with indent=tab:void Foo() {
>   if (isBar1
>   ........&& isBar2)    // indent of this line can be changed with min-conditional-indent
>   >   bar();
}
with style=linux, indent=tab=8:void Foo()
{
>       if (isBar1
>       ....&& isBar2)    // indent of this line can NOT be changed with style=linux
>       >       bar();
}

--indent=force-tab / --indent=force-tab=# / -T / -T#

如果可能的话,全部使用制表符缩进。如果连续行不是偶数个制表符,则会在末尾添加空格。将每个制表符视为 # 个空格indent=force-tab:void Foo() {
>   if (isBar1
>   >   >   && isBar2)    // indent of this line can be changed with min-conditional-indent
>   >   bar();
}

do - while 设置

--attach-closing-while / -xV

将
do
{bar();++x;
}
while x == 1;格式化为:do
{bar();++x;
} while x == 1;

 switch 缩进

--indent-switches / -S

将
switch (foo)
{
case 1:a += 1;break;case 2:
{a += 2;break;
}
}格式化为:switch (foo)
{case 1:a += 1;break;case 2:{a += 2;break;}
}

case 缩进

--indent-cases / -K

将switch (foo)
{case 1:a += 1;break;case 2:{a += 2;break;}
}格式化为:switch (foo)
{case 1:a += 1;break;case 2:{a += 2;break;}
}

命名空间缩进

--indent-namespaces / -N

将
namespace foospace
{
class Foo
{public:Foo();virtual ~Foo();
};
}格式化为namespace foospace
{class Foo{public:Foo();virtual ~Foo();};
}

标签缩进

--indent-labels / -L

将void Foo() {while (isFoo) {if (isFoo)goto error;...
error:...}
}格式化为 (error 标签缩进,默认向左):void Foo() {while (isFoo) {if (isFoo)goto error;...error:...}
}

预处理块缩进

--indent-preproc-block / -xW

将#ifdef _WIN32
#include <windows.h>
#ifndef NO_EXPORT
#define EXPORT
#endif
#endif格式化为#ifdef _WIN32#include <windows.h>#ifndef NO_EXPORT#define EXPORT#endif
#endif

将预处理器条件语句缩进到与源代码相同的级别

--indent-preproc-cond / -xw 

将isFoo = true;
#ifdef UNICODEtext = wideBuff;
#elsetext = buff;
#endif格式化为isFoo = true;#ifdef UNICODEtext = wideBuff;#elsetext = buff;#endif

宏定义块缩进

--indent-preproc-define / -w

将#define Is_Bar(arg,a,b) \
(Is_Foo((arg), (a)) \
|| Is_Foo((arg), (b)))格式化为#define Is_Bar(arg,a,b) \(Is_Foo((arg), (a)) \|| Is_Foo((arg), (b)))

注释缩进

--indent-col1-comments / -Y

将void Foo()\n"
{
// commentif (isFoo)bar();
}格式化为void Foo()\n"
{// commentif (isFoo)bar();
}

多行缩进

--min-conditional-indent=# / -m#

0 - 无最小缩进。这些行将与前一行的 paren 对齐
1 - 至少缩进一个额外的缩进
2 - 至少缩进另外两个缩进
3 - 至少缩进二分之一的额外缩进例如 --min-conditional-indent=0 / -m0将if (a < b|| c > d)
{foo++;
}格式化为if (a < b|| c > d)
{foo++;
}

连续行缩进

--max-continuation-indent=# / -M#

# 表示列数,不得少于 40 或 大于 120。默认为 40将fooArray[] = { red,green,blue };fooFunction(barArg1,barArg2,barArg3);格式化为fooArray[] = { red,green,blue };fooFunction(barArg1,barArg2,barArg3);

空行设置

--break-blocks / -f

在 if for while .. 等代码块前后加上空行将isFoo = true;
if (isFoo) {bar();
} else {anotherBar();
}
isBar = false;格式化为isFoo = true;if (isFoo) {bar();
} else {anotherBar();
}isBar = false;

--break-blocks=all / -F

在 if for while .. 等代码块前后加上空行,同时在 'else', 'catch' 前加上空行将isFoo = true;
if (isFoo) {bar();
} else {anotherBar();
}
isBar = false;格式化为isFoo = true;if (isFoo) {bar();} else {anotherBar();
}isBar = false;

运算符前后加空格

--pad-oper / -p

将if (foo==2)a=bar((b-c)*a,d--);格式化为if (foo == 2)a = bar((b - c) * a, d--);

逗号后加空格

--pad-comma / -xg (设置了 --pad-oper / -p 就不需要此设置)

将if (isFoo(a,b))bar(a,b);格式化为if (isFoo(a, b))bar(a, b);

在 ! 后加空格

--pad-negation

将if (!isFoo(a,b))bar(a,b);格式化为if (! isFoo(a, b))bar(a, b);

在 ! 前加上空格

--pad-negation=before

将if (!isFoo(a,b))bar(a,b);格式化为if ( ! isFoo(a, b))bar(a, b);

 关键字/函数名和括号间加空格

--pad-header / -H

将if(isFoo((a+2), b))bar(a, b);格式化为if (isFoo((a+2), b))bar(a, b);

删除多余空格

--unpad-paren / -U

将if ( isFoo( ( a+2 ), b ) )bar ( a, b );格式化为if(isFoo((a+2), b))bar(a, b);

 --squeeze-ws

将void       Foo    ()
{foo1   =   1;
}格式化为void Foo ()
{foo1 = 1;
}

删除函数或方法中的空行

--delete-empty-lines / -xe

将void Foo()
{foo1 = 1;foo2 = 2;}格式化为void Foo()
{foo1 = 1;foo2 = 2;
}

删除超过给定数字的多余空行

--squeeze-lines=#

将void Foo()
{foo1 = 1;
}void Foo2()
{foo1 = 1;
}格式化为void Foo()
{foo1 = 1;
}void Foo2()
{foo1 = 1;
}

设置指针或引用运算符的位置

--align-pointer=type   / -k1
--align-pointer=middle / -k2
--align-pointer=name   / -k3

align-pointer=type将char* foo1;
char & foo2;
string ^s1;格式化为char* foo1;
char& foo2;
string^ s1;/
align-pointer=middle将char* foo1;
char & foo2;
string ^s1;格式化为char * foo1;
char & foo2;
string ^ s1;/
align-pointer=name将char* foo1;
char & foo2;
string ^s1; 格式化为char *foo1;
char &foo2;
string ^s1;

引用与指针分开对齐

--align-reference=none   / -W0
--align-reference=type   / -W1
--align-reference=middle / -W2
--align-reference=name   / -W3


align-reference=type
将char &foo1;格式化为char& foo1;///
align-reference=middle将char& foo2;格式化为char & foo2;///
align-reference=name将char& foo3;格式化为char &foo3;

else 块设置

--break-closing-braces / -y (与 --style=java, --style=kr, --style=stroustrup, --style=linux, or --style=1tbs 一起使用时有效)

将void Foo(bool isFoo) {if (isFoo) {bar();} else {anotherBar();}
}格式化为void Foo(bool isFoo) {if (isFoo) {bar();}else {anotherBar();}
}

else if 块设置

--break-elseifs / -e

将if (isFoo) {bar();
}
else if (isFoo1()) {bar1();
}
else if (isFoo2()) {bar2();
}格式化为if (isFoo) {bar();
}
elseif (isFoo1()) {bar1();}elseif (isFoo2()) {bar2();}

单行代码添加大括号

--add-braces / -j

将if (isFoo)isFoo = false;格式化为if (isFoo) {isFoo = false;
}

单行代码删除大括号

--remove-braces / -xj

将if (isFoo)
{isFoo = false;
}格式化为if (isFoo)isFoo = false;

返回类型单独一行

--break-return-type     / -xB
--break-return-type-decl  / -xD

将void Foo(bool isFoo);格式化为void
Foo(bool isFoo);

返回类型和函数名在一行

--attach-return-type    / -xf
--attach-return-type-decl / -xh

将void
Foo(bool isFoo);格式化为void Foo(bool isFoo);

删除注释块中多余的 *

--remove-comment-prefix / -xp

将/** comment line 1* comment line 2*/格式化为/*comment line 1comment line 2
*/

其他选项

备份文件后缀

--suffix=####

不备份原始文件

--suffix=none / -n

排除文件夹

--exclude=####

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

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

相关文章

【Vulnhub系列】Vulnhub_Raven2靶场渗透(原创)

【Vulnhub系列靶场】Vulnhub_Raven2 渗透 原文转载已经过授权 原文链接&#xff1a;Lusen的小窝 - 学无止尽&#xff0c;不进则退 (lusensec.github.io) 一、环境准备 从网盘下载该靶机&#xff0c;在vm中选择【打开】 然后设置好存储路径&#xff0c;开机后检查靶机的网络连…

Redis缓存数据库进阶——Redis缓存数据同步问题(8)

Redis缓存使用问题 数据一致性 只要使用到缓存&#xff0c;无论是本地内存做缓存还是使用 redis 做缓存&#xff0c;那么就会存在数据同步的问题。 我以 Tomcat 向 MySQL 中写入和删改数据为例&#xff0c;来给你解释一下&#xff0c;数据的增删改操作具体是如何进行的。 我…

从入门到精通:电商设计师的职业发展指南

在当今数字时代&#xff0c;电商设计师的作用越来越重要。从电子商务网站的整体造型设计到产品页面的具体布局&#xff0c;他们的工作范围是电子商务企业成功的关键因素之一。然而&#xff0c;并不是每个人都对这个职业有深刻的理解。因此&#xff0c;在本文中&#xff0c;我们…

【Git-驯化】一文学会git中对代码进行存储操作:git stash技巧

【Git-驯化】一文学会git中对代码进行存储操作&#xff1a;git stash技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内…

【无标题】DNS域名解析

回顾指令&#xff1a; samba机器&#xff1a; 安装samba Yum -y install samba 自建库&#xff0c;只下载不安装 Yum -y install --downloadonly --downloaddir./soft/ 配置samba Vim /etc/samba/smb.conf [smb_share] comment smb share service path /share/ guest…

python爬虫的基础知识

1.学习爬虫的好处 提升编程技能&#xff1a;爬虫开发需要掌握编程基础&#xff0c;特别是网络请求、HTML/CSS/JavaScript解析、数据存储和异常处理等技能。通过学习爬虫&#xff0c;你可以巩固和提升你的编程技能&#xff0c;特别是Python等编程语言的应用能力。 数据驱动决策…

力扣高频SQL 50题(基础版)第二十四题

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第二十四题1729.求关注者的数量题目说明实现过程准备数据实现方式结果截图 力扣高频SQL 50题&#xff08;基础版&#xff09;第二十四题 1729.求关注者的数量 题目说明 表&#xff1a; Followers ----------------…

QT--聊天室

一、设计要求 用QT做一个聊天室&#xff0c; 制作一个服务器和客户端。可以进行注册、登录&#xff0c; 登陆成功后可以使用昵称进行发送、接收消息。 能根据昵称、聊天内容查询历史记录&#xff0c;也可以查询全部聊天记录。 。 二、客户端三级ui界面 三、项目代码 //在…

【Redis进阶】集群

1. 集群分片算法 1.1 集群概述 首先对于"集群"这个概念是存在不同理解的&#xff1a; 广义的"集群"&#xff1a;表示由多台主机构成的分布式系统&#xff0c;称为"集群"狭义的"集群"&#xff1a;指的是redis提供的一种集群模式&…

K210视觉识别模块学习笔记8:Mx_yolo3本地模型训练环境搭建_部署模型到亚博canmv(失败)

今日开始学习K210视觉识别模块: 本地模型训练环境搭建 亚博智能 K210视觉识别模块...... 固件库: canmv_yahboom_v2.1.1.bin 本地训练 Mx_yolo3 这里就简单地提示一下下载安装哪些软件&#xff0c;然后主要是使用Mx_yolo3 进行本地训练模型的...... 本文不…

【Android】Fragment的添加

上一篇文章学到了碎片的创建与生命周期&#xff0c;接下来学习碎片的常用操作&#xff0c;其中会用到上一篇文章的三个碎片&#xff0c;就做一个简单的说明吧&#xff1a;LeftFragment&#xff08;包含一个按钮&#xff09;、RightFragment4&#xff08;以粉色为背景的文本&…

跨境电商选品师做好这几个关键点

在当今充满竞争的跨境电商市场上&#xff0c;成为一名成功的选品师并非易事。以下是几个关键点&#xff0c;能够帮助跨境电商选品师做好工作并取得成功。下面老阳为大家总结几点做好跨境选品师的几个关键点&#xff0c;希望对大家有所帮助。 首先&#xff0c;深入市场调研和产品…

Notepad

https://codeforces.com/contest/17/problem/D ​​​​​​​ 没有前导零 因此一共写个数字&#xff0c;再mod c 数据范围很大,因此我们魔改一下快读 再用扩展欧拉定理 #include<iostream> #include<cstdio> #include<cstring> using namespace std; ty…

JAVA里的多线程上部(详解)

1.实现多线程 1.1简单了解多线程【理解】 是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程&#xff0c;提升性能。 1.2并发和并行【理解】 并行&#xff1a;在同一时刻&#xff0c;有多个指令在多个CPU上…

华清IOday2 24-7-29

1> 写一个日志文件&#xff0c;将程序启动后&#xff0c;每一秒的时间写入到文件中 1、2024- 7-29 10:31:19 2、2024- 7-29 10:31:20 3、2024- 7-29 10:31:21 ctrlc:停止程序 ./a.out 4、2024- 7-29 10:35:06 5、2024- 7-29 10:35:07 6、2024- 7-29 10:35:08 main.c …

缓存穿透,缓存击穿,缓存雪崩

目录 介绍 缓存穿透 缓存击穿 缓存雪崩 原因 影响 解决方案 缓存穿透 防止缓存穿透->空值缓存案例 缓存击穿 使用互斥锁解决缓存击穿 介绍 缓存穿透 定义&#xff1a;缓存穿透是指用户查询数据&#xff0c;缓存和数据库中都不存在该数据&#xff08;一般是发起恶意…

实战:ZooKeeper 操作命令和集群部署

ZooKeeper 操作命令 ZooKeeper的操作命令主要用于对ZooKeeper服务中的节点进行创建、查看、修改和删除等操作。以下是一些常用的ZooKeeper操作命令及其说明&#xff1a; 一、启动与连接 启动ZooKeeper服务器&#xff1a; ./zkServer.sh start这个命令用于启动ZooKeeper服务器…

403 forbidden (13: Permission denied)

403 forbidden (13: Permission denied) 目录 403 forbidden (13: Permission denied) 【常见模块错误】 【解决方案】 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开发者…

基于视觉的语义匹配见多了,那基于雷达的呢?

论文题目&#xff1a; LiDAR-based HD Map Localization using Semantic Generalized ICP with Road Marking Detection 论文作者&#xff1a; Yansong Gong, Xinglian Zhang, Jingyi Feng, Xiao He and Dan Zhang 作者单位&#xff1a;北京驭势科技有限公司 导读&#xff…

python 查询机器python、gpu、安装包等环境版本信息

checkenv.py """Check environment configurations and dependency versions."""import importlib import os import resource import subprocess import sys from collections import OrderedDict, defaultdictimport torch# 查询自己想要的包…