[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-29 5e2e68a0c2 2/6: ruby-ts-mode: Fix indent inside parenthesized_e
From: |
Dmitry Gutov |
Subject: |
emacs-29 5e2e68a0c2 2/6: ruby-ts-mode: Fix indent inside parenthesized_expr and else/end after unless |
Date: |
Tue, 17 Jan 2023 20:28:43 -0500 (EST) |
branch: emacs-29
commit 5e2e68a0c2d7d4e06747ea9fc6112dae8d5e32b6
Author: Dmitry Gutov <dgutov@yandex.ru>
Commit: Dmitry Gutov <dgutov@yandex.ru>
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.
---
lisp/progmodes/ruby-ts-mode.el | 7 +++++--
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 19b766cead..853c869a31 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."
;;
;; I'm using very restrictive patterns hoping to reduce rules
;; triggering unintentionally.
- ((match "else" "if")
+ ((match "else" "if\\|unless")
(ruby-ts--align-keywords ruby-ts--parent-node) 0)
((match "elsif" "if")
(ruby-ts--align-keywords ruby-ts--parent-node) 0)
- ((match "end" "if")
+ ((match "end" "if\\|unless")
(ruby-ts--align-keywords ruby-ts--parent-node) 0)
((n-p-gp nil "then\\|else\\|elsif" "if\\|unless")
(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."
((match "]" "array") parent-bol 0)
((parent-is "array") parent-bol ruby-indent-level)
+ ((match ")" "parenthesized_statements") parent-bol 0)
+ ((parent-is "parenthesized_statements") parent-bol
ruby-indent-level)
+
;; If the previous method isn't finished yet, this will get
;; the next method indented properly.
((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 6b4107ef97..7de94ceade 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,
att = {a: 1,
b: 2}
+a = 1 ? 2 :(
+ 2 + 3
+)
+
+unless bismark
+ sink += 12
+else
+ dog = 99
+end
+
# Local Variables:
# mode: ruby-ts
# End:
- emacs-29 updated (c4f0b6ccea -> 343b9b3dfe), Dmitry Gutov, 2023/01/17
- emacs-29 343b9b3dfe 6/6: ruby-ts-mode: Obey the option ruby-method-call-indent, Dmitry Gutov, 2023/01/17
- emacs-29 045404d1aa 5/6: ruby-ts-mode: Obey the option ruby-after-operator-indent, Dmitry Gutov, 2023/01/17
- emacs-29 9ed9ff4690 1/6: ruby-ts-mode: Fix the rules for hanging arrays and hashes, Dmitry Gutov, 2023/01/17
- emacs-29 5e2e68a0c2 2/6: ruby-ts-mode: Fix indent inside parenthesized_expr and else/end after unless,
Dmitry Gutov <=
- emacs-29 ac5516bd7d 3/6: ruby-ts-mode: Fix/change indentation of a continuation method call, Dmitry Gutov, 2023/01/17
- emacs-29 300ca6ac37 4/6: ruby-ts-mode: Fix indent after operator or conditional, Dmitry Gutov, 2023/01/17