source insight怎么用 3.5怎么用

1355人阅读
Source Insight 3.5 宏的用法
Source Insight 是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C++, C#和Java等程序的分析。能分析源代码并在工作的同时动态维护它自己的符号数据库,并自动显示有用的上下文信息。
最近使用 Source Insight 比较频繁,在编写代码的时候,一些常用重复操作可以用内置的快捷键来实现。但是一些不常用的操作就往往需要自己慢慢花时间实现。Source Insight 作为一个很好很强大的代码阅读与编辑工具,自然提供了自身的解决方案——宏语言。Source Insight 的宏语言很人性化地为用户提供了一整套对代码的编辑操作的内置操作,通过这些操作,用户能够定制出更加复杂更加适合自己的操作。
关于宏的用法,可以参考 Source Insight 3.5 的官方,而且还有贴心的可供下载。然而整个文档有差不多400页,根本不可能看完。
参考了网上的一些代码,然后自己试着编了一个宏:InserFileHeader。主要实现以下功能:
自动在文件的第一行开始插入该文件的描述,并生成代码模板
自动识别文件名,并添加到文件描述中
自动加入创建时间,格式为Year-Month-Day HH-MM-SS
自动根据文件类型创建不同的文件描述(目前仅支持c文件和h文件)
先看一眼效果吧:
在c文件中生成的效果:
******************************************************************************
This file provides all the bsp_can functions.
******************************************************************************
* FILE FOR DMET-SKL ONLY
* Copyright (C), , 华中科技大学数字制造装备与技术国家重点实验室
******************************************************************************
#include"bsp_can.h"
在h文件中生成的效果:
******************************************************************************
This file contains all the functions prototypes for the BOARD
******************************************************************************
* FILE FOR DMET-SKL ONLY
* Copyright (C), , 华中科技大学数字制造装备与技术国家重点实验室
******************************************************************************
#ifndef __BSP_CAN_H
#define __BSP_CAN_H
#include "includes.h"
然后再看一眼代码:
macro InserFileHeader()
LnFirst = 0
hbuf = GetCurrentBuf()
fPath = GetBufName(hbuf)
LocalTime = GetSysTime(1)
Year = LocalTime.Year
Month = LocalTime.Month
Day = LocalTime.Day
Time = LocalTime.time
if (fPath != hNil)
fLen = strlen(fPath)
len = fLen
while(StrMid(fPath, len - 1, len) != "\\")
len = len - 1
fileName = StrMid(fPath, len, fLen - 2)
if(StrMid(fPath, fLen - 1, fLen)=="c")
InsBufLine(hbuf, LnFirst++, "/**")
InsBufLine(hbuf, LnFirst++, "
******************************************************************************")
InsBufLine(hbuf, LnFirst++, "
* \@file@fileName@.c")
InsBufLine(hbuf, LnFirst++, "
* \@author
rhh\@DMET-SKL")
InsBufLine(hbuf, LnFirst++, "
* \@version V1.0")
InsBufLine(hbuf, LnFirst++, "
* \@date@Year@-@Month@-@Day@ @Time@")
InsBufLine(hbuf, LnFirst++, "
This file provides all the @fileName@ functions. ")
InsBufLine(hbuf, LnFirst++, "
******************************************************************************")
InsBufLine(hbuf, LnFirst++, "
* \@attention")
InsBufLine(hbuf, LnFirst++, "
InsBufLine(hbuf, LnFirst++, "
* FILE FOR DMET-SKL ONLY")
InsBufLine(hbuf, LnFirst++, "
InsBufLine(hbuf, LnFirst++, "
* Copyright (C), 2015-2025, 华中科技大学数字制造装备与技术国家重点实验室")
InsBufLine(hbuf, LnFirst++, "
******************************************************************************")
InsBufLine(hbuf, LnFirst++, "
InsBufLine(hbuf, LnFirst++, "")
InsBufLine(hbuf, LnFirst++, "/* Includes ------------------------------------------------------------------*/")
InsBufLine(hbuf, LnFirst++, "")
InsBufLine(hbuf, LnFirst++, "
InsBufLine(hbuf, LnFirst++, "")
InsBufLine(hbuf, LnFirst++, "/* Private typedef -----------------------------------------------------------*/")
InsBufLine(hbuf, LnFirst++, "/* Private macro -------------------------------------------------------------*/")
InsBufLine(hbuf, LnFirst++, "/* Private variables ---------------------------------------------------------*/")
InsBufLine(hbuf, LnFirst++, "/* Private function prototypes -----------------------------------------------*/")
InsBufLine(hbuf, LnFirst++, "/* Private functions ---------------------------------------------------------*/"
InsBufLine(hbuf, LnFirst++, "")
else if(StrMid(fPath, fLen - 1, fLen)=="h")
upperName = toupper(fileName)
InsBufLine(hbuf, LnFirst++, "/**")
InsBufLine(hbuf, LnFirst++, "
******************************************************************************")
InsBufLine(hbuf, LnFirst++, "
* \@file@fileName@.h ")
InsBufLine(hbuf, LnFirst++, "
* \@author
rhh\@DMET-SKL")
InsBufLine(hbuf, LnFirst++, "
* \@version V1.0")
InsBufLine(hbuf, LnFirst++, "
* \@date@Year@-@Month@-@Day@ @Time@")
InsBufLine(hbuf, LnFirst++, "
This file contains all the functions prototypes for the BOARD ")
InsBufLine(hbuf, LnFirst++, "
@fileName@ ")
InsBufLine(hbuf, LnFirst++, "
******************************************************************************")
InsBufLine(hbuf, LnFirst++, "
* \@attention")
InsBufLine(hbuf, LnFirst++, "
InsBufLine(hbuf, LnFirst++, "
* FILE FOR DMET-SKL ONLY")
InsBufLine(hbuf, LnFirst++, "
InsBufLine(hbuf, LnFirst++, "
* Copyright (C), 2012-2022, 华中科技大学数字制造装备与技术国家重点实验室")
InsBufLine(hbuf, LnFirst++, "
******************************************************************************")
InsBufLine(hbuf, LnFirst++, "
InsBufLine(hbuf, LnFirst++, "")
InsBufLine(hbuf, LnFirst++, "/* Define to prevent recursive inclusion -------------------------------------*/")
InsBufLine(hbuf, LnFirst++, "")
InsBufLine(hbuf, LnFirst++, "
InsBufLine(hbuf, LnFirst++, "#define __@upperName@_H")
InsBufLine(hbuf, LnFirst++, "")
InsBufLine(hbuf, LnFirst++, "/* Includes ------------------------------------------------------------------*/")
InsBufLine(hbuf, LnFirst++, "")
InsBufLine(hbuf, LnFirst++, "#include \"includes.h\"")
InsBufLine(hbuf, LnFirst++, "")
InsBufLine(hbuf, LnFirst++, "/* Exported typedef ----------------------------------------------------------*/")
InsBufLine(hbuf, LnFirst++, "/* Exported variables --------------------------------------------------------*/")
InsBufLine(hbuf, LnFirst++, "/* Exported macro ------------------------------------------------------------*/")
InsBufLine(hbuf, LnFirst++, "/* Exported functions ------------------------------------------------------- */")
InsBufLine(hbuf, LnFirst++, "")
InsBufLine(hbuf, LnFirst++, "#endif
/* __@upperName@_H */")
InsBufLine(hbuf, LnFirst++, "")
Base 工程: Base 工程是 Source Insight 自带的工程,存放目录一般为:C:\Users\XXX\Documents\Source Insight\Projects\Base。XXX 是电脑的用户名。Base 工程下的utils.em文件里面存放用户自定义的宏代码。比如我自定义的InsertFileHeader。
快捷键绑定:使用宏无非就是为了自身方便,所以常常给自己定义的宏绑定快捷键。Options → Key Assignments,按下图设置:
可以看到左栏里边有很多以 Macro: 开头的命令,这都是在 utils.em 文件中实现的宏。而 Keystrokes 中显示当前命令所绑定的快捷键。注意:一个命令可以绑定多个快捷键。
内置命令解释:
InsBufLine:插入行,指定行号以及插入的内容。
GetBufName:获取文件完整路径,包括文件名。
GetSysTime:获取系统时间,参数不为 0 时获取本机时间,否则获取 UTC 时间。
strlen:获取字符串长度。
StrMid:截取字符串,从指定序号开始到制定序号结束(返回的字符串不包括结束序号,而且字符串序号从 0 开始)。
其实看文档就没什么问题了。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5353次
排名:千里之外> Source Insight 3.5 的使用手册Source Insight 3.5 的使用手册已有 434514个资源相关资源下载专区上传者其他资源其它热门资源本周本月全部文档信息资源大小:3.74MB上 传 者: () 上传日期:资源类型:应用文档资源积分:1分评
论:下载次数:1参与讨论:标&&&&签:分&&&&享:文档简介Source&Insight&3.5&的使用手册,详细介绍了Source&Insight&3.5文件列表.myeclipse----|CVS----|----|Repository----|----|Root.settings----|CVS----|----|Entries----|----|Repository----|----|Rootorg.eclipse.core.resources.prefs.svn----|prop-basepropstext-base----|readme.txt.svn-basetmp----|prop-basepropstext-baseall-wcpropsdir-prop-baseentriesformat.classpath.cproject.pdf.project.qmake.internal.cache.synopsys_dc.setup.synopsys_pt.setupUserManual.pdf相关帖子大学堂最新课程请选择理由 辱骂 色情 广告提交若举报审核通过,可奖励2下载分举报人:被举报人:PKelect举报的资源分:1* 类型:请选择类型资源无法下载资源分类不正确资源无法使用标题与实际内容不符含有危害国家安全内容含有反动色情等内容含广告内容版权问题,侵犯个人或公司的版权其他* 详细原因:回到顶部EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱service(.cn 或通过站内短信息或QQ:联系管理员okhxyyo,我们会尽快处理。Source_Insight 3.5 简明使用教程_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Source_Insight 3.5 简明使用教程
上传于|0|0|文档简介
&&Source_Insight 3.5 简明使用教程 Source_Insight_3.5_简明使用教程 Source_Insight_3.5_简明使用教程 Source_Insight_3.5_简明使用教程 Source_Insight_3.5_简明使用教程 Source_Insight_3.5_简明使用教程
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Source Insight 3.5 简明使用教程.pdf
扫描二维码,下载文件到手机
相关文档推荐
当前文件信息
浏览:120次
下载:42次
您的VIP会员已过期,是否续费?
用户应遵守著作权法,尊重著作权人合法权益,不违法上传、存储并分享他人作品。举报邮箱:
京网文[0号 京ICP证100780号

我要回帖

更多关于 source insight 4使用 的文章

 

随机推荐