如何让VSCode在'do'后自动插入'end'进入按下

xen*_*ver 6 ruby ruby-on-rails visual-studio-code

我想尝试使用visual studio代码编写ruby/rails并遇到这个问题,当我在编辑器中编写'do'然后按Enter键时,'end'不会自动添加到下一行.

写'def'+输入正常.'begin'+ enter也可以正常工作,但不能'do'+输入.

我还没有找到任何可以使其工作的扩展程序,谷歌也没有太多帮助.也许有一种方法可以自己定义一个片段?

提前致谢!

xen*_*ver 8

我找到了一个现在足够的解决方法.使用代码 - >首选项 - >用户代理 - > Ruby我添加了以下代码段

"Do block": {
    "prefix": "dob",
    "body": [
        "do",
        "\t$0",
        "end"
    ],
    "description": "Do block"
},
"Do block with params": {
    "prefix": "dobwp",
    "body": [
        "do |${1:param}|",
        "\t$0",
        "end"
    ],
    "description": "Do block with params"
}
Run Code Online (Sandbox Code Playgroud)

第一个插入一个

do

end
Run Code Online (Sandbox Code Playgroud)

没有任何参数.第二个插入一个

do |param|

end
Run Code Online (Sandbox Code Playgroud)

你可以选择参数值.

缺点是写入时你必须向下移动并选择dob或dobwp,这不是sublime中默认的行为.

  • 非常感谢您的回答,它对我有所帮助,这个问题不是题外之意,而是一个非常相关的问题。 (2认同)

Ton*_*gan 6

此扩展将完全满足您的要求:

vscode-endwise:这是一个扩展,它明智地将“end”关键字添加到 Ruby 或 Crystal 等语言的代码结构中,同时保持正确的缩进级别

享受!


Sta*_*erd 5

您尝试过https://github.com/rubyide/vscode-ruby吗?它指出

此扩展为 VS Code 提供了丰富的 Ruby 语言和调试支持。

包括自动完成。也许值得一试。

  • 是的,我已经安装了。不幸的是它不包括它。 (5认同)
  • 默认情况下它是禁用的。代码 > 首选项 > 设置 > 扩展 > Ruby:代码完成。与方法、类和模块配合良好。 (5认同)