SourceInsight 4.0 之三 常用宏使用、编辑、修改详解(附最新完善版本的宏)

简介

  SourceInsight 作为一款经典的代码查看工具,小巧、强大,各种代码通吃!从2018年开始,更新到了4.x版本。相对于之前死都不更新的3.5版本,4.x 的添加了许多更为好用的功能!以下文章均是以最新版本的 SourceInsight 4 为例来说明的。

  无论是 SourceInsight 3.5,还是最新的 4.x 版本,都支持强大的宏编制。官网给出了不少例子:https://www.sourceinsight.com/download/macro-files/ 。 目前,网上也有各种各样的 SourceInsight 宏可用,但是或多或少都存在一定的缺陷。例如注释与反注释、头文件与源文件的切换等等。如果有使用比较现代化的编辑器(比如:VSCode、Atom、Sublime Text等)就会发现,SourceInsight 有些功能确实强大,但是颜值是相当落后了!在此基础上,参照网上现有的一些宏,我进行了一下完善,具体效果如下:
SourceInsight 4.0 之三 常用宏使用、编辑、修改详解(附最新完善版本的宏)_第1张图片
  这里吐槽一下,有些人喜欢添加一堆无用的宏。例如:插入for循环、if语句等的宏,这完全就是画蛇添足的做法。 有经验的程序员都应该知道,目前,绝大多数代码编辑器(即便是级别不到 IDE 的)都有代码 Snippets 功能。 SourceInsight 也不例外!
SourceInsight 4.0 之三 常用宏使用、编辑、修改详解(附最新完善版本的宏)_第2张图片
对于和语言相关的内容,直接添加 Snippets才是解决方法! 当我们编辑打出关键字后,将自动显示Snippets供选择!而目前,网上现有的 SourceInsight 宏中,很多都会添加一堆无用的宏!

宏编辑

  正常安装完 SourceInsight,会在系统盘符(C):/用户/你的用户名/Documents目录下生产一个名为Source Insight 4.0的文件夹,这个文件夹就是 Source Insight 4.0 的各种配置文件所在目录,其中的宏实现就在其中的.\Projects\Base目录下。
SourceInsight 4.0 之三 常用宏使用、编辑、修改详解(附最新完善版本的宏)_第3张图片
  安装后会在安装目录下生成帮助文档,其中有非常详细的宏编写章节进行介绍。通常可以有两种方式使用自己添加的宏:

  1. 建立独立的xxxx.em文件,放在上面说的.\Projects\Base目录下。这样使用比较麻烦,需要将自己的文件添加到 base 项目。否则,不会加载自己的文件!
  2. 直接双击打开默认的Base.siproj工程或者启动 SourceInsight,从中打开,在里面添加自己的宏。这样更加方便!

我这里使用的第二种方式,具体步骤如下:
SourceInsight 4.0 之三 常用宏使用、编辑、修改详解(附最新完善版本的宏)_第4张图片
打开后就会出现如下编辑界面:
SourceInsight 4.0 之三 常用宏使用、编辑、修改详解(附最新完善版本的宏)_第5张图片
从中可以看到,SourceInsight 本身自带了一部分宏值,我们只需要在后面添加自己的宏即可!
  SourceInsight的宏编写还是非常简单的,参考其说明文档,基本只要有编程经验或者有为其他工具编写插件经验的人都可以很快编写出一个简单的宏!附件我会提供我自己使用的源文件,里面都有很详细的注释!

// 用于添加//注释多行
macro CommentMultiLine_CPP()
{
	hwnd = GetCurrentWnd()
	if(hwnd == hNil)
	{
		Msg("No file opened! Please open one file.")
	}
	else
	{
		selection = GetWndSel(hwnd)			// 选中的区域信息
		LnFirst = GetWndSelLnFirst(hwnd)	// 取选中的区域首行行号
		LnLast = GetWndSelLnLast(hwnd)		// 取选中的区域末行行号
		hbuf = GetCurrentBuf()
		if(GetBufLine(hbuf, 0) =="//magic-number:tph85666031")
		{
			stop
		}
		Ln = Lnfirst
		while(Ln <= Lnlast) 
		{
			buf = GetBufLine(hbuf, Ln)	//取Ln对应的行
			if(buf =="")
			{					//跳过空行
				Ln = Ln + 1
				continue
			}
			
			if(StrMid(buf, 0, 1) == "/") // 需要取消注释,防止只有单字符的行
			{	 
				if(StrMid(buf, 1, 2) == "/")
				{
					PutBufLine(hbuf, Ln, StrMid(buf, 2, Strlen(buf)))
				}
			}
			
			if(StrMid(buf,0,1) !="/")// 需要添加注释
			{		 
				PutBufLine(hbuf, Ln, Cat("//", buf))
			}
			Ln = Ln + 1
		}
		SetWndSel(hwnd, selection)
	}
}

宏使用

  当做好了如上步骤后,SourceInsight 便会自动加载我们编制的宏。使用非常简单,如下图:
SourceInsight 4.0 之三 常用宏使用、编辑、修改详解(附最新完善版本的宏)_第6张图片
从中选择自己的宏值即可!还可以直接指定快捷键!

附件

完善版宏源文件

你可能感兴趣的:(SourceInsight)