如何在Visual Studio代码中的注释中禁用IntelliSense?

aal*_*aap 7 php intellisense visual-studio-code

我正在使用Visual Studio Code,主要是使用PHP.每当我点击时.,IntelliSense就会启动并提供PHP全局和函数,从一开始$_COOKIE.我通常知道我想要的全局或功能,所以有点烦人.当我在注释块(/* ... */// ...)中时,这甚至会发生,这更令人讨厌.我的大部分时间都花在了回去和删除上$_COOKIE.

一个例子(不是PHP,但你明白了): 官方文档中的示例动画

我已经尝试按照文档中的建议禁用它:

// Controls if quick suggestions should show up while typing
"editor.quickSuggestions": false,

// Controls if suggestions should be accepted with "Enter" - in addition to "Tab". Helps to avoid ambiguity between inserting new lines and accepting suggestions.
"editor.acceptSuggestionOnEnter": true,

// Controls the delay in ms after which quick suggestions will show up.
"editor.quickSuggestionsDelay": 10000,

// Enable word based suggestions
"editor.wordBasedSuggestions": true
Run Code Online (Sandbox Code Playgroud)

......但这绝对没有任何影响.当我点到点时我仍然得到列表.从延迟增加1001000,也没有任何效果.

  1. 如何在代码注释中关闭IntelliSense?
  2. 如何在击中时禁用IntelliSense,.并在我按下Ctrl+ 时显示它Space(见下面的更新2)
  3. 如何完全禁用IntelliSense,至少对于PHP?

更新:如前所述这里,禁止在触发字符简单建议是通过实现:

// Controls if suggestions should automatically show up when typing trigger characters
"editor.suggestOnTriggerCharacters": false
Run Code Online (Sandbox Code Playgroud)

但是,上面提到的其他选项仍然没有做任何事情.

更新2:这是有可能与混乱.结合,加入这个到keybindings.json文件:

{
    "key": ".",
    "command": "x",
}
Run Code Online (Sandbox Code Playgroud)

但是,这会在屏幕顶部显示一条警告消息,指出"命令'x'未找到".如果将其保留为空或尝试将null传递给command它,它仍然不起作用,因为它不会覆盖默认键绑定.根据文档,可以通过在其前面添加a来禁用某个操作-,但这对我不起作用:

"command": "-^acceptSelectedSuggestion"
Run Code Online (Sandbox Code Playgroud)

要么

"command": "-acceptSelectedSuggestion"
Run Code Online (Sandbox Code Playgroud)

在任何一种情况下,acceptSelectedSuggesdtion实际上并不是我点击时执行的命令.,它可能更像是:

"command": "-editor.action.triggerSuggest"
Run Code Online (Sandbox Code Playgroud)

但这也不起作用.

Dar*_*ook 6

自 2017 年 3 月或 4 月左右以来,此问题已得到修复,并且默认值已更改为在评论中不自动完成。默认为:

"editor.quickSuggestions": {
  "other": true,
  "comments": false,
  "strings": false
},
Run Code Online (Sandbox Code Playgroud)

我的设置中没有明确设置,只是用一个新的 PHP 文件进行了测试,然后我可以输入global.空格,并且不会自动完成任何内容。(我尝试了主代码和注释。)我确实看到$COOKIE弹出作为第一个建议,但我需要使用向上/向下箭头,然后输入以将其引入。

啊哈,global.然后 ENTER 确实给了我global.$COOKIE(即使在评论中,这有点奇怪)。我可以解决这个问题:

"editor.acceptSuggestionOnEnter": "off",
Run Code Online (Sandbox Code Playgroud)

要查看您可能想要触摸的其他设置,请转到设置页面并在搜索框中输入“建议”。每一个都有评论。例如"editor.suggestOnTriggerCharacters": false,,完全摆脱自动建议。

您还可以仅指定一种语言的设置,例如

"[php]":  {
  "editor.suggestOnTriggerCharacters": false,
},
Run Code Online (Sandbox Code Playgroud)


Joh*_*n Y 6

尽管Darren Cook 给出了答案和文档,但这些editor.quickSuggestions设置对由于触发字符而弹出的建议没有任何作用(请参阅GitHub 上的此问题)。这些似乎都受制于他们自己的规则。即,在字符串中键入触发字符时,无论您在 中说什么,您都不会得到建议editor.quickSuggestions;并在注释中键入一个触发字或“其他”的时候,你总是拿到的建议,不管你在说editor.quickSuggestions

因此,摆脱我所说的“触发字符建议”(这是迄今为止最烦人的一种!)的唯一可靠方法是使用专门针对它的设置:

"editor.suggestOnTriggerCharacters": false
Run Code Online (Sandbox Code Playgroud)

如果有人可以评论如何发现触发字符什么,或者更好的是如何指定它们,我将非常乐意编辑我的答案以将其考虑在内。

需要注意的是其弹出由于实际匹配你已知模块,变量,函数等键入的字符的建议,仍然被控制editor.quickSuggestions,并没有通过editor.suggestOnTriggerCharacters