From cd95c1d213a692113d91817be9ce9e400a4aafef Mon Sep 17 00:00:00 2001 From: Vitaly Slobodin Date: Fri, 18 Sep 2026 10:23:33 +0200 Subject: [PATCH] fix(ruby): Improve indentation for `case...in` statements --- languages/ruby/brackets.scm | 8 ++++++++ languages/ruby/config.toml | 4 ++-- languages/ruby/indents.scm | 3 +++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/languages/ruby/brackets.scm b/languages/ruby/brackets.scm index fbfab2a..2b9070c 100644 --- a/languages/ruby/brackets.scm +++ b/languages/ruby/brackets.scm @@ -48,3 +48,11 @@ . "class" @open "end" @close) + +(case + "case" @open + "end" @close) + +(case_match + "case" @open + "end" @close) diff --git a/languages/ruby/config.toml b/languages/ruby/config.toml index 502a658..751533d 100644 --- a/languages/ruby/config.toml +++ b/languages/ruby/config.toml @@ -60,8 +60,8 @@ brackets = [ ] collapsed_placeholder = "# ..." tab_size = 2 -increase_indent_pattern = '(^\s*(module|class|def|if|elsif|else|unless|case|when|while|until|for|begin|rescue|ensure)\b|\bdo\s*(\|[^|]*\|)?\s*$)' -decrease_indent_pattern = '^\s*(end|elsif|else|when|rescue|ensure)\b' +increase_indent_pattern = '(^\s*(module|class|def|if|elsif|else|unless|case|when|in|while|until|for|begin|rescue|ensure)\b|\bdo\s*(\|[^|]*\|)?\s*$)' +decrease_indent_pattern = '^\s*(end|elsif|else|when|in|rescue|ensure)\b' scope_opt_in_language_servers = ["tailwindcss-language-server"] word_characters = ["?", "!"] debuggers = ["rdbg"] diff --git a/languages/ruby/indents.scm b/languages/ruby/indents.scm index 4ea1b05..3ee1c3d 100644 --- a/languages/ruby/indents.scm +++ b/languages/ruby/indents.scm @@ -19,6 +19,9 @@ (case "end" @end) @indent +(case_match + "end" @end) @indent + (begin "end" @end) @indent