diff --git a/rc/filetype/ruby.kak b/rc/filetype/ruby.kak index 8c6dea3f..88844ded 100644 --- a/rc/filetype/ruby.kak +++ b/rc/filetype/ruby.kak @@ -156,7 +156,6 @@ define-command -hidden ruby-indent-on-char %{ try %{ execute-keys -draft ^ \h * (elsif) $ i ^ \h * (if) 1 } try %{ execute-keys -draft ^ \h * (when) $ i ^ \h * (case) 1 } try %{ execute-keys -draft ^ \h * (rescue) $ i ^ \h * (begin|def) 1 } - try %{ execute-keys -draft ^ \h * (end) $ i ^ \h * (begin|case|class|def|for|if|module|unless|until|while) 1 } } } @@ -174,7 +173,7 @@ define-command -hidden ruby-indent-on-new-line %{ define-command -hidden ruby-insert-on-new-line %[ evaluate-commands -no-hooks -draft -itersel %[ # copy _#_ comment prefix and following white spaces - try %{ execute-keys -draft k s '^\h*\K#\h*' y j P } + try %{ execute-keys -draft k s ^\h*\K#\h* y jgi P } # wisely add end structure evaluate-commands -save-regs x %[ try %{ execute-keys -draft k s ^ \h + \" x y } catch %{ reg x '' } diff --git a/test/indent/ruby/deindent-on-if-else-end/cmd b/test/indent/ruby/deindent-on-if-else-end/cmd new file mode 100644 index 00000000..af7a7628 --- /dev/null +++ b/test/indent/ruby/deindent-on-if-else-end/cmd @@ -0,0 +1 @@ +celsifelse diff --git a/test/indent/ruby/deindent-on-if-else-end/in b/test/indent/ruby/deindent-on-if-else-end/in new file mode 100644 index 00000000..d2ff880a --- /dev/null +++ b/test/indent/ruby/deindent-on-if-else-end/in @@ -0,0 +1 @@ +if%( ) diff --git a/test/indent/ruby/deindent-on-if-else-end/out b/test/indent/ruby/deindent-on-if-else-end/out new file mode 100644 index 00000000..0c6e08ae --- /dev/null +++ b/test/indent/ruby/deindent-on-if-else-end/out @@ -0,0 +1,4 @@ +if +elsif +else +end diff --git a/test/indent/ruby/deindent-on-if-else-end/rc b/test/indent/ruby/deindent-on-if-else-end/rc new file mode 100644 index 00000000..934f7e83 --- /dev/null +++ b/test/indent/ruby/deindent-on-if-else-end/rc @@ -0,0 +1,3 @@ +source "%val{runtime}/colors/default.kak" +source "%val{runtime}/rc/filetype/ruby.kak" +set buffer filetype ruby diff --git a/test/indent/ruby/insert-comment-hash/cmd b/test/indent/ruby/insert-comment-hash/cmd new file mode 100644 index 00000000..1b9319dc --- /dev/null +++ b/test/indent/ruby/insert-comment-hash/cmd @@ -0,0 +1 @@ +cjo# comment3comment4jo# indentedindented2jodef f# commentcomment2jjodef f# commenthhhi diff --git a/test/indent/ruby/insert-comment-hash/in b/test/indent/ruby/insert-comment-hash/in new file mode 100644 index 00000000..450a9496 --- /dev/null +++ b/test/indent/ruby/insert-comment-hash/in @@ -0,0 +1 @@ +# Comment%( ) comment2 diff --git a/test/indent/ruby/insert-comment-hash/out b/test/indent/ruby/insert-comment-hash/out new file mode 100644 index 00000000..b5683071 --- /dev/null +++ b/test/indent/ruby/insert-comment-hash/out @@ -0,0 +1,18 @@ +# Comment +# comment2 + +# comment3 +# comment4 + +# indented +# indented2 + +def f + # comment + # comment2 +end + +def f + # comm + # ent +end diff --git a/test/indent/ruby/insert-comment-hash/rc b/test/indent/ruby/insert-comment-hash/rc new file mode 100644 index 00000000..934f7e83 --- /dev/null +++ b/test/indent/ruby/insert-comment-hash/rc @@ -0,0 +1,3 @@ +source "%val{runtime}/colors/default.kak" +source "%val{runtime}/rc/filetype/ruby.kak" +set buffer filetype ruby diff --git a/test/regression/4086-ruby-deindenting-other-lines-than-keywords/cmd b/test/regression/4086-ruby-deindenting-other-lines-than-keywords/cmd new file mode 100644 index 00000000..af092ecb --- /dev/null +++ b/test/regression/4086-ruby-deindenting-other-lines-than-keywords/cmd @@ -0,0 +1 @@ +cend diff --git a/test/regression/4086-ruby-deindenting-other-lines-than-keywords/in b/test/regression/4086-ruby-deindenting-other-lines-than-keywords/in new file mode 100644 index 00000000..115984bf --- /dev/null +++ b/test/regression/4086-ruby-deindenting-other-lines-than-keywords/in @@ -0,0 +1,6 @@ +class MyClass + def method +%( ) + + expression +end diff --git a/test/regression/4086-ruby-deindenting-other-lines-than-keywords/out b/test/regression/4086-ruby-deindenting-other-lines-than-keywords/out new file mode 100644 index 00000000..52988874 --- /dev/null +++ b/test/regression/4086-ruby-deindenting-other-lines-than-keywords/out @@ -0,0 +1,6 @@ +class MyClass + def method + end + + expression +end diff --git a/test/regression/4086-ruby-deindenting-other-lines-than-keywords/rc b/test/regression/4086-ruby-deindenting-other-lines-than-keywords/rc new file mode 100644 index 00000000..934f7e83 --- /dev/null +++ b/test/regression/4086-ruby-deindenting-other-lines-than-keywords/rc @@ -0,0 +1,3 @@ +source "%val{runtime}/colors/default.kak" +source "%val{runtime}/rc/filetype/ruby.kak" +set buffer filetype ruby