# SourceInSight相关知识点 ## 常规操作 ### 工程新建/添加 1. 选择工程文件的位置 ![1752034385269](./pictures/1752034385269.png) 2. 选择源码位置 ![image-20250709121735489](./pictures/image-20250709121735489.png) 3. 将源码导入 ![image-20250709121914914](./pictures/image-20250709121914914.png) - Add:基本的文件添加操作 - Add All:添加整个工程所有的源文件,最多只能添加下一级的文件(然后再选择是否递归添加子目录中的源文件,见上图对话框就和Add Tree功能类似) - Add Tree:添加指定的文件夹以及其子目录下的源代码文件 - Remove Tree:和Add Tree的功能相反 ### 文件新建/添加 ![image-20250709123840755](./pictures/image-20250709123840755.png) ### 符号表同步 符号表同步 = 把源码中的函数、变量、类型等信息提取出来,建立一个可快速查找的数据库 ![image-20250709122117757](./pictures/image-20250709122117757.png) - **Force all files to be re-parsed** 强制重新解析所有文件。 - 作用:无论文件有没有改动,**全部源文件都会重新解析一遍**,重新生成符号。 - 使用场景: - 大范围修改了宏定义、头文件或库文件; - 项目结构变化较大; - 符号跳转失效、显示不准确时使用; - 会花比较长的时间。 - **Synchronize the current source file only** 只同步当前打开的源文件。 作用:只更新你当前正在查看的文件的符号信息。 使用场景: - 你刚刚改动了当前文件的一些函数或变量,希望立即生效; - 快速同步,不影响其他文件。 - 其他文件不受影响,如果涉及头文件或其他依赖文件,可能会不完整。 - **Add new files automatically** 自动添加新文件到项目中。 - 作用:在同步过程中,如果发现了你源码目录下的**新文件**(比如新加的 `.c/.h` 文件),会**自动加入工程并解析符号**。 - 使用场景: - 经常手动往目录里加文件的人建议勾上; - 适合多人协作开发时文件频繁变动。 - **Remove missing files from project** 自动从工程中移除找不到的文件。 - 作用:如果项目中之前包含的某些源文件**物理上已经被删除或移动**,则自动从工程移除它们。 - 使用场景: - 清理项目符号库; - 文件重命名或移动后保持项目干净。 - 小心使用,可能会误删临时缺失但之后会恢复的文件引用。 ### 视图切换 ![image-20250711122253319](./pictures/image-20250711122253319.png) ![image-20250711122210026](./pictures/image-20250711122210026.png) ### 常用窗口打开/关闭 常见四大窗口: 1. project Window:查看我们的工程所在文件夹以及文件夹下的文件 ![image-20250709122721155](./pictures/image-20250709122721155.png) 2. Symbol Window:用于查看我们开启的文件以及文件内所包含的函数 ![image-20250709122927280](./pictures/image-20250709122927280.png) 3. Context Window串口:用于查看,函数中某个参数与函数的关系 ![image-20250709123057307](./pictures/image-20250709123057307.png) 4. Relation Window窗口:用于查看函数以及参数所定义的位置 ![image-20250709123227589](./pictures/image-20250709123227589.png) ### 搜索引用 ![image-20250709123336532](./pictures/image-20250709123336532.png) ## 普通文本搜索(Search → Find) - **快捷键**:`Ctrl + F` - **作用**:查找文件中出现的文本(**不区分语法符号**,纯字符串匹配) - **功能亮点**: - 支持大小写匹配 - 支持正则表达式(Regular Expression) - 支持从当前位置、整个文件或选中区域查找 - **适用场景**: - 查找某个宏、错误码、注释等非符号内容 - **缺点**: - 找不到跨文件定义、不支持跳转到符号 ## 全局搜索(Search → Find in Files) - **快捷键**:`Ctrl + Shift + F` - **作用**:在整个工程或指定路径中查找文本(可正则) - **功能亮点**: - 可设置搜索路径、文件类型(*.c、*.h等) - 可将结果导出为列表窗口 - **适用场景**: - 搜索项目中所有文件中包含“某字符串”的位置 - **常用于**: - 搜索日志宏 `LOG_ERR`、关键字 `#define` 等 ## 符号查找(Search → Lookup Symbol) - **快捷键**:`Ctrl + /` - **作用**:查找并跳转到某个“符号”的定义(函数、变量、宏等) - **依赖符号表同步** - **功能亮点**: - 模糊匹配,支持部分输入即可补全 - 可以定位到头文件或函数体定义 - **适用场景**: - 快速跳转函数/变量定义 - **缺点**: - 搜不到未同步的符号(需手动同步) ## 同步滚动 ![image-20250712181925371](./pictures/image-20250712181925371.png) ## 改字体 ![image-20250712182757921](./pictures/image-20250712182757921.png)