我正在尝试使用此处的摩纳哥游乐场示例作为基础来构建自动完成功能:https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-completion-provider-example
在示例中,建议使用简单的正则表达式进行限制:
// find out if we are completing a property in the 'dependencies' object.
var textUntilPosition = model.getValueInRange({startLineNumber: 1, startColumn: 1, endLineNumber: position.lineNumber, endColumn: position.column});
var match = textUntilPosition.match(/"dependencies"\s*:\s*\{\s*("[^"]*"\s*:\s*"[^"]*"\s*,\s*)*([^"]*)?$/);
if (!match) {
return { suggestions: [] };
}
这是不完善的,因为建议也出现在依赖项对象之后。对于具有大型JSON模式定义的json文件,此问题会更加严重。
在当前位置下,是否有一种方法可以使自动完成建议更加精确?可以直接在monaco中公开,也可以在外部库中公开(请注意,到目前为止,JSON可能甚至无效,因为它目前正在编辑中。)
理想情况下,我希望有一个“功能”提供完整的JSON指针/对当前指针的引用,或类似的东西。