为什么输入角色时 Completion Item Provider 不起作用?

Why CompletionItemProvider not work when enter charactor?

我已经在 https://github.com/Hfutsora/monaco-kaco 上传了我的代码。

重现步骤:

  1. 打开 github 页面 https://hfutsora.github.io/monaco-kaco/
  2. 在末尾输入字符'O'即可获得建议
  3. Enter char 'O' before the endline 没有提示出现

我认为问题是 VS Code 过滤掉了你的候选人,因为它得到了错误的 already typed 个字符。在我的完成提供程序中,我使用了不同的方法:

const info = model.getWordUntilPosition(position);

在当前插入符位置之前找到单词

CompletionItem.Range Note

CompletionItem 中的范围必须是 SingleLine,我提供了不同 startLine 和 endLine 的错误范围,我认为这是问题所在。

monaco.Range({
  position.lineNumber,
  word?.startColumn ?? position.column,
  model.getLineCount(), // not the same line
  model.getLineMaxColumn(model.getLineCount())
})