diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2cbdbdb..3ac7b2e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-07-14 Dmitry Gutov + + * progmodes/ruby-mode.el (ruby-parse-partial): No error when end + up inside string symbol literal. + 2012-07-12 Eli Zaretskii * emacs-lisp/bytecomp.el (byte-recompile-directory): Use cl-incf, diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 15c8246..a947442 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -594,7 +594,7 @@ and `\\' when preceded by `?'." (goto-char pnt)) ((looking-at ":\\(['\"]\\)") (goto-char (match-beginning 1)) - (ruby-forward-string (buffer-substring (match-beginning 1) (match-end 1)) end)) + (ruby-forward-string (buffer-substring (match-beginning 1) (match-end 1)) end t)) ((looking-at ":\\([-,.+*/%&|^~<>]=?\\|===?\\|<=>\\|![~=]?\\)") (goto-char (match-end 0))) ((looking-at ":\\([a-zA-Z_][a-zA-Z_0-9]*[!?=]?\\)?") diff --git a/test/ChangeLog b/test/ChangeLog index 489298d..f876c08 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,7 @@ +2012-07-14 Dmitry Gutov + + * automated/ruby-mode-tests.el: New file with one test. + 2012-07-11 Stefan Monnier * eshell.el: Use cl-lib. diff --git a/test/automated/ruby-mode-tests.el b/test/automated/ruby-mode-tests.el new file mode 100644 index 0000000..2535f36 --- /dev/null +++ b/test/automated/ruby-mode-tests.el @@ -0,0 +1,37 @@ +;;; ruby-mode-tests.el --- Test suite for ruby-mode + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;;; Code: + +(require 'ruby-mode) + +(ert-deftest indent-line-after-symbol-made-from-string-interpolation () + "It can indent the line after symbol made using string interpolation." + (let ((initial-content "def foo(suffix)\n :\"bar#{suffix}\"\n") + (expected-content "def foo(suffix)\n :\"bar#{suffix}\"\n ")) + (with-temp-buffer + (insert initial-content) + (ruby-indent-line) ; Doesn't rely on text properties or the syntax table. + (let ((buffer-content (buffer-substring-no-properties (point-min) + (point-max)))) + (should (string= buffer-content expected-content)))))) + +(provide 'ruby-mode-tests) + +;;; ruby-mode-tests.el ends here