2011-11-01 16 views
27

Quiero hacer método de emacs guión rubí llamadas como:Emacs Rubí parámetro del método de indentación

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

El más cercano que puedo conseguir es:

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

Este es el uso de rubí profundo-indent-paren , ruby-deep-indent-paren-style, ruby-deep-arglist todo en cero.

Hashes sangrar como me gusta ... si pudiera simplemente hacer sangrías de métodos como hashes, estaría contento. ¿Algunas ideas?

+1

+1, todavía no he resuelto cómo arreglar esa alineación de paréntesis de cierre tampoco. – d11wtq

Respuesta

12

Dmitry Gutov ha publicado this fix, mediante consejos, que parece funcionar:

(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

Creo que hay una secuencia de teclas como C-c o, que podría presionar con el cursor en ese paréntesis de cierre que mostraría qué variable se usa y le permite escribir un nuevo valor (como 0 o +). ¡Trata eso!

5

Rubí muesca en el tronco actual de Emacs (para ser lanzado como 24.4) funciona como si estuviera pidiendo sin ningún ajuste adicional.

Cuestiones relacionadas