如何在输入密钥的同时在VS Code中自动格式化c#代码?

时间:2018-03-26 20:53:57

标签: c# visual-studio-code

我在VS代码编辑器中启用了最新的c#扩展。保存或应用组合键 Ctrl + K Ctrl + F Alt + Shift + F ,我需要在按Enter键时格式化当前代码行。此功能在Visual Studio中已可用,但默认情况下在VSCode中找不到。

这是我需要实现的示例代码输出

enter image description here

5 个答案:

答案 0 :(得分:2)

转到File> Performances> Keyboard Shortcut Ctrl + K Ctrl + S

点击keybindings.json链接

enter image description here

输入键输入以下绑定此绑定将覆盖当前用户的默认值。

{
  "key": "enter",
  "command": "editor.action.formatDocument",
  "when": "editorHasSelection"
}

另一种替代解决方案是使用macros extension自定义宏支持VS Code,这样您就可以在一个键绑定中执行多个命令

将宏添加到User Settings

"macros": {
    "formatWithEnter": [
        "editor.action.insertLineAfter",
        "editor.action.formatDocument"
    ]
}

以下键绑定到keybindings.json

{
    "key": "enter",
    "command": "macros.formatWithEnter"
}

答案 1 :(得分:2)

我找到了一个选项,在输入时更容易格式化代码。 我在工作区设置中应用了以下设置

{
      "editor.formatOnSave": true,
      "editor.formatOnType": true
}

这对我来说很好。

答案 2 :(得分:2)

转到菜单文件首选项设置

搜索格式

选择您想要的选项:

  • 粘贴格式

  • 保存时格式化

  • 按类型设置格式

关闭“设置”窗口。

Enter image description here

您也可以在settings.json文件中看到它:

Enter image description here

答案 3 :(得分:0)

VS默认为

的代码格式化程序
On Windows Shift + Alt + F
On Mac Shift + Option + F

如果您再次按Enter键,则需要设置工作区首选项,然后配置键绑定

  

{" key":"输入","命令":" editor.action.format" }

如果没有选择任何内容,它现在格式化整个文档,否则格式化选择

还有beautify.onSave,editor.formatOnSave选项也请尝试使代码漂亮。

答案 4 :(得分:-1)

编辑:这实际上不起作用,因为这会抑制常规的Enter键行为

为了让这个对我有用我必须安装两个扩展

没有第二个扩展程序,我收到错误visual studio code there is no formatter for 'csharp'-files installed

我还确保我的VS代码是最新的(帮助>重新启动和更新或检查更新)

然后我添加了自定义键绑定。文件>偏好>键盘快捷键> “对于高级自定义打开和编辑keybindings.json”

[{
    "key": "enter",
    "command": "editor.action.formatDocument",
    "when": "editorTextFocus"
}
]

我必须输入单词enter,因为捕获键的对话框不会确认它。