硬汉嵌入式论坛

 找回密码
 立即注册
查看: 52128|回复: 118
收起左侧

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

  [复制链接]

9

主题

91

回帖

123

积分

初级会员

积分
123
发表于 2019-11-8 15:16:48 | 显示全部楼层 |阅读模式
一、比较冷门的小技巧
1.列选按住Alt键进行列选,SI列选是框区域。

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



二、宏

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

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

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

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

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

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

添加函数注释2.gif

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

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

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)


Quicker.em (139.76 KB, 下载次数: 333) Monokai_theme.xml (14.05 KB, 下载次数: 321)


miniMacro.em (25.39 KB, 下载次数: 322)


评分

参与人数 11金币 +205 收起 理由
天下玄黄 + 6
妖娆的大叔 + 10 很给力!
BugCreater + 20
TRX + 20 很给力!
入骨 + 2 很给力!
templt + 20 很给力!
小完能干脆面 + 2 赞一个!
无关风月 + 20 很给力!
芯跳不止 + 1
龙之谷 + 4 赞一个!
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2019-11-8 15:29:03 | 显示全部楼层
非常感谢楼主分享,置酷
回复

使用道具 举报

1

主题

74

回帖

77

积分

初级会员

积分
77
发表于 2019-11-8 16:20:56 | 显示全部楼层
多谢分享,我还在沿用si3的风格
回复

使用道具 举报

8

主题

122

回帖

146

积分

初级会员

积分
146
发表于 2019-11-8 20:59:34 | 显示全部楼层
这6666啊!
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2019-11-10 11:24:31 | 显示全部楼层
这个好,自己要摸索出这个很费时间的,谢谢!
回复

使用道具 举报

0

主题

66

回帖

66

积分

初级会员

积分
66
发表于 2019-11-11 09:06:31 | 显示全部楼层
我也在研究SI的宏,什么地方有说明啊,好多地方系统调用不知道如何使用;我也想对quicker宏修改一下
回复

使用道具 举报

9

主题

91

回帖

123

积分

初级会员

积分
123
 楼主| 发表于 2019-11-11 10:30:56 | 显示全部楼层
zhousun 发表于 2019-11-11 09:06
我也在研究SI的宏,什么地方有说明啊,好多地方系统调用不知道如何使用;我也想对quicker宏修改一下

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

使用道具 举报

9

主题

91

回帖

123

积分

初级会员

积分
123
 楼主| 发表于 2019-11-11 11:48:01 | 显示全部楼层
本帖最后由 WALL_E 于 2020-11-21 22:39 编辑

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

Options->>Style Properties,Load:
加载主题.png
效果如下:
效果图.png
(已有更好方式,见1楼)



themesMonokai.xml

8.72 KB, 下载次数: 118

回复

使用道具 举报

9

主题

91

回帖

123

积分

初级会员

积分
123
 楼主| 发表于 2019-11-11 14:27:20 | 显示全部楼层
Debug Log:
1、$#$是SI内部字符,鼠标点击或者选中,软件会迅速用之前输入的内容替换这个字符串,如果不喜欢这个功能,可以打开宏原文件,把所有$#$替换成&#&即可。(2019.11.11)
回复

使用道具 举报

0

主题

29

回帖

29

积分

新手上路

积分
29
发表于 2019-11-13 16:54:35 | 显示全部楼层
用得这么6666啊!
回复

使用道具 举报

0

主题

30

回帖

30

积分

新手上路

积分
30
发表于 2019-11-13 18:02:15 | 显示全部楼层
SI 4.0好像导入后未能识别到?
回复

使用道具 举报

9

主题

91

回帖

123

积分

初级会员

积分
123
 楼主| 发表于 2019-11-14 07:32:01 | 显示全部楼层
xode 发表于 2019-11-13 18:02
SI 4.0好像导入后未能识别到?

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

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2019-11-14 08:19:04 | 显示全部楼层
顶起来
Releasing your creativity
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2019-11-14 20:30:01 | 显示全部楼层
牛皮,学习了
回复

使用道具 举报

2

主题

11

回帖

17

积分

新手上路

积分
17
发表于 2019-11-18 09:20:36 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

8

主题

42

回帖

71

积分

初级会员

积分
71
发表于 2019-11-18 15:08:43 | 显示全部楼层
多行注释其实Source Insight自带,只是没快捷键,位于菜单Edit->Special Edit->Comment Lines和Un-Comment Lines,只需自定义快捷键即可方便使用
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 2019-11-19 18:07:24 | 显示全部楼层
谢谢分享,好东西
回复

使用道具 举报

4

主题

173

回帖

185

积分

初级会员

积分
185
发表于 2019-11-20 09:02:35 | 显示全部楼层
楼主的miniMacro 真的太神奇了
回复

使用道具 举报

4

主题

173

回帖

185

积分

初级会员

积分
185
发表于 2019-11-20 09:39:29 | 显示全部楼层
$#$ 貌似识别有问题,建议换成$i$
回复

使用道具 举报

4

主题

173

回帖

185

积分

初级会员

积分
185
发表于 2019-11-20 10:19:59 | 显示全部楼层
函数注释有个bug,修改了第一个@brief  xxx  注释之后,按方向键向下修改第二行@param,会自动填充$#$为第一个注释 xxx
回复

使用道具 举报

1

主题

6

回帖

9

积分

新手上路

积分
9
发表于 2019-11-20 10:42:50 | 显示全部楼层
一直在使用SI,感觉已经很好用了,有了这些更好用了,学习了,非常感谢
回复

