From unknown Wed Jun 25 03:57:49 2025 X-Loop: help-debbugs@gnu.org Subject: bug#19285: 24.4; ruby-imenu-create-index-in-block gets confused by regular expression in source code Resent-From: Moritz Bunkus Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 05 Dec 2014 21:02:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 19285 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 19285@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.141781330430270 (code B ref -1); Fri, 05 Dec 2014 21:02:01 +0000 Received: (at submit) by debbugs.gnu.org; 5 Dec 2014 21:01:44 +0000 Received: from localhost ([127.0.0.1]:55006 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xx00U-0007s9-Sd for submit@debbugs.gnu.org; Fri, 05 Dec 2014 16:01:43 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38581) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xx00R-0007rz-Pf for submit@debbugs.gnu.org; Fri, 05 Dec 2014 16:01:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xx00M-0003An-Ar for submit@debbugs.gnu.org; Fri, 05 Dec 2014 16:01:39 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:45271) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xx00M-0003Aj-7f for submit@debbugs.gnu.org; Fri, 05 Dec 2014 16:01:34 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40294) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xx00H-0002J2-EA for bug-gnu-emacs@gnu.org; Fri, 05 Dec 2014 16:01:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xx00B-00039S-8W for bug-gnu-emacs@gnu.org; Fri, 05 Dec 2014 16:01:29 -0500 Received: from belgarath.bunkus.org ([176.9.1.148]:33107 helo=liselle.bunkus.org) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xx00A-000381-VL for bug-gnu-emacs@gnu.org; Fri, 05 Dec 2014 16:01:23 -0500 Received: from sweet-chili.local (unknown [10.55.4.6]) by liselle.bunkus.org (Postfix) with ESMTPS id 86544DC6305 for ; Fri, 5 Dec 2014 22:01:16 +0100 (CET) Received: by sweet-chili.local (Postfix, from userid 500) id B78ADDA11E2; Fri, 5 Dec 2014 22:01:15 +0100 (CET) From: Moritz Bunkus Date: Fri, 05 Dec 2014 22:01:15 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: clamav-milter 0.98.5 at liselle X-Virus-Status: Clean X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) Hey, If I have certain Ruby code inside my source file then ruby-imenu-create-index-in-block (which is `imenu-create-index-function' is set to in ruby-mode) then imenu only sees the definitions that occur before said regular expression. The smallest test case I've come up with is the following snippet: -------------------------------------------------- #!/usr/bin/ruby class TestMe def func1 if ! /class\s+.*?\s+<\s+Test/.match(content) true end end def func2 end end -------------------------------------------------- In this source file imenu only offers `TestMe#func1' and `TestMe' itself but not `TestMe#func2'. If I remove the content of `func` (or change the `if' clause to something simpler) then `imenu` does see `TestMe#func2' again. I've verified this with =C2=BBemacs -Q test_file.rb=C2=AB followed by M-x i= menu RET This is ruby-mode.el from Emacs itself: ;;; ruby-mode.el --- Major mode for editing Ruby files ;; Copyright (C) 1994-2014 Free Software Foundation, Inc. ;; Authors: Yukihiro Matsumoto ;; Nobuyoshi Nakada ;; URL: http://www.emacswiki.org/cgi-bin/wiki/RubyMode ;; Created: Fri Feb 4 14:49:13 JST 1994 ;; Keywords: languages ruby ;; Version: 1.2 How to reproduce: - Write the aforementioned snippet into a file. - emacs -Q thatfile.rb - Enable `ruby-mode' if it isn't enabled already, load `imenu' if it hasn't been loaded alread - M-x imenu RET - Observe described behavior In GNU Emacs 24.4.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.3) of 2014-10-21 on bitzer.hoetzel.info Configured using: `configure --prefix=3D/usr --sysconfdir=3D/etc --libexecdir=3D/usr/lib --localstatedir=3D/var --with-x-toolkit=3Dgtk3 --with-xft 'CFLAGS=3D-march=3Dx86-64 -mtune=3Dgeneric -O2 -pipe -fstack-protector-str= ong --param=3Dssp-buffer-size=3D4' CPPFLAGS=3D-D_FORTIFY_SOURCE=3D2 LDFLAGS=3D-Wl,-O1,--sort-common,--as-needed,-z,relro' Important settings: value of $LC_COLLATE: de_DE.UTF-8 value of $LC_CTYPE: de_DE.UTF-8 value of $LC_MONETARY: de_DE.UTF-8 value of $LC_NUMERIC: de_DE.UTF-8 value of $LC_TIME: de_DE.UTF-8 value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Ruby Minor modes in effect: flymake-mode: t hi-lock-mode: t ido-everywhere: t magit-auto-revert-mode: t shell-dirtrack-mode: t diff-auto-refine-mode: t global-edit-server-edit-mode: t which-function-mode: t global-hl-line-mode: t show-paren-mode: t winner-mode: t yas-global-mode: t yas-minor-mode: t tooltip-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: C-p C-p C-n C-k C-x C-s ESC i C-g C-k C-k C-x C-s ESC i C-g C-k C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-p C-p C-p C-k C-x C-s ESC i C-g C-_ C-_ C-n C-@ C-n C-n C-n C-n C-n C-n C-n C-n C-n C-w ESC p ESC RET C-k C-p C-p ESC RET t r u e C-x C-s ESC i C-g C-p ESC O D ESC O D C-d C-x C-s ESC i C-g SPC C-x C-s C-p ESC f ESC f ESC b ESC DEL ESC d ESC d ESC d f u n c 1 C-n C-n C-n C-n C-n C-n ESC DEL ESC d f u n c 1 C-x C-s DEL 2 C-x C-s ESC i C-a ESC x r e C-g C-g C-g ESC x r e p o r t - e m a c s RET r u b y - m o d e ' s SPC i n d DEL DEL DEL C-g C-h v r u b y - m a k e DEL DEL DEL DEL i m e n u C-g C-h v i m e n u - C-g C-h f r u b y C-@ i m e n u C-g ESC x ESC O A RET r u b y - i e DEL m e n ESC ' ESC b C-e SPC g e t s SPC c o n f u s e d SPC b y SPC r e g u l a r SPC e x p r e s s i o n SPC i n SPC s o u r c e SPC c o d e RET ESC O A ESC O A ESC x ESC O A RET Recent messages: Wrote /home/mosu/tmp/bla.rb Auto-saving...done Saving file /home/mosu/tmp/bla.rb... Wrote /home/mosu/tmp/bla.rb Saving file /home/mosu/tmp/bla.rb... Wrote /home/mosu/tmp/bla.rb completing-read-default: Command attempted to use minibuffer while in minib= uffer Quit [7 times] Scanning for dabbrevs...done Waiting for process to die...done Quit Load-path shadows: /home/mosu/.emacs.d/site-start.d/libs/paredit hides /home/mosu/.emacs.d/elp= a/paredit-20140128.1248/paredit /home/mosu/.emacs.d/site-start.d/libs/buff-menu hides /usr/share/emacs/24.4= /lisp/buff-menu /usr/share/emacs/site-lisp/flim/hex-util hides /usr/share/emacs/24.4/lisp/h= ex-util /usr/share/emacs/site-lisp/flim/md4 hides /usr/share/emacs/24.4/lisp/md4 /home/mosu/.emacs.d/site-start.d/libs/cc-langs hides /usr/share/emacs/24.4/= lisp/progmodes/cc-langs /home/mosu/.emacs.d/site-start.d/libs/cc-align hides /usr/share/emacs/24.4/= lisp/progmodes/cc-align /home/mosu/.emacs.d/site-start.d/libs/cc-defs hides /usr/share/emacs/24.4/l= isp/progmodes/cc-defs /home/mosu/.emacs.d/site-start.d/libs/cc-mode hides /usr/share/emacs/24.4/l= isp/progmodes/cc-mode /home/mosu/.emacs.d/site-start.d/libs/cc-fonts hides /usr/share/emacs/24.4/= lisp/progmodes/cc-fonts /home/mosu/.emacs.d/site-start.d/libs/cc-styles hides /usr/share/emacs/24.4= /lisp/progmodes/cc-styles /home/mosu/.emacs.d/site-start.d/libs/cc-vars hides /usr/share/emacs/24.4/l= isp/progmodes/cc-vars /home/mosu/.emacs.d/site-start.d/libs/cc-menus hides /usr/share/emacs/24.4/= lisp/progmodes/cc-menus /home/mosu/.emacs.d/site-start.d/libs/cc-cmds hides /usr/share/emacs/24.4/l= isp/progmodes/cc-cmds /home/mosu/.emacs.d/site-start.d/libs/cc-awk hides /usr/share/emacs/24.4/li= sp/progmodes/cc-awk /home/mosu/.emacs.d/elpa/flymake-0.4.16/flymake hides /usr/share/emacs/24.4= /lisp/progmodes/flymake /home/mosu/.emacs.d/site-start.d/libs/cc-compat hides /usr/share/emacs/24.4= /lisp/progmodes/cc-compat /home/mosu/.emacs.d/site-start.d/libs/cc-engine hides /usr/share/emacs/24.4= /lisp/progmodes/cc-engine /home/mosu/.emacs.d/site-start.d/libs/cfengine hides /usr/share/emacs/24.4/= lisp/progmodes/cfengine /home/mosu/.emacs.d/site-start.d/libs/cperl-mode/cperl-mode hides /usr/shar= e/emacs/24.4/lisp/progmodes/cperl-mode /home/mosu/.emacs.d/site-start.d/libs/cc-bytecomp hides /usr/share/emacs/24= .4/lisp/progmodes/cc-bytecomp /home/mosu/.emacs.d/site-start.d/libs/cc-guess hides /usr/share/emacs/24.4/= lisp/progmodes/cc-guess /usr/share/emacs/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.4/lis= p/net/sasl-digest /usr/share/emacs/site-lisp/flim/hmac-def hides /usr/share/emacs/24.4/lisp/n= et/hmac-def /usr/share/emacs/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.4/lisp/= net/sasl-cram /usr/share/emacs/site-lisp/flim/ntlm hides /usr/share/emacs/24.4/lisp/net/n= tlm /usr/share/emacs/site-lisp/flim/sasl hides /usr/share/emacs/24.4/lisp/net/s= asl /usr/share/emacs/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.4/lisp/n= et/hmac-md5 /usr/share/emacs/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.4/lisp/= net/sasl-ntlm /usr/share/emacs/site-lisp/semi/smime hides /usr/share/emacs/24.4/lisp/gnus= /smime /home/mosu/.emacs.d/site-start.d/libs/cl-lib hides /usr/share/emacs/24.4/li= sp/emacs-lisp/cl-lib /usr/share/emacs/site-lisp/semi/pgg-parse hides /usr/share/emacs/24.4/lisp/= obsolete/pgg-parse /usr/share/emacs/site-lisp/semi/pgg-pgp5 hides /usr/share/emacs/24.4/lisp/o= bsolete/pgg-pgp5 /usr/share/emacs/site-lisp/semi/pgg-def hides /usr/share/emacs/24.4/lisp/ob= solete/pgg-def /usr/share/emacs/site-lisp/semi/pgg-gpg hides /usr/share/emacs/24.4/lisp/ob= solete/pgg-gpg /usr/share/emacs/site-lisp/semi/pgg hides /usr/share/emacs/24.4/lisp/obsole= te/pgg /usr/share/emacs/site-lisp/semi/pgg-pgp hides /usr/share/emacs/24.4/lisp/ob= solete/pgg-pgp Features: (shadow mail-extr emacsbug autoconf autoconf-mode m4-mode flymake ruby-mode novice eieio-opt speedbar sb-image ezimage dframe find-func ack-and-a-half smerge-mode dabbrev vc-git hi-lock hideshow cc-subword cc-mode cc-fonts cc-awk cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-langs cc-vars cc-defs cc-bytecomp tabify jka-compr dns-mode bookmark pp rect sort tramp-cmds tramp-sh conf-mode tramp-cache footnote flyspell ispell sh-script smie executable misearch multi-isearch xterm f s paredit two-column 70-perl cperl-mode etags man 70-ido ido magit-blame dired-x dired-sort-map dired-single dired magit-key-mode magit view tramp tramp-compat auth-source gnus-util password-cache tramp-loaddefs trampver shell pcomplete grep compile comint epa epg diff-mode autorevert filenotify ansi-color git-rebase-mode thingatpt git-commit-mode server log-edit message idna sendmail format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log solarized-light-theme solarized-definitions 70-html-xml rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok saveplace buff-menu+ buff-menu edit-server 70-helpers which-func imenu dash-functional dash browse-kill-ring hl-line time-date paren 70-text 70-tabs filladapt winner ring 01-version-test my-site-start yasnippet advice help-fns derived easy-mmode edmacro kmacro help-mode ack-and-a-half-autoloads ag-autoloads clojure-test-mode-autoloads cider-autoloads dash-functional-autoloads elixir-mode-autoloads expand-region-autoloads f-autoloads dash-autoloads flymake-autoloads flymake-yaml-autoloads flymake-easy-autoloads gist-autoloads finder-inf gh-autoloads eieio byte-opt bytecomp byte-compile cconv eieio-core logito-autoloads info easymenu magit-autoloads git-rebase-mode-autoloads git-commit-mode-autoloads markdown-mode-autoloads nrepl-autoloads clojure-mode-autoloads paredit-autoloads pcache-autoloads pkg-info-autoloads epl-autoloads s-autoloads tracwiki-mode-autoloads xml-rpc-autoloads yaml-mode-autoloads package epg-config cl-macs cl gv cl-loaddefs cl-lib tooltip electric uniquify 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 prog-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 nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind gfilenotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) Memory information: ((conses 16 560044 79106) (symbols 48 40437 18) (miscs 40 6094 4560) (strings 32 90842 16542) (string-bytes 1 2716159) (vectors 16 46859) (vector-slots 8 1778267 27228) (floats 8 1723 1962) (intervals 56 19763 781) (buffers 960 113) (heap 1024 41786 3167)) From unknown Wed Jun 25 03:57:49 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Moritz Bunkus Subject: bug#19285: closed (Re: bug#19285: 24.4; ruby-imenu-create-index-in-block gets confused by regular expression in source code) Message-ID: References: <86fv9eakkw.fsf@yandex.ru> X-Gnu-PR-Message: they-closed 19285 X-Gnu-PR-Package: emacs Reply-To: 19285@debbugs.gnu.org Date: Mon, 09 Mar 2015 03:59:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1425873542-10679-1" This is a multi-part message in MIME format... ------------=_1425873542-10679-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #19285: 24.4; ruby-imenu-create-index-in-block gets confused by regular exp= ression in source code 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 19285@debbugs.gnu.org. --=20 19285: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D19285 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1425873542-10679-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 19285-done) by debbugs.gnu.org; 9 Mar 2015 03:58:19 +0000 Received: from localhost ([127.0.0.1]:39963 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YUopf-0002lB-C7 for submit@debbugs.gnu.org; Sun, 08 Mar 2015 23:58:19 -0400 Received: from mail-wi0-f174.google.com ([209.85.212.174]:34940) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YUopd-0002ku-NQ for 19285-done@debbugs.gnu.org; Sun, 08 Mar 2015 23:58:18 -0400 Received: by wibbs8 with SMTP id bs8so16800262wib.0 for <19285-done@debbugs.gnu.org>; Sun, 08 Mar 2015 20:58:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=147hzdl1moX1xY9DS9CVz8ibeX6+nrwcC16LS4tCWDY=; b=I3gbrdDoNCEXcKOdalExsrvvPFkxzFuJXLA3qgF3tDxnVVK7WC0y+2Cf/CejOLuFWr DqBBWqo0/mezZZ7OCtW3B2Em6CnGtPBvMEY8gGq/i6wJOldWTmQQvhoAc4eBwZOHncu1 CY8fDP3ZPtynYUD7cWoUyUOdbqGzhArK6wEM9q7vzaq0NIFRoC9pw2+z4NEH0/KHk/eE p/cPjoVDMm4w3Go3Qv7rPqPU66Z0jEwoJyEqfJ9MRkjwb45czbO1Jn/21jIJbBd0NjB4 8ket1H7nGTcJ86F1Ri9s0F6oLRlW31wbMLFTbzUbI4KJ/WFU2dB/Q90sPVQ6sprkeFfj 8BbA== X-Received: by 10.194.81.1 with SMTP id v1mr51759994wjx.50.1425873492092; Sun, 08 Mar 2015 20:58:12 -0700 (PDT) Received: from axl ([82.102.93.54]) by mx.google.com with ESMTPSA id ev7sm26364828wjb.47.2015.03.08.20.58.11 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 08 Mar 2015 20:58:11 -0700 (PDT) From: Dmitry Gutov To: Moritz Bunkus Subject: Re: bug#19285: 24.4; ruby-imenu-create-index-in-block gets confused by regular expression in source code References: Date: Mon, 09 Mar 2015 05:58:07 +0200 In-Reply-To: (Moritz Bunkus's message of "Fri, 05 Dec 2014 22:01:15 +0100") Message-ID: <86fv9eakkw.fsf@yandex.ru> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 19285-done Cc: 19285-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Version: 25.1 Moritz Bunkus writes: > If I have certain Ruby code inside my source file then > ruby-imenu-create-index-in-block (which is `imenu-create-index-function' > is set to in ruby-mode) then imenu only sees the definitions that occur > before said regular expression. The problem was rather with detection of regexps after `!' (you could see it was not highlighted). Should be fixed in master now, thanks for the report. ------------=_1425873542-10679-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 5 Dec 2014 21:01:44 +0000 Received: from localhost ([127.0.0.1]:55006 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xx00U-0007s9-Sd for submit@debbugs.gnu.org; Fri, 05 Dec 2014 16:01:43 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38581) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xx00R-0007rz-Pf for submit@debbugs.gnu.org; Fri, 05 Dec 2014 16:01:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xx00M-0003An-Ar for submit@debbugs.gnu.org; Fri, 05 Dec 2014 16:01:39 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:45271) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xx00M-0003Aj-7f for submit@debbugs.gnu.org; Fri, 05 Dec 2014 16:01:34 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40294) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xx00H-0002J2-EA for bug-gnu-emacs@gnu.org; Fri, 05 Dec 2014 16:01:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xx00B-00039S-8W for bug-gnu-emacs@gnu.org; Fri, 05 Dec 2014 16:01:29 -0500 Received: from belgarath.bunkus.org ([176.9.1.148]:33107 helo=liselle.bunkus.org) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xx00A-000381-VL for bug-gnu-emacs@gnu.org; Fri, 05 Dec 2014 16:01:23 -0500 Received: from sweet-chili.local (unknown [10.55.4.6]) by liselle.bunkus.org (Postfix) with ESMTPS id 86544DC6305 for ; Fri, 5 Dec 2014 22:01:16 +0100 (CET) Received: by sweet-chili.local (Postfix, from userid 500) id B78ADDA11E2; Fri, 5 Dec 2014 22:01:15 +0100 (CET) From: Moritz Bunkus To: bug-gnu-emacs@gnu.org Subject: 24.4; ruby-imenu-create-index-in-block gets confused by regular expression in source code Date: Fri, 05 Dec 2014 22:01:15 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: clamav-milter 0.98.5 at liselle X-Virus-Status: Clean X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) Hey, If I have certain Ruby code inside my source file then ruby-imenu-create-index-in-block (which is `imenu-create-index-function' is set to in ruby-mode) then imenu only sees the definitions that occur before said regular expression. The smallest test case I've come up with is the following snippet: -------------------------------------------------- #!/usr/bin/ruby class TestMe def func1 if ! /class\s+.*?\s+<\s+Test/.match(content) true end end def func2 end end -------------------------------------------------- In this source file imenu only offers `TestMe#func1' and `TestMe' itself but not `TestMe#func2'. If I remove the content of `func` (or change the `if' clause to something simpler) then `imenu` does see `TestMe#func2' again. I've verified this with =C2=BBemacs -Q test_file.rb=C2=AB followed by M-x i= menu RET This is ruby-mode.el from Emacs itself: ;;; ruby-mode.el --- Major mode for editing Ruby files ;; Copyright (C) 1994-2014 Free Software Foundation, Inc. ;; Authors: Yukihiro Matsumoto ;; Nobuyoshi Nakada ;; URL: http://www.emacswiki.org/cgi-bin/wiki/RubyMode ;; Created: Fri Feb 4 14:49:13 JST 1994 ;; Keywords: languages ruby ;; Version: 1.2 How to reproduce: - Write the aforementioned snippet into a file. - emacs -Q thatfile.rb - Enable `ruby-mode' if it isn't enabled already, load `imenu' if it hasn't been loaded alread - M-x imenu RET - Observe described behavior In GNU Emacs 24.4.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.3) of 2014-10-21 on bitzer.hoetzel.info Configured using: `configure --prefix=3D/usr --sysconfdir=3D/etc --libexecdir=3D/usr/lib --localstatedir=3D/var --with-x-toolkit=3Dgtk3 --with-xft 'CFLAGS=3D-march=3Dx86-64 -mtune=3Dgeneric -O2 -pipe -fstack-protector-str= ong --param=3Dssp-buffer-size=3D4' CPPFLAGS=3D-D_FORTIFY_SOURCE=3D2 LDFLAGS=3D-Wl,-O1,--sort-common,--as-needed,-z,relro' Important settings: value of $LC_COLLATE: de_DE.UTF-8 value of $LC_CTYPE: de_DE.UTF-8 value of $LC_MONETARY: de_DE.UTF-8 value of $LC_NUMERIC: de_DE.UTF-8 value of $LC_TIME: de_DE.UTF-8 value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Ruby Minor modes in effect: flymake-mode: t hi-lock-mode: t ido-everywhere: t magit-auto-revert-mode: t shell-dirtrack-mode: t diff-auto-refine-mode: t global-edit-server-edit-mode: t which-function-mode: t global-hl-line-mode: t show-paren-mode: t winner-mode: t yas-global-mode: t yas-minor-mode: t tooltip-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: C-p C-p C-n C-k C-x C-s ESC i C-g C-k C-k C-x C-s ESC i C-g C-k C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-p C-p C-p C-k C-x C-s ESC i C-g C-_ C-_ C-n C-@ C-n C-n C-n C-n C-n C-n C-n C-n C-n C-w ESC p ESC RET C-k C-p C-p ESC RET t r u e C-x C-s ESC i C-g C-p ESC O D ESC O D C-d C-x C-s ESC i C-g SPC C-x C-s C-p ESC f ESC f ESC b ESC DEL ESC d ESC d ESC d f u n c 1 C-n C-n C-n C-n C-n C-n ESC DEL ESC d f u n c 1 C-x C-s DEL 2 C-x C-s ESC i C-a ESC x r e C-g C-g C-g ESC x r e p o r t - e m a c s RET r u b y - m o d e ' s SPC i n d DEL DEL DEL C-g C-h v r u b y - m a k e DEL DEL DEL DEL i m e n u C-g C-h v i m e n u - C-g C-h f r u b y C-@ i m e n u C-g ESC x ESC O A RET r u b y - i e DEL m e n ESC ' ESC b C-e SPC g e t s SPC c o n f u s e d SPC b y SPC r e g u l a r SPC e x p r e s s i o n SPC i n SPC s o u r c e SPC c o d e RET ESC O A ESC O A ESC x ESC O A RET Recent messages: Wrote /home/mosu/tmp/bla.rb Auto-saving...done Saving file /home/mosu/tmp/bla.rb... Wrote /home/mosu/tmp/bla.rb Saving file /home/mosu/tmp/bla.rb... Wrote /home/mosu/tmp/bla.rb completing-read-default: Command attempted to use minibuffer while in minib= uffer Quit [7 times] Scanning for dabbrevs...done Waiting for process to die...done Quit Load-path shadows: /home/mosu/.emacs.d/site-start.d/libs/paredit hides /home/mosu/.emacs.d/elp= a/paredit-20140128.1248/paredit /home/mosu/.emacs.d/site-start.d/libs/buff-menu hides /usr/share/emacs/24.4= /lisp/buff-menu /usr/share/emacs/site-lisp/flim/hex-util hides /usr/share/emacs/24.4/lisp/h= ex-util /usr/share/emacs/site-lisp/flim/md4 hides /usr/share/emacs/24.4/lisp/md4 /home/mosu/.emacs.d/site-start.d/libs/cc-langs hides /usr/share/emacs/24.4/= lisp/progmodes/cc-langs /home/mosu/.emacs.d/site-start.d/libs/cc-align hides /usr/share/emacs/24.4/= lisp/progmodes/cc-align /home/mosu/.emacs.d/site-start.d/libs/cc-defs hides /usr/share/emacs/24.4/l= isp/progmodes/cc-defs /home/mosu/.emacs.d/site-start.d/libs/cc-mode hides /usr/share/emacs/24.4/l= isp/progmodes/cc-mode /home/mosu/.emacs.d/site-start.d/libs/cc-fonts hides /usr/share/emacs/24.4/= lisp/progmodes/cc-fonts /home/mosu/.emacs.d/site-start.d/libs/cc-styles hides /usr/share/emacs/24.4= /lisp/progmodes/cc-styles /home/mosu/.emacs.d/site-start.d/libs/cc-vars hides /usr/share/emacs/24.4/l= isp/progmodes/cc-vars /home/mosu/.emacs.d/site-start.d/libs/cc-menus hides /usr/share/emacs/24.4/= lisp/progmodes/cc-menus /home/mosu/.emacs.d/site-start.d/libs/cc-cmds hides /usr/share/emacs/24.4/l= isp/progmodes/cc-cmds /home/mosu/.emacs.d/site-start.d/libs/cc-awk hides /usr/share/emacs/24.4/li= sp/progmodes/cc-awk /home/mosu/.emacs.d/elpa/flymake-0.4.16/flymake hides /usr/share/emacs/24.4= /lisp/progmodes/flymake /home/mosu/.emacs.d/site-start.d/libs/cc-compat hides /usr/share/emacs/24.4= /lisp/progmodes/cc-compat /home/mosu/.emacs.d/site-start.d/libs/cc-engine hides /usr/share/emacs/24.4= /lisp/progmodes/cc-engine /home/mosu/.emacs.d/site-start.d/libs/cfengine hides /usr/share/emacs/24.4/= lisp/progmodes/cfengine /home/mosu/.emacs.d/site-start.d/libs/cperl-mode/cperl-mode hides /usr/shar= e/emacs/24.4/lisp/progmodes/cperl-mode /home/mosu/.emacs.d/site-start.d/libs/cc-bytecomp hides /usr/share/emacs/24= .4/lisp/progmodes/cc-bytecomp /home/mosu/.emacs.d/site-start.d/libs/cc-guess hides /usr/share/emacs/24.4/= lisp/progmodes/cc-guess /usr/share/emacs/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.4/lis= p/net/sasl-digest /usr/share/emacs/site-lisp/flim/hmac-def hides /usr/share/emacs/24.4/lisp/n= et/hmac-def /usr/share/emacs/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.4/lisp/= net/sasl-cram /usr/share/emacs/site-lisp/flim/ntlm hides /usr/share/emacs/24.4/lisp/net/n= tlm /usr/share/emacs/site-lisp/flim/sasl hides /usr/share/emacs/24.4/lisp/net/s= asl /usr/share/emacs/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.4/lisp/n= et/hmac-md5 /usr/share/emacs/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.4/lisp/= net/sasl-ntlm /usr/share/emacs/site-lisp/semi/smime hides /usr/share/emacs/24.4/lisp/gnus= /smime /home/mosu/.emacs.d/site-start.d/libs/cl-lib hides /usr/share/emacs/24.4/li= sp/emacs-lisp/cl-lib /usr/share/emacs/site-lisp/semi/pgg-parse hides /usr/share/emacs/24.4/lisp/= obsolete/pgg-parse /usr/share/emacs/site-lisp/semi/pgg-pgp5 hides /usr/share/emacs/24.4/lisp/o= bsolete/pgg-pgp5 /usr/share/emacs/site-lisp/semi/pgg-def hides /usr/share/emacs/24.4/lisp/ob= solete/pgg-def /usr/share/emacs/site-lisp/semi/pgg-gpg hides /usr/share/emacs/24.4/lisp/ob= solete/pgg-gpg /usr/share/emacs/site-lisp/semi/pgg hides /usr/share/emacs/24.4/lisp/obsole= te/pgg /usr/share/emacs/site-lisp/semi/pgg-pgp hides /usr/share/emacs/24.4/lisp/ob= solete/pgg-pgp Features: (shadow mail-extr emacsbug autoconf autoconf-mode m4-mode flymake ruby-mode novice eieio-opt speedbar sb-image ezimage dframe find-func ack-and-a-half smerge-mode dabbrev vc-git hi-lock hideshow cc-subword cc-mode cc-fonts cc-awk cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-langs cc-vars cc-defs cc-bytecomp tabify jka-compr dns-mode bookmark pp rect sort tramp-cmds tramp-sh conf-mode tramp-cache footnote flyspell ispell sh-script smie executable misearch multi-isearch xterm f s paredit two-column 70-perl cperl-mode etags man 70-ido ido magit-blame dired-x dired-sort-map dired-single dired magit-key-mode magit view tramp tramp-compat auth-source gnus-util password-cache tramp-loaddefs trampver shell pcomplete grep compile comint epa epg diff-mode autorevert filenotify ansi-color git-rebase-mode thingatpt git-commit-mode server log-edit message idna sendmail format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log solarized-light-theme solarized-definitions 70-html-xml rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok saveplace buff-menu+ buff-menu edit-server 70-helpers which-func imenu dash-functional dash browse-kill-ring hl-line time-date paren 70-text 70-tabs filladapt winner ring 01-version-test my-site-start yasnippet advice help-fns derived easy-mmode edmacro kmacro help-mode ack-and-a-half-autoloads ag-autoloads clojure-test-mode-autoloads cider-autoloads dash-functional-autoloads elixir-mode-autoloads expand-region-autoloads f-autoloads dash-autoloads flymake-autoloads flymake-yaml-autoloads flymake-easy-autoloads gist-autoloads finder-inf gh-autoloads eieio byte-opt bytecomp byte-compile cconv eieio-core logito-autoloads info easymenu magit-autoloads git-rebase-mode-autoloads git-commit-mode-autoloads markdown-mode-autoloads nrepl-autoloads clojure-mode-autoloads paredit-autoloads pcache-autoloads pkg-info-autoloads epl-autoloads s-autoloads tracwiki-mode-autoloads xml-rpc-autoloads yaml-mode-autoloads package epg-config cl-macs cl gv cl-loaddefs cl-lib tooltip electric uniquify 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 prog-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 nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind gfilenotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) Memory information: ((conses 16 560044 79106) (symbols 48 40437 18) (miscs 40 6094 4560) (strings 32 90842 16542) (string-bytes 1 2716159) (vectors 16 46859) (vector-slots 8 1778267 27228) (floats 8 1723 1962) (intervals 56 19763 781) (buffers 960 113) (heap 1024 41786 3167)) ------------=_1425873542-10679-1-- From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 20 00:14:33 2015 Received: (at control) by debbugs.gnu.org; 20 Mar 2015 04:14:33 +0000 Received: from localhost ([127.0.0.1]:58693 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YYoKP-0006ft-58 for submit@debbugs.gnu.org; Fri, 20 Mar 2015 00:14:33 -0400 Received: from mail-wg0-f54.google.com ([74.125.82.54]:33960) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YYoKN-0006fg-MT for control@debbugs.gnu.org; Fri, 20 Mar 2015 00:14:32 -0400 Received: by wggv3 with SMTP id v3so79329552wgg.1 for ; Thu, 19 Mar 2015 21:14:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=v3h5n4dBgBxodMu2PAgOp6E9XyAxLBNjg6k+w+WO6tA=; b=sBTTzZFTenW6DB/CW4l1U+jsdKyHcOJFSdxg5+4Ju1s34SltcnCneAilxiQ5FWkMpI wqZtd9Mqq2iLMSvNo8cx9uZRxp5EQX+owERDVgy9L2tsFFbpavA2BwqtWOlRDX/5mxD7 QCUzNkMq370C9jUy1H+EAeJ6VXxPh9vKY4+8phi61oDdz1fyF5D5XfwTLRFxEn721anM o4k6Jzk0dOt4+m45qJH8qeQ5O2ONMLeh2a99kYdMpt33bFoCAZe0p3DKK0s2CmwydT1a o1wHrMN4IHwAsTykfQ0NTloIFGHKizFTuKLmkrSNAM8FfgwvNDx2x4r9MZdfAMaZoUAh 1iAA== X-Received: by 10.180.189.37 with SMTP id gf5mr21816513wic.86.1426824866052; Thu, 19 Mar 2015 21:14:26 -0700 (PDT) Received: from [192.168.1.3] ([82.102.93.54]) by mx.google.com with ESMTPSA id cf12sm4592654wjb.10.2015.03.19.21.14.25 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Mar 2015 21:14:25 -0700 (PDT) Message-ID: <550B9EA0.1030808@yandex.ru> Date: Fri, 20 Mar 2015 06:14:24 +0200 From: Dmitry Gutov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Thunderbird/36.0 MIME-Version: 1.0 To: control@debbugs.gnu.org Subject: Change fixed-version Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) close 19285 24.5 close 17733 24.5 close 20026 24.5 thanks From unknown Wed Jun 25 03:57:49 2025 X-Loop: help-debbugs@gnu.org Subject: bug#19285: Backported References: In-Reply-To: Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 20 Mar 2015 04:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19285 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 19285@debbugs.gnu.org, 17733@debbugs.gnu.org, 20026@debbugs.gnu.org Received: via spool by 19285-submit@debbugs.gnu.org id=B19285.142682511426111 (code B ref 19285); Fri, 20 Mar 2015 04:19:02 +0000 Received: (at 19285) by debbugs.gnu.org; 20 Mar 2015 04:18:34 +0000 Received: from localhost ([127.0.0.1]:58707 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YYoOI-0006n0-AK for submit@debbugs.gnu.org; Fri, 20 Mar 2015 00:18:34 -0400 Received: from mail-wi0-f179.google.com ([209.85.212.179]:35972) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YYoOF-0006mU-DF; Fri, 20 Mar 2015 00:18:31 -0400 Received: by wibg7 with SMTP id g7so134651811wib.1; Thu, 19 Mar 2015 21:18:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=ol3hHFrpseWys97PWbaTkEyV7ElJf9D6FYAVJTiDKv8=; b=VC0Y8v5sIUlVpzRwBTbrwePKhJqPYDjhxbcq3ik9cF7Jt+5hniTcKx3vCcZK77hdbl fGVjPRxLc1/iBbTW2yFkSuHwlRe+id9oSeGfACyUYhTGa5q0ukFaTA2Z8b2bBzlJVDTX N/NGNXrnFflCuQtms6Rq+QHoZNMulfVD+TWkkxZ/wf9UKmjk+GqqGvXvAEHR11qP3w4o m4BV0M5L3lwcuwy51zJBnAhlhnTuaJNtSJHVSzpoPay/G0yJ+E6Ptfd/2q18fbVsT4Cw 8LtHqkjtQrTAOxiBLDfDXRtSVzlCuqAMMcYaUvQ7dgBcPijiMee9yIGxcolB6tbLUwiY Ld3g== X-Received: by 10.180.94.199 with SMTP id de7mr1977877wib.53.1426825105921; Thu, 19 Mar 2015 21:18:25 -0700 (PDT) Received: from [192.168.1.3] ([82.102.93.54]) by mx.google.com with ESMTPSA id yr10sm4617205wjc.0.2015.03.19.21.18.25 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Mar 2015 21:18:25 -0700 (PDT) Message-ID: <550B9F90.6020603@yandex.ru> Date: Fri, 20 Mar 2015 06:18:24 +0200 From: Dmitry Gutov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Thunderbird/36.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Also backported to emacs-24 (upcoming 24.5).