Source Insight 3.5 宏的用法
Source Insight 是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C++, C#和Java等程序的分析。能分析源代码并在工作的同时动态维护它自己的符号数据库,并自动显示有用的上下文信息。
最近使用 Source Insight 比较频繁,在编写代码的时候,一些常用重复操作可以用内置的快捷键来实现。但是一些不常用的操作就往往需要自己慢慢花时间实现。Source Insight 作为一个很好很强大的代码阅读与编辑工具,自然提供了自身的解决方案——宏语言。Source Insight 的宏语言很人性化地为用户提供了一整套对代码的编辑操作的内置操作,通过这些操作,用户能够定制出更加复杂更加适合自己的操作。
关于宏的用法,可以参考 Source Insight 3.5 的官方在线文档,而且还有贴心的pdf版可供下载。然而整个文档有差不多400页,根本不可能看完。
参考了网上的一些代码,然后自己试着编了一个宏:InserFileHeader。主要实现以下功能:
- 自动在文件的第一行开始插入该文件的描述,并生成代码模板
- 自动识别文件名,并添加到文件描述中
- 自动加入创建时间,格式为Year-Month-Day HH-MM-SS
- 自动根据文件类型创建不同的文件描述(目前仅支持c文件和h文件)
先看一眼效果吧:
效果
在c文件中生成的效果:
/**
******************************************************************************
* @file bsp_can.c
* @author rhh@DMET-SKL
* @version V1.0
* @date 2015-8-30 20:05:24
* @brief This file provides all the bsp_can functions.
******************************************************************************
* @attention
*
* FILE FOR DMET-SKL ONLY
*
* Copyright (C), 2015-2025, 华中科技大学数字制造装备与技术国家重点实验室
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include"bsp_can.h"
/* Private typedef -----------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
在h文件中生成的效果:
/**
******************************************************************************
* @file bsp_can.h
* @author rhh@DMET-SKL
* @version V1.0
* @date 2015-8-30 20:10:13
* @brief This file contains all the functions prototypes for the BOARD
* bsp_can
******************************************************************************
* @attention
*
* FILE FOR DMET-SKL ONLY
*
* Copyright (C), 2012-2022, 华中科技大学数字制造装备与技术国家重点实验室
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __BSP_CAN_H
#define __BSP_CAN_H
/* Includes ------------------------------------------------------------------*/
#include "includes.h"
/* Exported typedef ----------------------------------------------------------*/
/* Exported variables --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
/* Exported functions ------------------------------------------------------- */
#endif /* __BSP_CAN_H */
然后再看一眼代码:
代码
macr