功能
支持verilog和systemverilog语言的模块跳转定义和悬停显示模块路径。要求文件名和模块名相同。
原理
- step1:获取当前鼠标停留位置的单词,加上尾缀(.v or .sv)
- step2:获取当前workspace(D:\workspace\my_project)路径以及配置的相对paths(source ip),组合成绝对路径,如:D:\workspace\my_project\source,D:\workspace\my_project\ip
- step3:遍历绝对路径下的所有文件(包括子目录下的文件),如果有文件的名称和所选的单词名相等,则返回路径给vscode.languages.registerDefinitionProvider和vscode.languages.registerHoverProvider
- step4:vscode.languages.registerDefinitionProvider和vscode.languages.registerHoverProvider这两个函数是官方提供的用于跳转定义和悬停显示的函数
| |