RUBY							*ft-ruby-indent*
							*vim-ruby-indent*

    Ruby: Access modifier indentation	|ruby-access-modifier-indentation|
    Ruby: Block style indentation	|ruby-block-style-indentation|
    Ruby: Assignment style indentation	|ruby-assignment-style-indentation|
    Ruby: Hanging element indentation	|ruby-hanging-element-indentation|

					*ruby-access-modifier-indentation*
					*g:ruby_indent_access_modifier_style*
 Ruby: Access modifier indentation ~

Different access modifier indentation styles can be used by setting: >

	:let g:ruby_indent_access_modifier_style = 'normal'
	:let g:ruby_indent_access_modifier_style = 'indent'
	:let g:ruby_indent_access_modifier_style = 'outdent'
<
By default, the "normal" access modifier style is used.

Access modifier style "normal":
>
  class Indent
    private :method
    protected :method
    private
    def method; end
    protected
    def method; end
    public
    def method; end
  end
<
Access modifier style "indent":
>
  class Indent
    private :method
    protected :method
    private
      def method; end
    protected
      def method; end
    public
    def method; end
  end
<
Access modifier style "outdent":
>
  class Indent
    private :method
    protected :method
  private
    def method; end
  protected
    def method; end
  public
    def method; end
  end
<
					*ruby-block-style-indentation*
					*g:ruby_indent_block_style*
    Ruby: Block style indentation ~

Different block indentation styles can be used by setting: >

    :let g:ruby_indent_block_style = 'expression'
    :let g:ruby_indent_block_style = 'do'
<
By default, the "do" block indent style is used.

Block indent style "expression":
>
    first
      .second do |x|
      something
    end
<
Block indent style "do":
>
    first
      .second do |x|
        something
      end
<

					*ruby-assignment-style-indentation*
					*g:ruby_indent_assignment_style*
    Ruby: Assignment style indentation ~

Different styles of indenting assignment for multiline expressions:
>
    :let g:ruby_indent_assignment_style = 'hanging'
    :let g:ruby_indent_assignment_style = 'variable'
<
By default, the "hanging" style is used.

Assignment indent style "hanging":
>
    x = if condition
          something
        end
<
Assignment indent style "variable":
>
    x = if condition
      something
    end
<

					*ruby-hanging-element-indentation*
					*g:ruby_indent_hanging_elements*
    Ruby: Hanging element indentation ~

Elements of multiline collections -- such as arrays, hashes, and method
argument lists -- can have hanging indentation enabled or disabled with the
following setting.
>
    :let g:ruby_indent_hanging_elements = 1
    :let g:ruby_indent_hanging_elements = 0
<
By default, this setting is "1" (true) meaning that hanging indentation is
enabled in some cases.

Here is an example method call when the setting is true (non-zero):
>
    render('product/show',
           product: product,
           on_sale: true,
          )
<
And the same method call when the setting is false (zero):
>
    render('product/show',
      product: product,
      on_sale: true,
    )
<
Note that, even if the setting is turned on, you can still get non-hanging
indentation by putting each argument on a separate line:
>
    render(
      'product/show',
      product: product,
      on_sale: true,
    )
<

 vim:tw=78:sw=4:ts=8:ft=help:norl: