1

我正在尝试通过 ngx-monaco-editor 在 angular 10 应用程序中使用 monaco 编辑器。这是一个摩纳哥编辑器问题,而不是一个角度问题(我认为)......我是使用这个编辑器的新手。

我正在尝试为 2 个不同的文件提供不同的完成项,并且我将我的语言称为'myLang'

  • 文件1需要有RULE1作为完成项
  • 文件2需要有RULE2作为完成项

两个文件都打开{language:'myLang'}

规则是动态的并且可以更改,因此我需要动态更新它们。

到目前为止,我已经能够在“window.monaco.languages”上注册完成项的静态列表(甚至是动态列表),但是我如何告诉编辑器(或编辑器模型)将 List1 用于文件 1 和 List2对于文件 2

在一个更一般的问题中,当您打开 2 个不同的 js 文件时,它们将具有不同的上下文。例如,变量名/函数名是不同的。根据打开的文件(如何将所有可用的上下文:变量/函数/标识符)传递给编辑器中打开的每个文件,您如何告诉 monaco 编辑器使用哪些完成项?

4

1 回答 1

0

好吧,通常您在 Monaco 打开文档或用户修改文档时解析文档的内容。您还可以缓存生成的树,直到文档被修改(以避免不必要地再次解析它)。

通过解析文档,您可以根据您的语言识别哪些元素是例如类名、函数名等。

于 2021-03-25T15:47:41.150 回答