如何在 Visual Studio Code (VSCode) 中创建菜单以方便代码生成?是否有任何推荐的源或代码存储库提供了实现此功能的示例或指导
VScode 不是“菜单”驱动的用户界面。因此通常还有其他交互方式。最好的办法是注册一个“命令”,这样它就会出现在命令面板中。
Rascal 中最易于使用的注册命令功能是将
lenses
插入 DSL 编辑器中。如果你点击这样的镜头,就会激活一个命令,你可以直接在 Rascal 中处理。
有一个演示这里
但这相当于注册镜头和执行者:
// extend the set of possible commands, with possible parameters:
data Command = doSomething(start[Program] program);
// detect places to put lenses:
rel[loc,Command] myLenses(start[Program] input)
= {<input@\loc, doSomething(input /* any parameter to the command */, title="This is what the user sees!")>};
// a command handler:
value myCommandHandler(doSomething(start[Program] input)) {
... do anything here, possible using features from util::IDEServices...
return ("result": true);
}
那些
myCommandHandler
和 myLenses
函数将在语言中注册为 Contribution
s。
如果代码生成器将代码添加到现有文件中,则使用
util::IDEServices::registerDocumentEdits
是有意义的,因为这将与打开的编辑器和撤消堆栈集成。否则,您可以使用 IO
模块 (writeFile
) 将文件写入磁盘