WALL_E 发表于 2019-11-8 15:16:48

将Source Insight打造成好用的编辑器(98楼下载)

一、比较冷门的小技巧
1.列选按住Alt键进行列选,SI列选是框区域。


2.TODO注释高亮
Options->>Preferencess->>SyntaxFormatting,勾选Special comment styles。Options->>Style Properties,在Comment To Do条目设置代码高亮显示方式等。


二、宏

SI的宏很有意思,像C语言语法,可以设置快捷键,提高编程效率。网上有一个Quicker.em宏,比较强大。但是很多功能用不到,添加函数头注释要弹窗输入各个参数,编程时还是尽量少弹窗。自己写了一个,用着还挺舒服。如果有bug希望提出,我来改进。关于使用Quicker教程,网上可以找到。

0.使用方法
添加入Base工程
将miniMacro.em文件拷贝到C:\Users\你的用户名\Documents\Source Insight 4.0\Projects\Base路径下。打开SI软件,选择Project->>Open Project,然后选择Base工程,将miniMacro.em加入工程中即可。

设置快捷键
选择Options->>Key Assignments,搜索miniMacro,添加快捷键,我设置的是Ctrl+Enter。除此之外,我将快速注释宏(quickAnnotate)设为Alt+1,添加函数注释(addFuncHeader)设置为Alt+2,添加行注释(doxygenLineAnnotate)设置为Alt+3。

1.快速注释(quickAnnotate) 命令代码 "//" "///"
如果注释一块区域,需要先选中,然后执行操作。如果区域已经被快速注释,此操作变成去除注释。
如果注释一行,光标移到行的位置上,执行命令即可。


2.添加文件头注释(addFileHeader) 命令代码 "hd" "head" "header"
函数头注释,显示文件名,作者。如果第一次运行,会弹窗输入作者名,作者名会被写入注册表中,下次就不会弹窗了。若要修改保存的作者名,详见修改作者名命令(changeAuthor)。



3.格式化文档命令(formatFile) 命令代码 "fmt""format"
模仿着HAL库注释,添加一些固定的注释内容。自动识别文件类型,如果不是C代码文件,只添加文件头。如果是头文件,会将#ifndef部分添加进去,具体看演示。



4.添加doxygen注释(doxygenAddgroup)(doxygenDefgroup) 对应命令代码"add""addtogroup""def""defgroup"
可以选中一块区域,使用miniMacro命令,弹窗输入命令代码添加。此时选中区域会包含在这个注释里面。也可空位置执行,创建一个注释。


5.修改作者(changeAuthor)命令代码"changemyname"“author”
更改保存在注册表中的作者名。


6.函数头注释(addFuncHeader) 命令代码 "func" "function"
C语言函数定义很复杂,形参可以包含数组、指向函数的指针等等。可能有些情况我没考虑到,会导致识别错误。不过,按照一般的格式创建的函数,还是可以识别的。




7.doxygen块注释(doxygenVerbatim) 命令代码 "vbt" "verbatim"
注释块必须包含在已有的块注释内。会弹窗输出这段注释块的主题内容,自动居中显示。


8.行注释(doxygenLineAnnotate) 命令代码 "//"
行注释会自动识别位置。如果是注释左侧代码,会自动按照doxygen风格。此处没去实现自动右边界对其,因为需要弹窗输入注释,我不喜欢编程时太多弹窗。


9.其他说明
注释内容可以自行修改,命令代码也可更改。无命令代码的位置,执行miniMacro命令(ENTER+CTRL),会自动查找"&#&"并选中,直接输入注释内容即可。所有macro开头的函数都可以单独设置成快捷键。

三、Monokai主题
Options->Visual Theme->Manage Visual Themes,Import。选择主题文件,OK。



Debug Log:
1、$#$是SI内部字符,鼠标点击或者选中,软件会迅速用之前输入的内容替换这个字符串,如果不喜欢这个功能,可以打开宏原文件,把所有$#$替换成&#&即可。(2019.11.11)
2、增加复杂函数返回值注释功能,之前只能显示一个单词,现在更新为最多5个(比如 unsigned long long int **foo(void)),返回值可以写在函数名上一行。(2020.11.21)
3、感谢坛友@yumeng的提示,现将函数参数提取采用逐行分析的方式,函数体大小及参数行数不再会崩溃,只要参数不是近百个,基本上很快会处理完毕。(2020.11.21)








