GNU bug report logs - #20026
[PATCH] 24.4; regexp parse miss in ruby-mode

Previous Next

Package: emacs;

Reported by: Nobuyoshi Nakada <nobu <at> ruby-lang.org>

Date: Sat, 7 Mar 2015 01:39:02 UTC

Severity: normal

Tags: patch

Fixed in versions 25.1, 24.5

Done: Dmitry Gutov <dgutov <at> yandex.ru>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#20026: closed ([PATCH] 24.4; regexp parse miss in ruby-mode)
Date: Sun, 08 Mar 2015 19:01:03 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sun, 08 Mar 2015 21:00:22 +0200
with message-id <54FC9C46.6030408 <at> yandex.ru>
and subject line Re: bug#20026: [PATCH] 24.4; regexp parse miss in ruby-mode
has caused the debbugs.gnu.org bug report #20026,
regarding [PATCH] 24.4; regexp parse miss in ruby-mode
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
20026: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20026
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Nobuyoshi Nakada <nobu <at> ruby-lang.org>
To: bug-gnu-emacs <at> gnu.org
Subject: [PATCH] 24.4; regexp parse miss in ruby-mode
Date: Sat, 07 Mar 2015 10:35:36 +0900
ruby-mode misses a regexp just after an open brace ('{') or a vertical
bar ('|').  As the result, `forward-sexp` and regexp highlighting do not
work expectedly (or as a ruby interpreter interprets).

ex.

  tap { /'/ }

This "/'/" should be parsed as an regexp matches a single quote, but the
first operator is parsed as a division operator and the succeeding
single quote is parsed as a beginning of a string.

Same for `{|x| /'/}`.


--- lisp/progmodes/ruby-mode.el	2014-07-06 05:02:55.000000000 +0900
+++ lisp/progmodes/ruby-mode.el	2015-03-06 21:09:46.000000000 +0900
@@ -1777,7 +1777,7 @@
   (defvar ruby-syntax-before-regexp-re
     (concat
      ;; Special tokens that can't be followed by a division operator.
-     "\\(^\\|[[=(,~;<>]"
+     "\\(^\\|[[{|=(,~;<>]"
      ;; Distinguish ternary operator tokens.
      ;; FIXME: They don't really have to be separated with spaces.
      "\\|[?:] "


In GNU Emacs 24.4.1 (x86_64-apple-darwin14.0.0, NS apple-appkit-1343.16)
 of 2014-12-24 on tenten-slave.macports.org
Windowing system distributor `Apple', version 10.3.1344
Configured using:
 `configure --prefix=/opt/local --with-ns --without-x --without-dbus
 CC=/usr/bin/clang 'CFLAGS=-pipe -Os -arch x86_64'
 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -arch
 x86_64' CPPFLAGS=-I/opt/local/include'

Important settings:
  locale-coding-system: utf-8-hfs

Major mode: Ruby


[Message part 3 (message/rfc822, inline)]
From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Nobuyoshi Nakada <nobu <at> ruby-lang.org>, 20026-done <at> debbugs.gnu.org
Subject: Re: bug#20026: [PATCH] 24.4; regexp parse miss in ruby-mode
Date: Sun, 08 Mar 2015 21:00:22 +0200
Version: 25.1

On 03/07/2015 03:35 AM, Nobuyoshi Nakada wrote:
> ruby-mode misses a regexp just after an open brace ('{') or a vertical
> bar ('|').  As the result, `forward-sexp` and regexp highlighting do not
> work expectedly (or as a ruby interpreter interprets).

Pushed to master. Thanks.


This bug report was last modified 10 years and 70 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.