emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-29 0d3b6518e39 1/4: (ruby-ts--indent-rules): Indent inside empty p


From: Dmitry Gutov
Subject: emacs-29 0d3b6518e39 1/4: (ruby-ts--indent-rules): Indent inside empty parens properly
Date: Thu, 19 Jan 2023 12:44:55 -0500 (EST)

branch: emacs-29
commit 0d3b6518e39a28774e4e70ed9bb7ef4aa009c0cf
Author: Dmitry Gutov <dgutov@yandex.ru>
Commit: Dmitry Gutov <dgutov@yandex.ru>

    (ruby-ts--indent-rules): Indent inside empty parens properly
    
    * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
    Consider the case when there are no arguments inside the call yet.
    
    * test/lisp/progmodes/ruby-ts-mode-tests.el
    (ruby-ts-indent-call-no-args): Add test.
---
 lisp/progmodes/ruby-ts-mode.el            |  4 +++-
 test/lisp/progmodes/ruby-ts-mode-tests.el | 12 ++++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/lisp/progmodes/ruby-ts-mode.el b/lisp/progmodes/ruby-ts-mode.el
index f075824591d..41a1d8df2a6 100644
--- a/lisp/progmodes/ruby-ts-mode.el
+++ b/lisp/progmodes/ruby-ts-mode.el
@@ -680,7 +680,9 @@ a statement container is a node that matches
            ((and (query "(argument_list \"(\" _ @indent)")
                  (node-is ")"))
             ruby-ts--parent-call-or-bol 0)
-           ((query "(argument_list \"(\" _ @indent)")
+           ((or (query "(argument_list \"(\" _ @indent)")
+                ;; No arguments yet; NODE is nil in that case.
+                (match "\\`\\'" "argument_list"))
             ruby-ts--parent-call-or-bol ruby-indent-level)
            ;; 3) No paren, ruby-parenless-call-arguments-indent is t
            ((and ruby-ts--parenless-call-arguments-indent-p (parent-is 
"argument_list"))
diff --git a/test/lisp/progmodes/ruby-ts-mode-tests.el 
b/test/lisp/progmodes/ruby-ts-mode-tests.el
index d34c235e82b..18e3e60a04a 100644
--- a/test/lisp/progmodes/ruby-ts-mode-tests.el
+++ b/test/lisp/progmodes/ruby-ts-mode-tests.el
@@ -110,6 +110,18 @@ The whitespace before and including \"|\" on each line is 
removed."
      |      42
      |    end")))
 
+
+(ert-deftest ruby-ts-indent-call-no-args ()
+  (skip-unless (treesit-ready-p 'ruby t))
+  (ruby-ts-with-temp-buffer
+      "variable = foo(
+
+)"
+    (goto-char (point-min))
+    (forward-line 1)
+    (funcall indent-line-function)
+    (should (= (current-indentation) ruby-indent-level))))
+
 (ert-deftest ruby-ts-add-log-current-method-examples ()
   (skip-unless (treesit-ready-p 'ruby t))
   (let ((pairs '(("foo" . "#foo")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]