小编Gil*_*Gil的帖子

是否可以通过编程方式关闭自动完成的 SuggestWidget?

我正在从 Codemirror 迁移到 Monaco 编辑器,以便我们使用前缀键输入特殊字符。例如,给定前缀.,如果用户键入.后跟o编辑器,则将序列替换为\xce\xa9

\n\n

可以使用 addCommand 并为其提供和弦,如下所示:

\n\n
editor.addCommand(\n  monaco.KeyMod.chord(monaco.KeyCode.US_DOT , monaco.KeyCode.KEY_O),\n  x=>{ // write out special char here \n    editor.executeEdits("", [\n      { range: editor.getSelection(), text: "\xce\xa9" }\n    ]);\n  }\n)\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我想使用自动完成功能来帮助用户,在用户键入前缀键后列出特殊字符。CompletionItemProvider 允许我通过在 triggerCharacters 属性中提供前缀键来做到这一点:

\n\n
monaco.languages.registerCompletionItemProvider(\'mylang\', {\n  triggerCharacters:[\'.\'],\n  provideCompletionItems: (model,position,token) => { \n    let l=position.lineNumber,c=position.column;\n    let s=model.getLineContent(l),ch=s[c-2];\n    console.log(\'completion triggered on: \'+ch)\n    if (ch===\'.\'){\n      return CompletionItem[]; // return list of valid special chars\n    }\n  }\n})\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,当用户键入前缀键时,我会得到建议列表,但即使他使用o,它也不会触发,直到他通过按 Enter …

monaco-editor

0
推荐指数
1
解决办法
1295
查看次数

标签 统计

monaco-editor ×1