eric2013 发表于 2019-11-8 15:29:03

非常感谢楼主分享,置酷{:8:}

neomissing 发表于 2019-11-8 16:20:56

多谢分享,我还在沿用si3的风格

596142041 发表于 2019-11-8 20:59:34

这6666啊!

zhoushanfei 发表于 2019-11-10 11:24:31

这个好,自己要摸索出这个很费时间的,谢谢!

zhousun 发表于 2019-11-11 09:06:31

我也在研究SI的宏,什么地方有说明啊,好多地方系统调用不知道如何使用;我也想对quicker宏修改一下

WALL_E 发表于 2019-11-11 10:30:56

zhousun 发表于 2019-11-11 09:06
我也在研究SI的宏,什么地方有说明啊,好多地方系统调用不知道如何使用;我也想对quicker宏修改一下

帮助文件里对函数的介绍是有点少,要自己写程序实验来猜测函数功能。可以结合Quicker和官方的那个utils进行学习。

WALL_E 发表于 2019-11-11 11:48:01

本帖最后由 WALL_E 于 2020-11-21 22:39 编辑

Monokai主题
Options->>Preferences,Colors&Fonts设置如下:


Options->>Style Properties,Load:

效果如下:

(已有更好方式,见1楼)



WALL_E 发表于 2019-11-11 14:27:20

Debug Log:
1、$#$是SI内部字符,鼠标点击或者选中,软件会迅速用之前输入的内容替换这个字符串,如果不喜欢这个功能,可以打开宏原文件,把所有$#$替换成&#&即可。(2019.11.11)

hzz 发表于 2019-11-13 16:54:35

用得这么6666啊!{:8:}

xode 发表于 2019-11-13 18:02:15

SI 4.0好像导入后未能识别到?

WALL_E 发表于 2019-11-14 07:32:01

xode 发表于 2019-11-13 18:02
SI 4.0好像导入后未能识别到?

Options->>Preferences,Colors&Fonts,这里按照图片上的RGB值设置一下了吗?对了,选中区域的背景色我设置的有点淡,可以再设置白一些。

廷润 发表于 2019-11-14 08:19:04

顶起来

linux518 发表于 2019-11-14 20:30:01

牛皮,学习了

soloriens 发表于 2019-11-18 09:20:36

谢谢楼主分享

zwmasdf 发表于 2019-11-18 15:08:43

多行注释其实Source Insight自带,只是没快捷键,位于菜单Edit->Special Edit->Comment Lines和Un-Comment Lines,只需自定义快捷键即可方便使用

jgp886585 发表于 2019-11-19 18:07:24

谢谢分享,好东西

浴火重生 发表于 2019-11-20 09:02:35

楼主的miniMacro 真的太神奇了

浴火重生 发表于 2019-11-20 09:39:29

$#$ 貌似识别有问题,建议换成$i$

浴火重生 发表于 2019-11-20 10:19:59

函数注释有个bug,修改了第一个@briefxxx注释之后,按方向键向下修改第二行@param,会自动填充$#$为第一个注释 xxx

Xingou 发表于 2019-11-20 10:42:50

一直在使用SI,感觉已经很好用了,有了这些更好用了,学习了,非常感谢

WALL_E 发表于 2019-11-20 14:42:22

浴火重生 发表于 2019-11-20 10:19
函数注释有个bug,修改了第一个@briefxxx注释之后,按方向键向下修改第二行@param,会自动填充$#$为第一 ...

是的,按照9楼方法更改下。

浴火重生 发表于 2019-11-22 13:15:43

$#$是SI4的内部字符吗,为什么我的识别不出来

WALL_E 发表于 2019-11-22 17:10:13

浴火重生 发表于 2019-11-22 13:15
$#$是SI4的内部字符吗,为什么我的识别不出来

