保存文件后,不显示添加到自动完成列表的自动完成项目

时间:2019-12-21 23:05:56

标签: typescript visual-studio-code

This示例在保存之前似乎可以正常工作。拥有“ Untitled-1”效果很好,因为在将其保存到“ test.py”之后,似乎没有将该项目添加到自动完成列表中。我已经多次在文件夹中运行“ npm install”,但这似乎无济于事。这是不起作用的文件扩展名:

  • .ts
  • .c
  • .cpp
  • .js
  • .py
  • .sh

有效的扩展名:

  • 无扩展名(未保存9
  • .txt

我正在运行以下命令: -Ubuntu 18.04.2 LTS -vscode 1.41.0

编辑:

我设法在Windows计算机上重现该问题。复制说明:

  1. 克隆此Git
  2. 在complements-sample文件夹中运行“ npm install”
  3. 在vscode中打开“ completions-sample”文件夹
  4. 在“调试”下选择“开始调试”以运行扩展程序
  5. 创建新文件,但不保存。
  6. 按ctrl + shift + p并选择“触发建议”。应当弹出一个菜单,其中包含扩展代码中的项目,例如“ Hello World!”。
  7. 通过保存文件扩展名,例如“ .py”。重复步骤5,该菜单将不包含任何自定义自动完成项。

我正在运行:

  • Windows 10
  • 重新安装vscode 1.41.1

1 个答案:

答案 0 :(得分:0)

我要求有关官方vscode存储库的帮助。显然,添加自动完成项时需要更改语言标识符。默认情况下,它设置为“纯文本”,这意味着您的自动完成项仅对纯文本文档显示。

let provider = vscode.languages.registerCompletionItemProvider('plaintext', {

    provideCompletionItems(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken, context: vscode.CompletionContext) {

        // a simple completion item which inserts `Hello World!`
        const simpleCompletion = new vscode.CompletionItem('Hello World!');

        // return all completion items as array
        return [
            simpleCompletion
        ];
    }
});

如果我希望这些项目针对python显示,我可以在this链接上找到其语言ID,并将代码更改为:

let provider = vscode.languages.registerCompletionItemProvider('python', {

    provideCompletionItems(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken, context: vscode.CompletionContext) {

        // a simple completion item which inserts `Hello World!`
        const simpleCompletion = new vscode.CompletionItem('Hello World!');

        // return all completion items as array
        return [
            simpleCompletion
        ];
    }
});