【问题标题】:VSCode autocomplete/intellisense for strings字符串的 VSCode 自动完成/智能感知
【发布时间】:2018-06-01 01:01:17
【问题描述】:

在 sublime 中使用 PHP 或 JavaScript 文件时,如果我输入以下代码:

$test = "Scott";
If($test == null) {
    $test2 = "Scott"
}

当我输入“$test2 = ‘Sc...”时,Sublime 会自动补全“Scott”,因为它是在当前文档范围内以字符串形式找到的单词。

但是,当我在 VSCode 中进行相同的测试时,它不会接受它或提供任何建议。这在 VSCode 中可行吗?我已经在首选项中打开了所有真实的快速建议。我不确定我还能在这里做什么,或者是否需要下载其他插件。谢谢!

【问题讨论】:

    标签: visual-studio-code


    【解决方案1】:

    像这样?

    我的设置:

    intelephense 扩展启用

    {
      "editor.quickSuggestions": {
        "other": true,
        "comments": false,
        "strings": true
      },
      "editor.wordBasedSuggestions": true,
      "php.suggest.basic": false
    }
    

    【讨论】:

    • 这太棒了!我卸载了我拥有的另一个扩展并安装了这个。工作很棒!它在做一件事——如果我在字符串中快速输入某些单词,它不会自动弹出自动完成功能。有很多次我必须按 Ctrl+空格键,然后它才会激活智能感知。是否有其他设置可以确保它始终弹出?还是我只是遇到了一个小错误?感谢插件!干得好!!
    • 我不确定为什么会这样。该扩展程序只是在此上下文中返回错误的结果,因为它没有有用的建议,然后 vscode 提供了单词建议。可以进行一些改进以更快地返回错误结果。
    • 该扩展依赖于服务器,因此请求可能会略有延迟。该扩展程序最近已更新,因此您可能想再试一次,或关注Github repo 的演变。
    【解决方案2】:

    这些是基于单词的建议。它们由editor.wordBasedSuggestions 设置控制。

    但是,仅当找不到有效的基于语言的建议时,才会显示基于单词的建议(请参阅https://github.com/Microsoft/vscode/issues/21611)。 JS 应该在这里的字符串中做正确的事情:

    但是内置的 php 语言支持仍然会在字符串中返回基于语言的建议,这就是为什么不显示基于单词的建议的原因

    【讨论】:

    • 这看起来像是问题所在。感谢您的回答,所以我没有继续尝试不同的东西。
    • 其实,在你链接的 git hub issue 中找到了一个临时解决方案。如果修改Microsoft VS Code\resources\app\out\vs\workbench\workbench.main.js 然后找到if(!h)return a.TPromise.join(r.map(function(r) 改成return a. TPromise.join(r.map(function(r) 它将开始工作。请注意,上面的“h”和“a.”会有所不同。我只需要搜索“.TPromise.join(”然后循环遍历结果,直到我遇到要更改的正确模式。现在,我只是想找出一种方法来永久应用此补丁,直到它在核心代码中得到修复。
    猜你喜欢
    • 2015-08-27
    • 2015-08-27
    • 2022-07-28
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2017-01-26
    • 2020-11-22
    • 1970-01-01
    相关资源
    最近更新 更多