好像是$$会声明一个替换符,中间无论是什么字符,名字一样就可以快速替换。只是字母数字和$会被高亮显示出来。查找Help没找到相关介绍,似乎是snippet相关的。

芯跳不止 发表于 2020-2-25 22:14:18

我按照你的方法添加的文件,但无法在快捷键中搜索到呀

WALL_E 发表于 2020-2-27 08:49:24

芯跳不止 发表于 2020-2-25 22:14
我按照你的方法添加的文件,但无法在快捷键中搜索到呀

打开Base工程后,点击Project-》Add and Remove Project Files将.em的文件加入工程后,再点击Project-》Synchronize Files-》start同步一下。

yumeng 发表于 2020-2-29 21:15:02

一直想自己总结一下si的使用技巧,在你这个帖子上看到了好多,感谢感谢!

yumeng 发表于 2020-2-29 21:16:30

感谢感谢

yumeng 发表于 2020-3-3 22:07:19

问下楼主,多个$#$按什么快捷键切换到下一个$#$?

WALL_E 发表于 2020-3-6 11:52:06

yumeng 发表于 2020-3-3 22:07
问下楼主,多个$#$按什么快捷键切换到下一个$#$?

无命令代码的位置,执行miniMacro命令(我设置的快捷键是Ctrl+Enter),会自动查找"$#$"并选中,另外“$#$”有bug,把文件里的"$#$"换成"&#&"。最近发现添加函数头注释时,函数很多行时会出错,过段时间闲下来改一下。

xiaomeng 发表于 2020-3-8 15:06:11

如图这种情况,如何设置能够让大括号缩进与while自动对齐呢?

WALL_E 发表于 2020-3-9 15:46:56

xiaomeng 发表于 2020-3-8 15:06
如图这种情况,如何设置能够让大括号缩进与while自动对齐呢?

Options->File Type Options右侧Auto Indent设置如下:

xiaomeng 发表于 2020-3-9 21:12:47

WALL_E 发表于 2020-3-9 15:46
Options->File Type Options右侧Auto Indent设置如下:

我的确这样设置了,只不过自动生成的时候还是会没有对齐;
只不过影响我手动输入括号的时候 有无缩进。

xiaomeng 发表于 2020-3-9 21:15:06

WALL_E 发表于 2020-3-9 15:46
Options->File Type Options右侧Auto Indent设置如下:

为了说明问题,我还是上个动图吧

WALL_E 发表于 2020-3-10 07:54:18

xiaomeng 发表于 2020-3-9 21:15
为了说明问题,我还是上个动图吧

这个是插入Snippets功能,需要修改Snippets,view->panel->snippet window,找到要修改的条目,右击edit snippet。

浴火重生 发表于 2020-3-13 10:49:16

WALL_E 发表于 2020-3-6 11:52
无命令代码的位置,执行miniMacro命令(我设置的快捷键是Ctrl+Enter),会自动查找"$#$"并选中,另外“$#$ ...

确实这个$i$ $#$ 都有bug,$#$ &#&不是SI4内部宏吧,不会自动高亮啊,$i$会高亮,但是还是没法跳转

billy226 发表于 2020-3-14 09:49:35

楼主,我的si3使用不了,如图报Error,难道只能si4才能用这个miniMacro?

xiaomeng 发表于 2020-3-15 15:36:07

WALL_E 发表于 2020-3-10 07:54
这个是插入Snippets功能,需要修改Snippets,view->panel->snippet window,找到要修改的条目,右击edit...

谢谢,改过可以了{:34:}

WALL_E 发表于 2020-3-15 18:33:06

billy226 发表于 2020-3-14 09:49
楼主,我的si3使用不了,如图报Error,难道只能si4才能用这个miniMacro?

我试了下Si3确实用不了,可能某些函数不支持。
链接:https://pan.baidu.com/s/1tD7_7tzBNPrUkNxczBhN5w
提取码:mmj8

WALL_E 发表于 2020-3-15 19:08:18

本帖最后由 WALL_E 于 2020-12-1 14:34 编辑

:)
页: [1] 2 3
查看完整版本: 将Source Insight打造成好用的编辑器(98楼下载)