]> git.eshelyaron.com Git - emacs.git/commitdiff
ruby-ts-mode: Rehash which nodes should be treated as sexps
authorDmitry Gutov <dgutov@yandex.ru>
Tue, 28 Mar 2023 22:08:55 +0000 (01:08 +0300)
committerDmitry Gutov <dgutov@yandex.ru>
Tue, 28 Mar 2023 22:08:55 +0000 (01:08 +0300)
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Recognize smaller
syntactic elements as sexps too (bug#62416).  Also do that for
heredocs, regexps and symbol arrays.  But drop binary expressions
(including assignments) since they led to non-intuitive behavior.

lisp/progmodes/ruby-ts-mode.el

index 97c7cf6480c12c36672d4774add14f0a54957331..1a085b669eed8d5fc433c51ec627749645cb144e 100644 (file)
@@ -1114,21 +1114,32 @@ leading double colon is not added."
   (setq-local treesit-defun-type-regexp ruby-ts--method-regex)
 
   (setq-local treesit-sexp-type-regexp
-              (regexp-opt '("class"
-                            "module"
-                            "method"
-                            "argument_list"
-                            "array"
-                            "hash"
-                            "parenthesized_statements"
-                            "if"
-                            "case"
-                            "when"
-                            "block"
-                            "do_block"
-                            "begin"
-                            "binary"
-                            "assignment")))
+              (rx bol
+                  (or "class"
+                      "module"
+                      "method"
+                      "array"
+                      "hash"
+                      "parenthesized_statements"
+                      "if"
+                      "case"
+                      "when"
+                      "block"
+                      "do_block"
+                      "begin"
+                      "integer"
+                      "identifier"
+                      "constant"
+                      "simple_symbol"
+                      "symbol_array"
+                      "hash_key_symbol"
+                      "string"
+                      "string_array"
+                      "heredoc_body"
+                      "regex"
+                      "argument_list"
+                      )
+                  eol))
 
   ;; AFAIK, Ruby can not nest methods
   (setq-local treesit-defun-prefer-top-level nil)