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:
parent
251463c60b
commit
fafba80d73
@ -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'.
|
||||
|
@ -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."
|
||||
|
Loading…
Reference in New Issue
Block a user