2011-11-01 39 views
27

Tôi muốn làm cho phương pháp emacs thụt ruby ​​cuộc gọi như:Emacs của Ruby tham số phương pháp thụt đầu dòng

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

Gần nhất tôi có thể nhận được là:

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

Đây là sử dụng ruby-sâu-indent-paren , ruby-sâu-indent-paren-phong cách, ruby-sâu-arglist tất cả các thiết lập để không.

Hashes indent cách tôi thích ... nếu tôi chỉ có thể thực hiện cuộc gọi phương thức thụt lề như băm tôi sẽ rất vui. Bất kỳ ý tưởng?

+1

+1, tôi vẫn chưa tìm ra cách khắc phục sự sắp xếp đóng ngoặc đơn đó. – d11wtq

Trả lời

12

Dmitry Gutov đã đăng this fix, sử dụng lời khuyên, mà dường như làm việc:

(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))))) 
0

Tôi tin rằng có một chuỗi khóa như C-c o, bạn có thể nhấn bằng con trỏ trên dấu đóng đó sẽ hiển thị biến nào được sử dụng và cho phép bạn nhập giá trị mới (như 0 hoặc +). Thử đi!

5

của Ruby thụt đầu dòng trong thân cây Emacs hiện tại (sẽ được phát hành như 24,4) hoạt động giống như bạn đang yêu cầu mà không cần bất kỳ tinh chỉnh bổ sung.

Các vấn đề liên quan