Function: ruby-toggle-string-quotes

ruby-toggle-string-quotes is an interactive and byte-compiled function defined in ruby-mode.el.gz.

Signature

(ruby-toggle-string-quotes)

Documentation

Toggle string literal quoting between single and double.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/ruby-mode.el.gz
(defun ruby-toggle-string-quotes ()
  "Toggle string literal quoting between single and double."
  (interactive)
  (when (ruby-string-at-point-p)
    (let* ((region (ruby--string-region))
           (min (nth 0 region))
           (max (nth 1 region))
           (string-quote (ruby--inverse-string-quote (buffer-substring-no-properties min (1+ min))))
           (content
            (buffer-substring-no-properties (1+ min) (1- max))))
      (setq content
            (if (equal string-quote "'")
                (string-replace "\\\"" "\"" (replace-regexp-in-string "\\(\\`\\|[^\\]\\)'" "\\1\\\\'" content))
              (string-replace "\\'" "'" (replace-regexp-in-string "\\(\\`\\|[^\\]\\)\"" "\\1\\\\\"" content))))
      (let ((orig-point (point)))
        (delete-region min max)
        (insert
         (format "%s%s%s" string-quote content string-quote))
        (goto-char orig-point)))))