2011-10-15 13 views
5

¿Alguien sabe cómo conseguir rubí modo en Emacs para sangrar todas las definiciones contenidas en el privado? Aquí hay un ejemplo:Emacs rubí modo de sangrado privada

def redirect_back_or(default)  
    redirect_to(session[:return_to] || default)  
    clear_return_to 
end 

private 

    def user_from_remember_token  
     User.authenticate_with_salt(*remember_token)  
    end 

Respuesta

2

Privado no introduce un nuevo ámbito, por lo que las definiciones de sangrado debajo no son técnicamente correctas. Si bien hay varios indentation styles for private/protected members, el único soportado por el modo ruby ​​es el que es semánticamente correcto (no introduce anidamiento adicional). El "Ruby style guide" también recomienda ese estilo (sin mencionar una indentación de dos 2 espacios).

+0

Aunque este puede no ser el estilo oficial, Michael Hartl sugirió hacerlo de esta manera en su libro. Planteó una experiencia en la que pasó algunas horas depurando porque uno de sus métodos se incluyó involuntariamente en privado. No tomé su consejo en serio hasta que me pasó lo mismo = [ – stackOverlord

+2

Esto podría ser así, pero Michael Hartl es apenas tan influyente como Matz y dudo que Matz y los desarrolladores centrales de Ruby aprobaran alguna vez tal indentación que no se corresponde con la semántica del código. –

+4

Si el hacker de gran nombre aprueba o desaprueba un estilo de sangría no es el problema aquí. En cambio, está haciendo que la sangría funcione ** de acuerdo con las preferencias individuales del afiche. ** –