使用道具 举报

9

主题

91

回帖

123

积分

初级会员

积分
123
 楼主| 发表于 2019-11-20 14:42:22 | 显示全部楼层
浴火重生 发表于 2019-11-20 10:19
函数注释有个bug,修改了第一个@brief  xxx  注释之后,按方向键向下修改第二行@param,会自动填充$#$为第一 ...

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

使用道具 举报

4

主题

173

回帖

185

积分

初级会员

积分
185
发表于 2019-11-22 13:15:43 | 显示全部楼层
$#$是SI4的内部字符吗,为什么我的识别不出来 关键词.png
回复

使用道具 举报

9

主题

91

回帖

123

积分

初级会员

积分
123
 楼主| 发表于 2019-11-22 17:10:13 | 显示全部楼层
浴火重生 发表于 2019-11-22 13:15
$#$是SI4的内部字符吗,为什么我的识别不出来

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

使用道具 举报

6

主题

216

回帖

234

积分

高级会员

积分
234
发表于 2020-2-25 22:14:18 | 显示全部楼层
TIM截图20200225221318.jpg 我按照你的方法添加的文件,但无法在快捷键中搜索到呀
回复

使用道具 举报

9

主题

91

回帖

123

积分

初级会员

积分
123
 楼主| 发表于 2020-2-27 08:49:24 | 显示全部楼层
芯跳不止 发表于 2020-2-25 22:14
我按照你的方法添加的文件,但无法在快捷键中搜索到呀

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

使用道具 举报

17

主题

177

回帖

233

积分

高级会员

积分
233
QQ
发表于 2020-2-29 21:15:02 | 显示全部楼层
一直想自己总结一下si的使用技巧,在你这个帖子上看到了好多,感谢感谢!
回复

使用道具 举报

17

主题

177

回帖

233

积分

高级会员

积分
233
QQ
发表于 2020-2-29 21:16:30 | 显示全部楼层
感谢感谢
回复

使用道具 举报

17

主题

177

回帖

233

积分

高级会员

积分
233
QQ
发表于 2020-3-3 22:07:19 | 显示全部楼层
问下楼主,多个$#$按什么快捷键切换到下一个$#$?
回复

使用道具 举报

9

主题

91

回帖

123

积分

初级会员

积分
123
 楼主| 发表于 2020-3-6 11:52:06 | 显示全部楼层
yumeng 发表于 2020-3-3 22:07
问下楼主,多个$#$按什么快捷键切换到下一个$#$?

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

使用道具 举报

5

主题

95

回帖

110

积分

初级会员

积分
110
发表于 2020-3-8 15:06:11 | 显示全部楼层
如图这种情况,如何设置能够让大括号缩进与while自动对齐呢?
QQ浏览器截图20200308150248.png
回复

使用道具 举报

9

主题

91

回帖

123

积分

初级会员

积分
123
 楼主| 发表于 2020-3-9 15:46:56 | 显示全部楼层
xiaomeng 发表于 2020-3-8 15:06
如图这种情况,如何设置能够让大括号缩进与while自动对齐呢?

Options->File Type Options右侧Auto Indent设置如下:
AutoIndentType.png
回复

使用道具 举报

5

主题

95

回帖

110

积分

初级会员

积分
110
发表于 2020-3-9 21:12:47 | 显示全部楼层
WALL_E 发表于 2020-3-9 15:46
Options->File Type Options右侧Auto Indent设置如下:

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

使用道具 举报

5

主题

95

回帖

110

积分

初级会员

积分
110
发表于 2020-3-9 21:15:06 | 显示全部楼层
WALL_E 发表于 2020-3-9 15:46
Options->File Type Options右侧Auto Indent设置如下:

为了说明问题,我还是上个动图吧
GIF1.gif
回复

使用道具 举报

9

主题

91

回帖

123

积分

初级会员

积分
123
 楼主| 发表于 2020-3-10 07:54:18 | 显示全部楼层
xiaomeng 发表于 2020-3-9 21:15
为了说明问题,我还是上个动图吧

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

使用道具 举报

4

主题

173

回帖

185

积分

初级会员

积分
185
发表于 2020-3-13 10:49:16 | 显示全部楼层
WALL_E 发表于 2020-3-6 11:52
无命令代码的位置,执行miniMacro命令(我设置的快捷键是Ctrl+Enter),会自动查找"$#$"并选中,另外“$#$ ...

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

使用道具 举报

9

主题

39

回帖

66

积分

初级会员

只要努力,没有什么办不到

积分
66
发表于 2020-3-14 09:49:35 | 显示全部楼层
楼主,我的si3使用不了,如图报Error,难道只能si4才能用这个miniMacro?
888.png
回复

使用道具 举报

5

主题

95

回帖

110

积分

初级会员

积分
110
发表于 2020-3-15 15:36:07 | 显示全部楼层
WALL_E 发表于 2020-3-10 07:54
这个是插入Snippets功能,需要修改Snippets,view->panel->snippet window,找到要修改的条目,右击edit  ...

谢谢,改过可以了
回复

使用道具 举报

9

主题

91

回帖

123

积分

初级会员

积分
123
 楼主| 发表于 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
回复

使用道具 举报

9

主题

91

回帖

123

积分

初级会员

积分
123
 楼主| 发表于 2020-3-15 19:08:18 | 显示全部楼层
本帖最后由 WALL_E 于 2020-12-1 14:34 编辑

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-11-1 07:06 , Processed in 0.852937 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表