可以将VS代码完成配置为接受关于标点符号的建议吗?

时间:2017-09-27 15:43:14

标签: javascript c# typescript visual-studio-code

这个问题特别指向其他C#开发人员在VS Code中转向TypeScript。

我爱上了VS C#中的代码完成。为了说明,请说我试着写:

console.log('hello')

使用C#,我会:

  1. 键入" con"
  2. 会出现一个建议列表,可能以" console"
  3. 开头
  4. 因为它突出了它,它是我想要的,打击"。"将写出"唯一。"所以现在我有:console.
  5. type" l"," log"是第一个建议
  6. type"(",现在我有:console.log('')
  7. 光标现在位于''
  8. 键入"你好"
  9. 目前在我的VS Code设置中,每当我想接受建议时,JS / TS就可以实现同样的事情tab。但只是按下一个标点符号继续进行是非常好的,如果你原谅我关心它,那就很有趣。"我想念它。并且我所知道的语言没有技术限制会禁止这种行为。

    任何人都知道是否有可用于启用此功能的扩展程序或设置?否则,这个对话可能在哪里发生?

2 个答案:

答案 0 :(得分:2)

可以使用macros extension来实现这一点。要做到这一点:

  1. 安装macros extension

  2. 创建一个调用acceptSelectedSuggestion操作的宏,然后键入.。这是我的Settings.json的样子:

    {
        "editor.wordWrap": "on",
        "window.zoomLevel": 0,
        "git.enableSmartCommit": true,
        "macros": {
            "accept.": [
                "acceptSelectedSuggestion",
                {"command": "type", "args": {"text": "."}}
            ],
            "accept(": [
                "acceptSelectedSuggestion",
                {"command": "type", "args": {"text": "("}}
            ],        
            "accept=": [
                "acceptSelectedSuggestion",
                {"command": "type", "args": {"text": "="}}
            ]
        }
    }
    
  3. 将这些宏中的每一个添加到keybindings.json中的键绑定中。我的其他键绑定看起来像:

    {
        "key": ".",
        "command": "macros.accept.",
        "when": "editorTextFocus && suggestWidgetVisible"
    },
    {
        "key": "shift+9",
        "command": "macros.accept(",
        "when": "editorTextFocus && suggestWidgetVisible"
    },
    {
        "key": "=",
        "command": "macros.accept=",
        "when": "editorTextFocus && suggestWidgetVisible"
    }
    

    这为这3个特定的后续密钥启用了经典的VS C#完成行为。我记得的任何其他人都可以添加。

答案 1 :(得分:0)

我认为你不能在.的末尾添加console,但你可以做其他所有事情:

转到文件>>偏好设置>>键盘快捷键。

在屏幕右侧,会出现一个名为keybindings.json的文件。在两个括号之间插入:

{ "key": ".",                   "command": "acceptSelectedSuggestion",
                                 "when": "editorTextFocus && suggestWidgetVisible" },

这应该增加对所有语言的支持。