summaryrefslogtreecommitdiffstats
path: root/doc/ft-ruby-indent.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/ft-ruby-indent.txt')
-rw-r--r--doc/ft-ruby-indent.txt152
1 files changed, 152 insertions, 0 deletions
diff --git a/doc/ft-ruby-indent.txt b/doc/ft-ruby-indent.txt
new file mode 100644
index 00000000..5e274965
--- /dev/null
+++ b/doc/ft-ruby-indent.txt
@@ -0,0 +1,152 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1
+
+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:
+
+endif