2011-10-15 16 views
5

Czy ktoś wie, jak uzyskać tryb Ruby w Emacs, aby podać wszystkie definicje pod prywatną? Oto przykład:Emacs wcięcie w trybie ruby ​​prywatne

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 

Odpowiedz

2

Prywatny nie wprowadza nowego zakresu, więc wcięcie definicji pod nim nie jest technicznie poprawne. Chociaż istnieje kilka indentation styles for private/protected members, jedynym obsługiwanym przez tryb ruby ​​jest ten, który jest semantycznie poprawny (nie wprowadza dodatkowego zagnieżdżania). The "Ruby style guide" również zaleca ten styl (nie wspominając o dwóch 2 wcięć).

+0

Chociaż może to nie być oficjalny styl, Michael Hartl zasugerował zrobienie tego w ten sposób w swojej książce. Wychowywał doświadczenie, w którym spędził kilka godzin na debugowaniu, ponieważ jedna z jego metod została nieumyślnie włączona do prywatnego. Nie traktowałem jego rady poważnie, dopóki to samo nie stało się dla mnie = [ – stackOverlord

+2

To może być tak, ale Michael Hartl nie jest tak wpływowy jak Matz i wątpię, czy Matz i rdzeni twórcy Ruby kiedykolwiek zaakceptowaliby takie wcięcie, nie odpowiada semantyce kodu. –

+4

To, czy jakiś haker Big-Name zatwierdza lub nie akceptuje stylu wcięć, nie jest tutaj problemem. Zamiast tego uzyskuje wcięcie do pracy ** zgodnie z indywidualnymi preferencjami plakatu. ** –