Vim Ruby 多行方法缩进
Vim Ruby multi-line method indentation
我对 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
很多人喜欢这种 "hanging" 风格,这就是为什么如果您在同一行的第一个参数中使用圆括号,那么 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
有很多不同的缩进首选项组合,我们在支持多少可变性方面受到限制(我是一名维护者)——代码陈旧且充满边缘案例。恐怕这三种风格基本上就是它了,我希望你能调整你的编码风格来达成折衷。可能在未来的某个时候我会坐下来尝试一些彻底的改变,但这是一个很难找到时间和精力的项目。
我对 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
很多人喜欢这种 "hanging" 风格,这就是为什么如果您在同一行的第一个参数中使用圆括号,那么 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
有很多不同的缩进首选项组合,我们在支持多少可变性方面受到限制(我是一名维护者)——代码陈旧且充满边缘案例。恐怕这三种风格基本上就是它了,我希望你能调整你的编码风格来达成折衷。可能在未来的某个时候我会坐下来尝试一些彻底的改变,但这是一个很难找到时间和精力的项目。