Vim Ruby многострочный метод отступа - PullRequest
0 голосов
/ 03 октября 2019

Я не согласен с разрывами строки по умолчанию, которые я получаю из моей настройки 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 строк символов.

Спасибо!

Ответы [ 2 ]

1 голос
/ 03 октября 2019

Причина, по которой 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

Существует многоразличные комбинации предпочтений отступов, и мы ограничены в том, насколько изменчивость мы можем поддерживать (я сопровождаю) - код старый и полон крайних случаев. Я боюсь, что эти три стиля в основном это, и я надеюсь, что вы можете настроить свой стиль кодирования, чтобы достичь компромисса. Возможно, в какой-то момент в будущем я сижу и пробую радикальные изменения, но это трудный проект, чтобы найти время и энергию для этого.

1 голос
/ 03 октября 2019

Я нашел разумное решение. Vim будет автоматически делать отступы так, как я хочу, если я использую хеш-литералы в коде. Например, набрав приведенный выше пример, работает нормально:

let(:account) do
  create :account,
    store: build(:live_store, {
      shop_version: build(:shop_version, {
        name: "Example"
      })
    })
end

Это похоже на достаточно разумный компромисс.

...