diff options
Diffstat (limited to 'test/lisp')
6 files changed, 127 insertions, 0 deletions
diff --git a/test/lisp/progmodes/ruby-mode-resources/ruby-after-operator-indent.rb b/test/lisp/progmodes/ruby-mode-resources/ruby-after-operator-indent.rb new file mode 100644 index 00000000000..25cd8736f97 --- /dev/null +++ b/test/lisp/progmodes/ruby-mode-resources/ruby-after-operator-indent.rb @@ -0,0 +1,29 @@ +4 + + 5 + + 6 + + 7 + +qux = 4 + 5 * + 6 + + 7 + +foo = obj.bar { |m| tee(m) } + + obj.qux { |m| hum(m) } + +foo. + bar + .baz + +qux = foo.fee ? + bar : + tee + +# Endless methods. +class Bar + def foo(abc) = bar + + baz +end + +# Local Variables: +# ruby-after-operator-indent: nil +# End: diff --git a/test/lisp/progmodes/ruby-mode-resources/ruby-block-indent.rb b/test/lisp/progmodes/ruby-mode-resources/ruby-block-indent.rb new file mode 100644 index 00000000000..32882814b7e --- /dev/null +++ b/test/lisp/progmodes/ruby-mode-resources/ruby-block-indent.rb @@ -0,0 +1,33 @@ +foo + .asdasd + .proc do |**args| + p(**args) + end + +foo + .asdasd + .proc { |**args| + p(**args) + } + +bar.foo do + bar +end + +bar.foo(tee) do + bar +end + +bar.foo(tee) { + bar +} + +x.foo do + foo +end.bar do + bar +end + +# Local Variables: +# ruby-block-indent: nil +# End: diff --git a/test/lisp/progmodes/ruby-mode-resources/ruby-method-call-indent.rb b/test/lisp/progmodes/ruby-mode-resources/ruby-method-call-indent.rb new file mode 100644 index 00000000000..1a8285ee919 --- /dev/null +++ b/test/lisp/progmodes/ruby-mode-resources/ruby-method-call-indent.rb @@ -0,0 +1,15 @@ +foo2 = + subject. + update( + 2 + ) + +foo3 = + subject + .update( + 2 + ) + +# Local Variables: +# ruby-method-call-indent: nil +# End: diff --git a/test/lisp/progmodes/ruby-mode-resources/ruby-parenless-call-arguments-indent.rb b/test/lisp/progmodes/ruby-mode-resources/ruby-parenless-call-arguments-indent.rb new file mode 100644 index 00000000000..58e08810c4c --- /dev/null +++ b/test/lisp/progmodes/ruby-mode-resources/ruby-parenless-call-arguments-indent.rb @@ -0,0 +1,23 @@ +method arg1, + method2 arg2, + arg3, [ + arg4, + arg5 + ] + +zzz = method (a + b), + c, :d => :e, + f: g + +return render json: { + errors: { base: [message] }, + copying: copying + }, + status: 400 + +foo(a, + b) + +# Local Variables: +# ruby-parenless-call-arguments-indent: nil +# End: diff --git a/test/lisp/progmodes/ruby-mode-resources/ruby.rb b/test/lisp/progmodes/ruby-mode-resources/ruby.rb index 6a69d9db78a..bfae948b259 100644 --- a/test/lisp/progmodes/ruby-mode-resources/ruby.rb +++ b/test/lisp/progmodes/ruby-mode-resources/ruby.rb @@ -226,6 +226,7 @@ desc "foo foo" \ foo. bar + .baz # https://github.com/rails/rails/blob/17f5d8e062909f1fcae25351834d8e89967b645e/activesupport/lib/active_support/time_with_zone.rb#L206 foo # comment intended to confuse the tokenizer @@ -380,6 +381,18 @@ foo = [1, 2, 3].map do |i| i + 1 end +m1 = foo + .asdasd + .proc do |**args| + p(**args) +end + +m2 = foo + .asdasd + .proc { |**args| + p(**args) +} + bar.foo do bar end @@ -398,6 +411,12 @@ bar 1 do end end +x.foo do + foo +end.bar do + bar +end + foo | bar @@ -540,5 +559,9 @@ class Bar end # Local Variables: +# ruby-after-operator-indent: t +# ruby-block-indent: t +# ruby-method-call-indent: t # ruby-method-params-indent: t +# ruby-parenless-call-arguments-indent: t # End: diff --git a/test/lisp/progmodes/ruby-mode-tests.el b/test/lisp/progmodes/ruby-mode-tests.el index 560f780285a..5c81cc31cc1 100644 --- a/test/lisp/progmodes/ruby-mode-tests.el +++ b/test/lisp/progmodes/ruby-mode-tests.el @@ -956,7 +956,11 @@ VALUES-PLIST is a list with alternating index and value elements." (kill-buffer buf))))) (ruby-deftest-indent "ruby.rb") +(ruby-deftest-indent "ruby-after-operator-indent.rb") +(ruby-deftest-indent "ruby-block-indent.rb") +(ruby-deftest-indent "ruby-method-call-indent.rb") (ruby-deftest-indent "ruby-method-params-indent.rb") +(ruby-deftest-indent "ruby-parenless-call-arguments-indent.rb") (ert-deftest ruby--test-chained-indentation () (with-temp-buffer |