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

Joh*_*ten 5 javascript c# typescript visual-studio-code

这个问题特别针对其他在VS Code中使用TypeScript的C#开发人员。

我爱上了VS C#中的代码完成。为了说明这一点,假设我正在尝试写:

console.log('hello')
Run Code Online (Sandbox Code Playgroud)

使用C#,我将拥有:

  1. 输入“骗子”
  2. 将会出现建议列表,可能以“控制台”开头
  3. 因为突出显示了,这就是我想要的,点击“。” 会写出“唯一”。所以现在我有:console.
  4. 类型“ l”,“ log”是第一个建议
  5. 输入“(”,现在我有: console.log('')
  6. 光标现在位于''
  7. 输入“你好”

当前,使用我的VS Code设置,tab每次我想接受建议时,都可以在JS / TS中实现相同的目的。但是只要继续下一个标点符号就可以了,如果您原谅我关心的内容,那就很有趣了。我想念它。我所知道的语言没有任何技术限制,可以禁止这种行为。

有人知道是否有任何扩展名或设置可启用此功能吗?否则,这种对话还会在其他地方发生?

Joh*_*ten 3

人们可以使用宏扩展自行实现这一点。去做这个:

  1. 安装宏扩展

  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": "="}}
            ]
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  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"
    }
    
    Run Code Online (Sandbox Code Playgroud)

    这将为这 3 个特定的后续键启用经典的 VS C# 完成行为。其他我想到的都可以在我记得的时候添加。