summaryrefslogtreecommitdiff
path: root/lisp/progmodes/ruby-mode.el
diff options
context:
space:
mode:
authorDmitry Gutov <dgutov@yandex.ru>2022-01-21 04:59:39 +0200
committerDmitry Gutov <dgutov@yandex.ru>2022-01-21 04:59:39 +0200
commit9a0842dffe0013f4cca4853278ac3eaf94c4d3fc (patch)
tree039cfbb1646612a3945f772e28ff0fcc4839ae97 /lisp/progmodes/ruby-mode.el
parent7269106578fc1e7e4843457b4b25bff521aa58d5 (diff)
downloademacs-9a0842dffe0013f4cca4853278ac3eaf94c4d3fc.tar.gz
ruby-toggle-block-space-before-parameters: New user option
* lisp/progmodes/ruby-mode.el (ruby-toggle-block-space-before-parameters): New user option (bug#53321). (ruby-do-end-to-brace): Handle it. * test/lisp/progmodes/ruby-mode-tests.el (ruby-toggle-block-to-brace-no-space): New test.
Diffstat (limited to 'lisp/progmodes/ruby-mode.el')
-rw-r--r--lisp/progmodes/ruby-mode.el22
1 files changed, 15 insertions, 7 deletions
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 72631a6557f..eb54ffe05a8 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -325,6 +325,13 @@ It is used when `ruby-encoding-magic-comment-style' is set to `custom'."
"Use `ruby-encoding-map' to set encoding magic comment if this is non-nil."
:type 'boolean :group 'ruby)
+(defcustom ruby-toggle-block-space-before-parameters t
+ "When non-nil, ensure space between the \"toggled\" curly and parameters.
+This only affects the output of the command `ruby-toggle-block'."
+ :type 'boolean
+ :safe 'booleanp
+ :version "29.1")
+
;;; SMIE support
(require 'smie)
@@ -1722,13 +1729,14 @@ See `add-log-current-defun-function'."
(insert "}")
(goto-char orig)
(delete-char 2)
- ;; Maybe this should be customizable, let's see if anyone asks.
- (insert "{ ")
- (setq beg-marker (point-marker))
- (when (looking-at "\\s +|")
- (delete-char (- (match-end 0) (match-beginning 0) 1))
- (forward-char)
- (re-search-forward "|" (line-end-position) t))
+ (insert "{")
+ (if (looking-at "\\s +|")
+ (progn
+ (just-one-space (if ruby-toggle-block-space-before-parameters 1 0))
+ (setq beg-marker (point-marker))
+ (forward-char)
+ (re-search-forward "|" (line-end-position) t))
+ (setq beg-marker (point-marker)))
(save-excursion
(skip-chars-forward " \t\n\r")
(setq beg-pos (point))