1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-25 07:28:20 +00:00

Simplify ruby--string-region

* progmodes/ruby-mode.el (ruby--string-region): Simplify code
by leveraging `syntax-ppss'.
This commit is contained in:
Bozhidar Batsov 2014-12-22 17:03:32 +02:00
parent 251463c60b
commit fafba80d73
2 changed files with 11 additions and 11 deletions

View File

@ -1,3 +1,8 @@
2014-12-22 Bozhidar Batsov <bozhidar@batsov.com>
* progmodes/ruby-mode.el (ruby--string-region): Simplify code
by leveraging `syntax-ppss'.
2014-12-22 Artur Malabarba <bruce.connor.am@gmail.com>
* let-alist.el (let-alist): Use `make-symbol' instead of `gensym'.

View File

@ -1768,17 +1768,12 @@ If the result is do-end block, it will always be multiline."
(defun ruby--string-region ()
"Return region for string at point."
(let ((orig-point (point)) (regex "'\\(\\(\\\\'\\)\\|[^']\\)*'\\|\"\\(\\(\\\\\"\\)\\|[^\"]\\)*\"") beg end)
(save-excursion
(goto-char (line-beginning-position))
(while (and (re-search-forward regex (line-end-position) t) (not (and beg end)))
(let ((match-beg (match-beginning 0)) (match-end (match-end 0)))
(when (and
(> orig-point match-beg)
(< orig-point match-end))
(setq beg match-beg)
(setq end match-end))))
(and beg end (list beg end)))))
(let ((state (syntax-ppss)))
(when (memq (nth 3 state) '(?' ?\"))
(save-excursion
(goto-char (nth 8 state))
(forward-sexp)
(list (nth 8 state) (point))))))
(defun ruby-string-at-point-p ()
"Check if cursor is at a string or not."