diff options
| author | Dmitry Gutov | 2023-01-18 00:41:14 +0200 |
|---|---|---|
| committer | Dmitry Gutov | 2023-01-18 03:27:37 +0200 |
| commit | 5e2e68a0c2d7d4e06747ea9fc6112dae8d5e32b6 (patch) | |
| tree | 22e5aa4826f7591144d7486b6375d086f92f0e0b | |
| parent | 9ed9ff4690a8b26ac9729a66aa22f2e14856cd0c (diff) | |
| download | emacs-5e2e68a0c2d7d4e06747ea9fc6112dae8d5e32b6.tar.gz emacs-5e2e68a0c2d7d4e06747ea9fc6112dae8d5e32b6.zip | |
ruby-ts-mode: Fix indent inside parenthesized_expr and else/end after unless
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Fix indentation for parenthesized_expression and else/end after
'unless'.
* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
New examples.
| -rw-r--r-- | lisp/progmodes/ruby-ts-mode.el | 7 | ||||
| -rw-r--r-- | test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb | 10 |
2 files changed, 15 insertions, 2 deletions
diff --git a/lisp/progmodes/ruby-ts-mode.el b/lisp/progmodes/ruby-ts-mode.el index 19b766ceadb..853c869a319 100644 --- a/lisp/progmodes/ruby-ts-mode.el +++ b/lisp/progmodes/ruby-ts-mode.el | |||
| @@ -587,11 +587,11 @@ i.e. expr of def foo(args) = expr is returned." | |||
| 587 | ;; | 587 | ;; |
| 588 | ;; I'm using very restrictive patterns hoping to reduce rules | 588 | ;; I'm using very restrictive patterns hoping to reduce rules |
| 589 | ;; triggering unintentionally. | 589 | ;; triggering unintentionally. |
| 590 | ((match "else" "if") | 590 | ((match "else" "if\\|unless") |
| 591 | (ruby-ts--align-keywords ruby-ts--parent-node) 0) | 591 | (ruby-ts--align-keywords ruby-ts--parent-node) 0) |
| 592 | ((match "elsif" "if") | 592 | ((match "elsif" "if") |
| 593 | (ruby-ts--align-keywords ruby-ts--parent-node) 0) | 593 | (ruby-ts--align-keywords ruby-ts--parent-node) 0) |
| 594 | ((match "end" "if") | 594 | ((match "end" "if\\|unless") |
| 595 | (ruby-ts--align-keywords ruby-ts--parent-node) 0) | 595 | (ruby-ts--align-keywords ruby-ts--parent-node) 0) |
| 596 | ((n-p-gp nil "then\\|else\\|elsif" "if\\|unless") | 596 | ((n-p-gp nil "then\\|else\\|elsif" "if\\|unless") |
| 597 | (ruby-ts--align-keywords ruby-ts--grand-parent-node) ruby-indent-level) | 597 | (ruby-ts--align-keywords ruby-ts--grand-parent-node) ruby-indent-level) |
| @@ -754,6 +754,9 @@ i.e. expr of def foo(args) = expr is returned." | |||
| 754 | ((match "]" "array") parent-bol 0) | 754 | ((match "]" "array") parent-bol 0) |
| 755 | ((parent-is "array") parent-bol ruby-indent-level) | 755 | ((parent-is "array") parent-bol ruby-indent-level) |
| 756 | 756 | ||
| 757 | ((match ")" "parenthesized_statements") parent-bol 0) | ||
| 758 | ((parent-is "parenthesized_statements") parent-bol ruby-indent-level) | ||
| 759 | |||
| 757 | ;; If the previous method isn't finished yet, this will get | 760 | ;; If the previous method isn't finished yet, this will get |
| 758 | ;; the next method indented properly. | 761 | ;; the next method indented properly. |
| 759 | ((n-p-gp ,ruby-ts--method-regex "body_statement" ,ruby-ts--class-or-module-regex) | 762 | ((n-p-gp ,ruby-ts--method-regex "body_statement" ,ruby-ts--class-or-module-regex) |
diff --git a/test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb b/test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb index 6b4107ef97b..7de94ceadec 100644 --- a/test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb +++ b/test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb | |||
| @@ -18,6 +18,16 @@ qux = [1, | |||
| 18 | att = {a: 1, | 18 | att = {a: 1, |
| 19 | b: 2} | 19 | b: 2} |
| 20 | 20 | ||
| 21 | a = 1 ? 2 :( | ||
| 22 | 2 + 3 | ||
| 23 | ) | ||
| 24 | |||
| 25 | unless bismark | ||
| 26 | sink += 12 | ||
| 27 | else | ||
| 28 | dog = 99 | ||
| 29 | end | ||
| 30 | |||
| 21 | # Local Variables: | 31 | # Local Variables: |
| 22 | # mode: ruby-ts | 32 | # mode: ruby-ts |
| 23 | # End: | 33 | # End: |