2011-11-01 14 views
27

私はEmacsのインデントルビーの方法は次のように呼び出すようにしたい:EmacsのRubyのメソッドのパラメータのインデント

foo(
    :blah => 'bar', 
    :shibby => 'baz' 
) 

私が得ることができる最も近いです:

foo(
    :blah => 'bar', 
    :shibby => 'baz' 
) 

これはルビー深いインデント-括弧を使用しています、ruby-deep-indent-paren-style、ruby-deep-arglistはすべてnilに設定されています。

ハッシュのインデント方法...ハッシュのようにインデントされたメソッドを呼び出すことができれば、私は満足しています。何か案は?

+1

+1、私はまだクローズドパレンの整列を修正する方法を考え出していません。 – d11wtq

答えて

12

Dmitry Gutovが動作しているようなアドバイスを、使用して、this fixを掲載しています。

0

私はC-c oのようなキーシーケンスがあると信じています。その閉じた括弧のカーソルを押すと、どの変数が使用されているかがわかり、新しい値(0や+など)を入力できます。それを試してみて!

(defadvice ruby-indent-line (after unindent-closing-paren activate) 
    (let ((column (current-column)) 
     indent offset) 
    (save-excursion 
     (back-to-indentation) 
     (let ((state (syntax-ppss))) 
     (setq offset (- column (current-column))) 
     (when (and (eq (char-after) ?\)) 
        (not (zerop (car state)))) 
      (goto-char (cadr state)) 
      (setq indent (current-indentation))))) 
    (when indent 
     (indent-line-to indent) 
     (when (> offset 0) (forward-char offset))))) 
5

のRuby(24.4としてリリースされる)現在のEmacsトランク内のインデントあなたが任意の追加の調整なしに求めているように動作します:

関連する問題