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

时间:2016-12-14 06:40:07

标签: php intellisense visual-studio-code

我正在使用Visual Studio Code,主要是使用PHP。每次我点击,IntelliSense都会启动并提供PHP全局和函数,从$_COOKIE开始。我通常知道我想要的全局或功能,所以它有点烦人。当我在评论栏(/* ... */// ...)内时,甚至会发生这种情况,这更令人讨厌。我的大部分时间用于返回并删除$_COOKIE

一个例子(不是PHP,但你明白了): Sample animation from the official documentation

我已尝试停用它as suggested in the docs

// 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

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

  1. 如何在代码注释中关闭IntelliSense?
  2. 如何在点击时禁用IntelliSense,当我按 Ctrl + Space 时,只显示它? (请参阅下面的更新2)
  3. 如何完全禁用IntelliSense,至少对于PHP?
  4. 更新:如上所述here,通过以下方式禁用对触发器字符的快速建议:

    // Controls if suggestions should automatically show up when typing trigger characters
    "editor.suggestOnTriggerCharacters": false
    

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

    更新2:keybindings.json文件添加到possible to mess with the . binding是{{3}}:

    {
        "key": ".",
        "command": "x",
    }
    

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

    "command": "-^acceptSelectedSuggestion"
    

    "command": "-acceptSelectedSuggestion"
    

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

    "command": "-editor.action.triggerSuggest"
    

    但这也不起作用。

2 个答案:

答案 0 :(得分:3)

自2017年3月或4月以来,这已经修复,并且默认情况已更改为在评论中不自动完成。默认值为:

"editor.quickSuggestions": {
  "other": true,
  "comments": false,
  "strings": false
},

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

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

"editor.acceptSuggestionOnEnter": "off",

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

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

"[php]":  {
  "editor.suggestOnTriggerCharacters": false,
},

答案 1 :(得分:1)

尽管Darren Cook's answer和文档,但editor.quickSuggestions设置对于因触发字符而弹出的建议不执行任何操作(请参阅this issue on GitHub)。这些似乎受制于他们自己的规则。也就是说,在字符串中键入触发器字符时,无论您在editor.quickSuggestions中说了什么,永远不会获取建议。当在评论或“其他”中键入触发器字符时,无论您在editor.quickSuggestions中说了什么,始终都会获得建议。

因此,摆脱我称之为“触发器 - 角色建议”(这是迄今为止最令人烦恼的那种!)的唯一可靠方法是使用专门用于它的设置:

"editor.suggestOnTriggerCharacters": false

如果有人可以发表关于如何发现触发器字符 的评论,或者更好,如何指定它们,我会非常乐意编辑我的答案以考虑到这一点

请注意,由于您键入的字符与已知模块,变量,函数等实际匹配而弹出的建议仍然由editor.quickSuggestions控制 editor.suggestOnTriggerCharacters