我需要为yaml中嵌入的自定义语言提供语法高亮和功能签名建议。
首先,我创建了2个Monarch定义,一个用于yaml,一个用于自定义语言,当我们使用其中一种语言初始化Monaco时,它们都可以正常工作。
然后我在自定义语言中添加了setLanguageConfiguration
,registerCompletionItemProvider
和registerSignatureHelpProvider
,当使用自定义语言初始化Monaco时,它可以正常工作。
最后,我在yaml Monarch定义中使用nextEmbedded
在yaml和自定义语言之间切换。在这种情况下,尽管语法突出显示仍然有效,但是setLanguageConfiguration
,registerCompletionItemProvider
和registerSignatureHelpProvider
函数不起作用(没有显示建议,也没有自动配对)。
这是因为我将Monarch定义与monaco.languages
混合使用吗?有没有人遇到过类似情况的经历?
注意:我已经看到VSCode和其他摩纳哥语言带有混合语言帮助程序(例如HTML中的CSS),但是它们都是完全用TypeScript作为Language Definition
编写的,而不使用Monarch。