From unknown Fri Jun 20 19:56:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#11923: 24.1.50; (Contains ERT test) ruby-indent-line doesn't indent line after symbol creation using string interpolation Resent-From: Rolando Pereira Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 12 Jul 2012 16:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 11923 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 11923@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.134210896225432 (code B ref -1); Thu, 12 Jul 2012 16:03:02 +0000 Received: (at submit) by debbugs.gnu.org; 12 Jul 2012 16:02:42 +0000 Received: from localhost ([127.0.0.1]:36227 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SpLqi-0006c6-FU for submit@debbugs.gnu.org; Thu, 12 Jul 2012 12:02:41 -0400 Received: from eggs.gnu.org ([208.118.235.92]:48566) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SpKra-0005CT-MO for submit@debbugs.gnu.org; Thu, 12 Jul 2012 10:59:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SpKm6-0005pE-8e for submit@debbugs.gnu.org; Thu, 12 Jul 2012 10:53:58 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:35278) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SpKm6-0005pA-57 for submit@debbugs.gnu.org; Thu, 12 Jul 2012 10:53:50 -0400 Received: from eggs.gnu.org ([208.118.235.92]:54838) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SpKly-0005Pz-Pi for bug-gnu-emacs@gnu.org; Thu, 12 Jul 2012 10:53:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SpKlt-0005mg-KW for bug-gnu-emacs@gnu.org; Thu, 12 Jul 2012 10:53:42 -0400 Received: from relay4.ptmail.sapo.pt ([212.55.154.24]:60145 helo=sapo.pt) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1SpKlt-0005lj-08 for bug-gnu-emacs@gnu.org; Thu, 12 Jul 2012 10:53:37 -0400 Received: (qmail 22518 invoked from network); 12 Jul 2012 14:53:33 -0000 Received: from unknown (HELO sapo.pt) (10.134.37.164) by relay4 with SMTP; 12 Jul 2012 14:53:33 -0000 Received: (qmail 21606 invoked from network); 12 Jul 2012 14:53:33 -0000 Received: from unknown (HELO rolando-desktop) (finalyugi@sapo.pt@[178.166.117.32]) (envelope-sender ) by mta14 (qmail-ptmail-1.0.0) with AES128-SHA encrypted SMTP for ; 12 Jul 2012 14:53:29 -0000 From: Rolando Pereira Date: Thu, 12 Jul 2012 15:53:26 +0100 Message-ID: <87liip3uah.fsf@sapo.pt> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4-2.6 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.17 X-Spam-Score: -6.1 (------) X-Mailman-Approved-At: Thu, 12 Jul 2012 12:02:37 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.1 (------) When writing ruby code, if you type something like :"foo#{variable_name}" emacs can no longer indent lines following it because it gives the following error: ruby-forward-string: Search failed: "[^\\]\\(\\\\\\\\\\)*[\"]" However, ruby-mode has no problem indenting lines that only contain :"foo" (ie. without the string interpolation). Here's an ERT that shows the problem. In it, I don't activate ruby-mode because `ruby-indent-line' can be called after the call to (require 'ruby-mode) and I believe it makes the test simpler (eg. no need to worry about stuff in ruby-mode-hook): (ert-deftest indent-line-after-symbol-made-from-string-interpolation () "Ensure that `ruby-mode' can indent lines after seeing a symbol made using string interpolation The syntax for creating a symbol using string interpolation is the following: :\"bar#{variable_name}\" For example, if `variable_name' is the number 10, then this creates the symbol :bar10 and if `variable_name' is the string \"bar\", then this creates the symbol :barbar." (let ((initial-content "def foo(suffix) :\"bar#{suffix}\" ") (expected-content "def foo(suffix) :\"bar#{suffix}\" ")) (require 'ruby-mode) (with-temp-buffer ;; No need to call `ruby-mode', since `ruby-indent-line' can be ;; used after the (require 'ruby-mode) ;(ruby-mode) (insert initial-content) (ruby-indent-line) (let ((buffer-content (buffer-substring-no-properties (point-min) (point-max)))) (ert-should (string= buffer-content expected-content)))))) To experience the problem from emacs -Q you can do the following steps (which are similar to the steps that the ERT test performs): 1. Open emacs -Q 2. Require 'ruby-mode with M-: (require 'ruby-mode) 2. Create a "ruby-temp" buffer with C-x b ruby-temp RET 3. Write the following: "def foo(suffix) :"bar#{suffix}" " <-- cursor is here 4. Call M-x ruby-indent-line The final result should be: "def foo(suffix) :"bar#{suffix} " <-- cursor is here But ruby-indent-line crashes instead with the following error: ruby-forward-string: Search failed: "[^\\]\\(\\\\\\\\\\)*[\"]" In GNU Emacs 24.1.50.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1) of 2012-06-17 on rolando-desktop Bzr revision: 108644 rudalics@gmx.at-20120617104350-tpcax4jzuiamvw9r Windowing system distributor `The X.Org Foundation', version 11.0.10706000 Important settings: value of $LANG: pt_PT.utf8 locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: M-x r u b y - i n d e n t - l i n e C-x b * n m e m e s M e s s C-x b * s c r C-y - i n t e r p o l a t i o n u s i n g SPC s t r i n g SPC i n r t e t e r p o l a t i o n u s i n g SPC s t r i n g SPC i n t e r p o l a t i o n SPC i s M-d M-d M-d M-d M-x r e p o r t - e m Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. byte-code: End of buffer ruby-forward-string: Search failed: #("[^\\]\\(\\\\\\\\\\)*[\"]" 14 15 (face font-lock-string-face fontified t)) Mark set Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils ruby-mode time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) From unknown Fri Jun 20 19:56:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#11923: 24.1.50; (Contains ERT test) ruby-indent-line doesn't indent line after symbol creation using string interpolation References: <87liip3uah.fsf@sapo.pt> In-Reply-To: <87liip3uah.fsf@sapo.pt> Resent-From: Dmitry Gutov Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 14 Jul 2012 20:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 11923 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: rolando_pereira@sapo.pt Cc: 11923@debbugs.gnu.org Received: via spool by 11923-submit@debbugs.gnu.org id=B11923.134229769010102 (code B ref 11923); Sat, 14 Jul 2012 20:29:02 +0000 Received: (at 11923) by debbugs.gnu.org; 14 Jul 2012 20:28:10 +0000 Received: from localhost ([127.0.0.1]:41445 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Sq8wj-0002cs-Bh for submit@debbugs.gnu.org; Sat, 14 Jul 2012 16:28:09 -0400 Received: from forward2.mail.yandex.net ([77.88.46.7]:43523) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Sq8wf-0002ch-LR for 11923@debbugs.gnu.org; Sat, 14 Jul 2012 16:28:08 -0400 Received: from smtp4.mail.yandex.net (smtp4.mail.yandex.net [77.88.46.104]) by forward2.mail.yandex.net (Yandex) with ESMTP id D978D12A082C; Sun, 15 Jul 2012 00:22:18 +0400 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1342297338; bh=Kc02fEK/sBo2ND3ZebsiL8R63GdCSeYGCXxWM9gQYwU=; h=Message-ID:Date:From:MIME-Version:To:CC:Subject:Content-Type; b=MpEVOtkuYeJmPU8cJQqZv+TRoaXlyg5FCgvCC7Xxt7lAca0B6DBPmFxzA4fesarN4 OBZyH/7/RBF5e56zrQanhEqp4kSy35XzDYteDrHEYCzirKo6zmppoQfVyehrumzo6I GwmQzYv6RurFTAtbbhLaiprSRis2EUjinoHiRnRM= Received: from smtp4.mail.yandex.net (localhost [127.0.0.1]) by smtp4.mail.yandex.net (Yandex) with ESMTP id B75275C03A6; Sun, 15 Jul 2012 00:22:18 +0400 (MSK) Received: from 98-87.nwlink.spb.ru (98-87.nwlink.spb.ru [178.252.98.87]) by smtp4.mail.yandex.net (nwsmtp/Yandex) with ESMTP id MHKS4aQT-MIKuYllO; Sun, 15 Jul 2012 00:22:18 +0400 X-Yandex-Rcpt-Suid: rolando_pereira@sapo.pt X-Yandex-Rcpt-Suid: 11923@debbugs.gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1342297338; bh=Kc02fEK/sBo2ND3ZebsiL8R63GdCSeYGCXxWM9gQYwU=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: Content-Type; b=Iv4ivtibOX5zi5Zlgekf82iyj0xGhbos9UTp2iZCT/U/Ua+5jVxfoOpcxzyLV0ymO pzh3kuIs5a6rMYug1+CbPnuBEvxOsxaqssUoy54iWyrtUiOBhgMWR9kGbTX871hI/j VgoZConq299B3lCGeZ9B9MoJ2PSE40FmRc81kn5o= Message-ID: <5001D4FC.6000706@yandex.ru> Date: Sun, 15 Jul 2012 00:22:20 +0400 From: Dmitry Gutov User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20120614 Thunderbird/13.0.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------040608070009030102010102" X-Spam-Score: -2.6 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) This is a multi-part message in MIME format. --------------040608070009030102010102 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit --=-=-= Content-Type: text/plain Rolando Pereira writes: > When writing ruby code, if you type something like > :"foo#{variable_name}" emacs can no longer indent lines following it > because it gives the following error: > > ruby-forward-string: Search failed: "[^\\]\\(\\\\\\\\\\)*[\"]" > ... Here's a patch, including the slightly rewritten test case. --------------040608070009030102010102 Content-Type: text/plain; charset=windows-1251; name="ruby-mode-11923.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ruby-mode-11923.diff" ZGlmZiAtLWdpdCBhL2xpc3AvQ2hhbmdlTG9nIGIvbGlzcC9DaGFuZ2VMb2cKaW5kZXggMmNi ZGJkYi4uM2FjN2IyZSAxMDA2NDQKLS0tIGEvbGlzcC9DaGFuZ2VMb2cKKysrIGIvbGlzcC9D aGFuZ2VMb2cKQEAgLTEsMyArMSw4IEBACisyMDEyLTA3LTE0ICBEbWl0cnkgR3V0b3YgIDxk Z3V0b3ZAeWFuZGV4LnJ1PgorCisJKiBwcm9nbW9kZXMvcnVieS1tb2RlLmVsIChydWJ5LXBh cnNlLXBhcnRpYWwpOiBObyBlcnJvciB3aGVuIGVuZAorCXVwIGluc2lkZSBzdHJpbmcgc3lt Ym9sIGxpdGVyYWwuCisKIDIwMTItMDctMTIgIEVsaSBaYXJldHNraWkgIDxlbGl6QGdudS5v cmc+CiAKIAkqIGVtYWNzLWxpc3AvYnl0ZWNvbXAuZWwgKGJ5dGUtcmVjb21waWxlLWRpcmVj dG9yeSk6IFVzZSBjbC1pbmNmLApkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvcnVieS1t b2RlLmVsIGIvbGlzcC9wcm9nbW9kZXMvcnVieS1tb2RlLmVsCmluZGV4IDE1YzgyNDYuLmE5 NDc0NDIgMTAwNjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL3J1YnktbW9kZS5lbAorKysgYi9s aXNwL3Byb2dtb2Rlcy9ydWJ5LW1vZGUuZWwKQEAgLTU5NCw3ICs1OTQsNyBAQCBhbmQgYFxc JyB3aGVuIHByZWNlZGVkIGJ5IGA/Jy4iCiAgICAgICAgIChnb3RvLWNoYXIgcG50KSkKICAg ICAgICAoKGxvb2tpbmctYXQgIjpcXChbJ1wiXVxcKSIpCiAgICAgICAgIChnb3RvLWNoYXIg KG1hdGNoLWJlZ2lubmluZyAxKSkKLSAgICAgICAgKHJ1YnktZm9yd2FyZC1zdHJpbmcgKGJ1 ZmZlci1zdWJzdHJpbmcgKG1hdGNoLWJlZ2lubmluZyAxKSAobWF0Y2gtZW5kIDEpKSBlbmQp KQorICAgICAgICAocnVieS1mb3J3YXJkLXN0cmluZyAoYnVmZmVyLXN1YnN0cmluZyAobWF0 Y2gtYmVnaW5uaW5nIDEpIChtYXRjaC1lbmQgMSkpIGVuZCB0KSkKICAgICAgICAoKGxvb2tp bmctYXQgIjpcXChbLSwuKyovJSZ8Xn48Pl09P1xcfD09PT9cXHw8PT5cXHwhW349XT9cXCki KQogICAgICAgICAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpKQogICAgICAgICgobG9va2lu Zy1hdCAiOlxcKFthLXpBLVpfXVthLXpBLVpfMC05XSpbIT89XT9cXCk/IikKZGlmZiAtLWdp dCBhL3Rlc3QvQ2hhbmdlTG9nIGIvdGVzdC9DaGFuZ2VMb2cKaW5kZXggNDg5Mjk4ZC4uZjg3 NmMwOCAxMDA2NDQKLS0tIGEvdGVzdC9DaGFuZ2VMb2cKKysrIGIvdGVzdC9DaGFuZ2VMb2cK QEAgLTEsMyArMSw3IEBACisyMDEyLTA3LTE0ICBEbWl0cnkgR3V0b3YgIDxkZ3V0b3ZAeWFu ZGV4LnJ1PgorCisJKiBhdXRvbWF0ZWQvcnVieS1tb2RlLXRlc3RzLmVsOiBOZXcgZmlsZSB3 aXRoIG9uZSB0ZXN0LgorCiAyMDEyLTA3LTExICBTdGVmYW4gTW9ubmllciAgPG1vbm5pZXJA aXJvLnVtb250cmVhbC5jYT4KIAogCSogZXNoZWxsLmVsOiBVc2UgY2wtbGliLgpkaWZmIC0t Z2l0IGEvdGVzdC9hdXRvbWF0ZWQvcnVieS1tb2RlLXRlc3RzLmVsIGIvdGVzdC9hdXRvbWF0 ZWQvcnVieS1tb2RlLXRlc3RzLmVsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjI1MzVmMzYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0L2F1dG9tYXRlZC9ydWJ5LW1v ZGUtdGVzdHMuZWwKQEAgLTAsMCArMSwzNyBAQAorOzs7IHJ1YnktbW9kZS10ZXN0cy5lbCAt LS0gVGVzdCBzdWl0ZSBmb3IgcnVieS1tb2RlDQorDQorOzsgVGhpcyBmaWxlIGlzIHBhcnQg b2YgR05VIEVtYWNzLg0KKw0KKzs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQorOzsgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkN Cis7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcg0KKzs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uDQorDQorOzsgR05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsDQorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCis7OyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQorOzsgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCisNCis7OyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQ0KKzs7IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KKw0KKzs7OyBDb21tZW50YXJ5Og0KKw0KKzs7 OyBDb2RlOg0KKw0KKyhyZXF1aXJlICdydWJ5LW1vZGUpDQorDQorKGVydC1kZWZ0ZXN0IGlu ZGVudC1saW5lLWFmdGVyLXN5bWJvbC1tYWRlLWZyb20tc3RyaW5nLWludGVycG9sYXRpb24g KCkNCisgICJJdCBjYW4gaW5kZW50IHRoZSBsaW5lIGFmdGVyIHN5bWJvbCBtYWRlIHVzaW5n IHN0cmluZyBpbnRlcnBvbGF0aW9uLiINCisgIChsZXQgKChpbml0aWFsLWNvbnRlbnQgImRl ZiBmb28oc3VmZml4KVxuICA6XCJiYXIje3N1ZmZpeH1cIlxuIikNCisgICAgICAgIChleHBl Y3RlZC1jb250ZW50ICJkZWYgZm9vKHN1ZmZpeClcbiAgOlwiYmFyI3tzdWZmaXh9XCJcbiAg IikpDQorICAgICh3aXRoLXRlbXAtYnVmZmVyDQorICAgICAgKGluc2VydCBpbml0aWFsLWNv bnRlbnQpDQorICAgICAgKHJ1YnktaW5kZW50LWxpbmUpIDsgRG9lc24ndCByZWx5IG9uIHRl eHQgcHJvcGVydGllcyBvciB0aGUgc3ludGF4IHRhYmxlLg0KKyAgICAgIChsZXQgKChidWZm ZXItY29udGVudCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChwb2ludC1taW4p DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHBvaW50LW1heCkpKSkNCisgICAgICAgIChzaG91bGQgKHN0cmluZz0gYnVm ZmVyLWNvbnRlbnQgZXhwZWN0ZWQtY29udGVudCkpKSkpKQ0KKw0KKyhwcm92aWRlICdydWJ5 LW1vZGUtdGVzdHMpDQorDQorOzs7IHJ1YnktbW9kZS10ZXN0cy5lbCBlbmRzIGhlcmUNCg== --------------040608070009030102010102-- From unknown Fri Jun 20 19:56:14 2025 X-Loop: help-debbugs@gnu.org Subject: bug#11923: 24.1.50; (Contains ERT test) ruby-indent-line doesn't indent line after symbol creation using string interpolation Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 19 Jul 2012 12:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 11923 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dmitry Gutov Cc: rolando_pereira@sapo.pt, 11923@debbugs.gnu.org Received: via spool by 11923-submit@debbugs.gnu.org id=B11923.13427001516827 (code B ref 11923); Thu, 19 Jul 2012 12:16:01 +0000 Received: (at 11923) by debbugs.gnu.org; 19 Jul 2012 12:15:51 +0000 Received: from localhost ([127.0.0.1]:49699 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Srpe3-0001m4-GB for submit@debbugs.gnu.org; Thu, 19 Jul 2012 08:15:51 -0400 Received: from pruche.dit.umontreal.ca ([132.204.246.22]:36598) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Srpe1-0001lx-DR for 11923@debbugs.gnu.org; Thu, 19 Jul 2012 08:15:50 -0400 Received: from fmsmemgm.homelinux.net (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id q6JC9Z9a014221; Thu, 19 Jul 2012 08:09:36 -0400 Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id 41F72AECFD; Thu, 19 Jul 2012 08:09:35 -0400 (EDT) From: Stefan Monnier Message-ID: References: <87liip3uah.fsf@sapo.pt> <5001D4FC.6000706@yandex.ru> Date: Thu, 19 Jul 2012 08:09:35 -0400 In-Reply-To: <5001D4FC.6000706@yandex.ru> (Dmitry Gutov's message of "Sun, 15 Jul 2012 00:22:20 +0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Level: * X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 1.2 X-NAI-Spam-Rules: 3 Rules triggered LNG_SB_1=1, GEN_SPAM_FEATRE=0.2, RV4283=0 X-NAI-Spam-Version: 2.2.0.9309 : core <4283> : streams <787167> : uri <1169286> X-Spam-Score: -3.5 (---) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) > Here's a patch, including the slightly rewritten test case. Feel free to install it and close the bug. Thank you, Stefan From unknown Fri Jun 20 19:56:14 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.428 (Entity 5.428) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Rolando Pereira Subject: bug#11923: closed (Re: bug#11923: 24.1.50; (Contains ERT test) ruby-indent-line doesn't indent line after symbol creation using string interpolation) Message-ID: References: <87liip3uah.fsf@sapo.pt> X-Gnu-PR-Message: they-closed 11923 X-Gnu-PR-Package: emacs Reply-To: 11923@debbugs.gnu.org Date: Fri, 20 Jul 2012 12:00:03 +0000 Content-Type: multipart/mixed; boundary="----------=_1342785603-15070-1" This is a multi-part message in MIME format... ------------=_1342785603-15070-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #11923: 24.1.50; (Contains ERT test) ruby-indent-line doesn't indent line a= fter symbol creation using string interpolation which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 11923@debbugs.gnu.org. --=20 11923: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D11923 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1342785603-15070-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 11923-done) by debbugs.gnu.org; 20 Jul 2012 11:59:26 +0000 Received: from localhost ([127.0.0.1]:51997 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsBrh-0003u2-O3 for submit@debbugs.gnu.org; Fri, 20 Jul 2012 07:59:26 -0400 Received: from pruche.dit.umontreal.ca ([132.204.246.22]:40002) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsBrg-0003tv-2O for 11923-done@debbugs.gnu.org; Fri, 20 Jul 2012 07:59:24 -0400 Received: from fmsmemgm.homelinux.net (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id q6KBr5Nm021489; Fri, 20 Jul 2012 07:53:06 -0400 Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id A5BCEAECB8; Fri, 20 Jul 2012 07:53:04 -0400 (EDT) From: Stefan Monnier To: Dmitry Gutov Subject: Re: bug#11923: 24.1.50; (Contains ERT test) ruby-indent-line doesn't indent line after symbol creation using string interpolation Message-ID: References: <87liip3uah.fsf@sapo.pt> <5001D4FC.6000706@yandex.ru> <500894B1.8010608@yandex.ru> Date: Fri, 20 Jul 2012 07:53:04 -0400 In-Reply-To: <500894B1.8010608@yandex.ru> (Dmitry Gutov's message of "Fri, 20 Jul 2012 03:13:53 +0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Level: ** X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 2 X-NAI-Spam-Rules: 3 Rules triggered LNG_SB_1=1, NUMBER_22_28=1, RV4284=0 X-NAI-Spam-Version: 2.2.0.9309 : core <4284> : streams <787664> : uri <1170202> X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 11923-done Cc: 11923-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) >>> Here's a patch, including the slightly rewritten test case. >> Feel free to install it and close the bug. > I don't think I have commit access. > For one, I've only registered at Savannah today. Duh, I confused you with "Dmitry Antipov ". This is embarrassing. I'm very sorry for this. Installed, and thank you, Stefan ------------=_1342785603-15070-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 12 Jul 2012 16:02:42 +0000 Received: from localhost ([127.0.0.1]:36227 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SpLqi-0006c6-FU for submit@debbugs.gnu.org; Thu, 12 Jul 2012 12:02:41 -0400 Received: from eggs.gnu.org ([208.118.235.92]:48566) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SpKra-0005CT-MO for submit@debbugs.gnu.org; Thu, 12 Jul 2012 10:59:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SpKm6-0005pE-8e for submit@debbugs.gnu.org; Thu, 12 Jul 2012 10:53:58 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:35278) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SpKm6-0005pA-57 for submit@debbugs.gnu.org; Thu, 12 Jul 2012 10:53:50 -0400 Received: from eggs.gnu.org ([208.118.235.92]:54838) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SpKly-0005Pz-Pi for bug-gnu-emacs@gnu.org; Thu, 12 Jul 2012 10:53:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SpKlt-0005mg-KW for bug-gnu-emacs@gnu.org; Thu, 12 Jul 2012 10:53:42 -0400 Received: from relay4.ptmail.sapo.pt ([212.55.154.24]:60145 helo=sapo.pt) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1SpKlt-0005lj-08 for bug-gnu-emacs@gnu.org; Thu, 12 Jul 2012 10:53:37 -0400 Received: (qmail 22518 invoked from network); 12 Jul 2012 14:53:33 -0000 Received: from unknown (HELO sapo.pt) (10.134.37.164) by relay4 with SMTP; 12 Jul 2012 14:53:33 -0000 Received: (qmail 21606 invoked from network); 12 Jul 2012 14:53:33 -0000 Received: from unknown (HELO rolando-desktop) (finalyugi@sapo.pt@[178.166.117.32]) (envelope-sender ) by mta14 (qmail-ptmail-1.0.0) with AES128-SHA encrypted SMTP for ; 12 Jul 2012 14:53:29 -0000 From: Rolando Pereira To: bug-gnu-emacs@gnu.org Subject: 24.1.50; (Contains ERT test) ruby-indent-line doesn't indent line after symbol creation using string interpolation Date: Thu, 12 Jul 2012 15:53:26 +0100 Message-ID: <87liip3uah.fsf@sapo.pt> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4-2.6 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.17 X-Spam-Score: -6.1 (------) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Thu, 12 Jul 2012 12:02:37 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.1 (------) When writing ruby code, if you type something like :"foo#{variable_name}" emacs can no longer indent lines following it because it gives the following error: ruby-forward-string: Search failed: "[^\\]\\(\\\\\\\\\\)*[\"]" However, ruby-mode has no problem indenting lines that only contain :"foo" (ie. without the string interpolation). Here's an ERT that shows the problem. In it, I don't activate ruby-mode because `ruby-indent-line' can be called after the call to (require 'ruby-mode) and I believe it makes the test simpler (eg. no need to worry about stuff in ruby-mode-hook): (ert-deftest indent-line-after-symbol-made-from-string-interpolation () "Ensure that `ruby-mode' can indent lines after seeing a symbol made using string interpolation The syntax for creating a symbol using string interpolation is the following: :\"bar#{variable_name}\" For example, if `variable_name' is the number 10, then this creates the symbol :bar10 and if `variable_name' is the string \"bar\", then this creates the symbol :barbar." (let ((initial-content "def foo(suffix) :\"bar#{suffix}\" ") (expected-content "def foo(suffix) :\"bar#{suffix}\" ")) (require 'ruby-mode) (with-temp-buffer ;; No need to call `ruby-mode', since `ruby-indent-line' can be ;; used after the (require 'ruby-mode) ;(ruby-mode) (insert initial-content) (ruby-indent-line) (let ((buffer-content (buffer-substring-no-properties (point-min) (point-max)))) (ert-should (string= buffer-content expected-content)))))) To experience the problem from emacs -Q you can do the following steps (which are similar to the steps that the ERT test performs): 1. Open emacs -Q 2. Require 'ruby-mode with M-: (require 'ruby-mode) 2. Create a "ruby-temp" buffer with C-x b ruby-temp RET 3. Write the following: "def foo(suffix) :"bar#{suffix}" " <-- cursor is here 4. Call M-x ruby-indent-line The final result should be: "def foo(suffix) :"bar#{suffix} " <-- cursor is here But ruby-indent-line crashes instead with the following error: ruby-forward-string: Search failed: "[^\\]\\(\\\\\\\\\\)*[\"]" In GNU Emacs 24.1.50.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1) of 2012-06-17 on rolando-desktop Bzr revision: 108644 rudalics@gmx.at-20120617104350-tpcax4jzuiamvw9r Windowing system distributor `The X.Org Foundation', version 11.0.10706000 Important settings: value of $LANG: pt_PT.utf8 locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: M-x r u b y - i n d e n t - l i n e C-x b * n m e m e s M e s s C-x b * s c r C-y - i n t e r p o l a t i o n u s i n g SPC s t r i n g SPC i n r t e t e r p o l a t i o n u s i n g SPC s t r i n g SPC i n t e r p o l a t i o n SPC i s M-d M-d M-d M-d M-x r e p o r t - e m Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. byte-code: End of buffer ruby-forward-string: Search failed: #("[^\\]\\(\\\\\\\\\\)*[\"]" 14 15 (face font-lock-string-face fontified t)) Mark set Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils ruby-mode time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) ------------=_1342785603-15070-1--