我对从vim设置中获得的默认换行符有疑问。我认为我正在使用的唯一相关的插件是vim-ruby。
我想要这样的代码自动缩进:
let(:account) do
create :account,
store: build(:live_store,
shop_version: build(:shop_version,
name: "Example"
)
)
end
改为像这样自动缩进:
let(:account) do
create :account,
store: build(:live_store,
shop_version: build(:shop_version,
name: "Example"
)
)
end
这有意义吗,还是我不在杂草丛中?我发现默认值很难看,尤其是在尝试强制使用80个字符行时令人沮丧。
谢谢!
我发现了一个合理的解决方法。如果我在代码中使用哈希字面量,Vim会按照我想要的方式自动缩进。例如,键入上面的示例可以正常工作:
let(:account) do
create :account,
store: build(:live_store, {
shop_version: build(:shop_version, {
name: "Example"
})
})
end
这感觉是一个足够合理的折衷。
vim-ruby如此深入缩进您的示例的原因是支持这种编码风格:
let(:account) do
create :account,
store: build(:live_store,
shop_version: build(:shop_version,
name: "Example"))
end
很多人都喜欢这种“悬挂”风格,这就是为什么如果在同一行的第一个参数上使用圆括号,vim-ruby会缩进的原因。正如@Amadan指出的那样,您可以将所有参数放在换行符上:
let(:account) do
create :account,
store: build(
:live_store,
shop_version: build(
:shop_version,
name: "Example"
)
)
end
或者,我首选的支持缩进样式使用大括号:
let(:account) do
create :account,
store: build(:live_store, {
shop_version: build(:shop_version, {
name: "Example"
})
})
end
缩进首选项有很多不同的组合,我们在支持的可变性方面受到限制(我是维护者)-代码陈旧且充满了边缘情况。恐怕这三种样式基本上就是它,希望您可以调整编码样式以达成折衷。可能是在将来的某个时刻,我坐下来尝试一些根本性的改变,但这是一个很难找到时间和精力的项目。