Rascal中如何在代码内实现源位置跳转与对应代码高亮
解决方案
你遇到的类找不到报错,是因为BasicIDEServices仅在Rascal交互式解析环境(包含默认终端交互环境、VS Code Rascal插件运行环境)中提供,编译后的RVM执行环境没有内置这个类,因此会触发加载失败。
你需要的无需手动点击、直接跳转高亮源位置的功能,按以下步骤操作即可实现:
- 确保代码运行在Rascal交互式解析环境,不要使用
rascalc编译后再执行生成的RVM程序 - 在代码头部导入
util::IDEServices模块 - 直接调用
edit()函数,传入你需要跳转的源位置参数即可,示例如下:
import util::IDEServices; // 执行后直接跳转到指定源位置并高亮对应代码段 edit(|project://myDemo/src/Demo.rsc|(50,30,<3,2>,<5,10>));
该函数执行后的效果和手动点击终端内的源位置链接完全一致,会自动打开对应源文件,定位到源位置覆盖的代码区域并高亮。
内容的提问来源于stack exchange,提问作者Y. Reijne
相关产品推荐
相关产品推荐

