Emacs ruby-mode, дикий отступ в скобках? - PullRequest
15 голосов
/ 13 сентября 2011

Простите, что я новичок в emacs, но кто-нибудь знает, как это обойти? При кодировании в emacs, в режиме ruby, он отступает до правильного уровня (то есть на 2 пробела) после всех ключевых слов, таких как def, class, module, begin и т. Д., Но при разбивании списков параметров в нескольких строках он отступает в кажущееся случайным положение, например около 40 столбцов.

Я перебираю настройки вкладки emacs и, похоже, просто хожу по кругу и не получаю нужную информацию, поэтому я решил спросить здесь.

Вот скриншот того, где он помещает курсор в список параметров. Я пробовал делать отступ внутри фигурных скобок (например, для блока или хэша), и это работает нормально, это скобки, которые портят это.

Bug

Ответы [ 3 ]

17 голосов
/ 13 сентября 2011

http://compgroups.net/comp.emacs/Ruby-mode-indentation-of-continuation-lines

(setq ruby-deep-indent-paren nil)

Или временно, в рамках текущего сеанса:

M-x переменная набора RET ruby-deep-indent-paren RET ноль RET

Внутри скобок теперь будет отступ, как и везде. В том, что я выложил выше, все еще есть незначительная ошибка. Он отступает на 2 пробела дальше, чем я хочу, потому что я путаю его с комбинацией ( и {.

1 голос
/ 12 июля 2017

ruby-deep-indent-paren и связанные с ним переменные не влияют на меня, потому что ruby-use-smie равно t. Установка обоих значений на nil, похоже, тоже не помогла: - (

Но переключаясь на Enh-ruby-Mode , все работает!

  • Настройка enh-ruby-deep-indent-paren на nil дала эффект.
  • Установка enh-ruby-bounce-deep-indent на t позволяет мне снова нажимать клавишу Tab для переключения между стилями!
0 голосов
/ 22 марта 2012

Обычно он пытается выстроить аргументы в многострочный список аргументов, заключенных в скобки, например:

function_call (arg1,
               arg2);

Установка значения ruby-deep-indent-paren на ноль, как указано выше, изменяет настрой на раздражающий двойной отступ для смешанных фигурных скобок, например ::

if (cond) then
  do_stuff
end
function_call (&proc {
    do_stuff
  })

Отступающая странность действительно беспокоит меня. Я отредактировал оригинальный код Mats для ruby-mode.el, чтобы сделать его более разумным. Но я не могу очистить его для моей жизни.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...