unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#14402: Imenu does not work any more on trunk
@ 2013-05-14 17:36 Angelo Graziosi
  2013-05-14 19:30 ` Glenn Morris
  0 siblings, 1 reply; 8+ messages in thread
From: Angelo Graziosi @ 2013-05-14 17:36 UTC (permalink / raw)
  To: 14402

The trunk revision #112579 shows an issue *very* similar to that 
described in bug #9199 [*]: same way to reproduce it, same result.

In my ~/.emacs.d/init.el I have something like this:

;; c-mode
(add-hook 'c-mode-hook
	  '(lambda()
	     ;; No indent for open bracket
	     (c-set-offset 'substatement-open 0)

	     ;; Add index of func. to menu bar
	     (imenu-add-to-menubar "Functions")
	     )
	  )

[...]

;; f90-mode
(add-hook 'f90-mode-hook
	  '(lambda()
	     ;; Add index of func. to menu bar
	     (imenu-add-to-menubar "Program-Units")
	     )
	  )

[...]

(setq imenu-auto-rescan t)
(setq imenu-auto-rescan-maxout 500000)

[...]

This time the issue shows up also in other programming modes. The Emacs 
buffer displays this error message:

Error in menu-bar-update-hook (imenu-update-menubar): 
(wrong-type-argument stringp ("Types" f90-imenu-type-matcher 1))

This issue is not shown by rev. 112494 I have build on May 07, 2013.


Ciao,
   Angelo.


---
[*] http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9199





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#14402: Imenu does not work any more on trunk
  2013-05-14 17:36 bug#14402: Imenu does not work any more on trunk Angelo Graziosi
@ 2013-05-14 19:30 ` Glenn Morris
  2013-05-14 20:21   ` Angelo Graziosi
  0 siblings, 1 reply; 8+ messages in thread
From: Glenn Morris @ 2013-05-14 19:30 UTC (permalink / raw)
  To: Angelo Graziosi; +Cc: 14402

Angelo Graziosi wrote:

> ;; f90-mode
> (add-hook 'f90-mode-hook
> 	  '(lambda()
> 	     ;; Add index of func. to menu bar
> 	     (imenu-add-to-menubar "Program-Units")
> 	     )
> 	  )
[...]
> Error in menu-bar-update-hook (imenu-update-menubar):
> (wrong-type-argument stringp ("Types" f90-imenu-type-matcher 1))

Fixed.
Any other modes, you will have to report the details.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#14402: Imenu does not work any more on trunk
  2013-05-14 19:30 ` Glenn Morris
@ 2013-05-14 20:21   ` Angelo Graziosi
  2013-05-14 21:49     ` Angelo Graziosi
  0 siblings, 1 reply; 8+ messages in thread
From: Angelo Graziosi @ 2013-05-14 20:21 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 14402

Ciao Glenn,

Il 14/05/2013 21.30, Glenn Morris ha scritto:
> Angelo Graziosi wrote:
>
>> ;; f90-mode
>> (add-hook 'f90-mode-hook
>> 	  '(lambda()
>> 	     ;; Add index of func. to menu bar
>> 	     (imenu-add-to-menubar "Program-Units")
>> 	     )
>> 	  )
> [...]
>> Error in menu-bar-update-hook (imenu-update-menubar):
>> (wrong-type-argument stringp ("Types" f90-imenu-type-matcher 1))
>
> Fixed.

Many thanks for the quick fix... :-)

> Any other modes, you will have to report the details.
>

I can't reproduce the issue any more. I have tested with .f90, .f, 
Makefile, .tex, .sh, C/C++. :)


Ciao,
  Angelo.






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#14402: Imenu does not work any more on trunk
  2013-05-14 20:21   ` Angelo Graziosi
@ 2013-05-14 21:49     ` Angelo Graziosi
  2013-05-14 22:06       ` Glenn Morris
  0 siblings, 1 reply; 8+ messages in thread
From: Angelo Graziosi @ 2013-05-14 21:49 UTC (permalink / raw)
  To: Glenn Morris

Package: emacs

Glenn,

now I am seeing another issue and don't know if related to this fix.

In short, F90 mode seems to have lost the completion linked to "end".

More precisely,

$ emacs -Q &

C-x C-f foo.f90 RET

program foo
end<TAB>


it should complete in "end program foo" instead it stays to "end". "end" 
is only indented,

program foo
   end

I need to type "end program<TAB>", to have the right behavior...


The same occurs with other statements, if-then, do..


  Ciao,
   Angelo.


Il 14/05/2013 22.21, Angelo Graziosi ha scritto:
> Ciao Glenn,
>
> Il 14/05/2013 21.30, Glenn Morris ha scritto:
>> Angelo Graziosi wrote:
>>
>>> ;; f90-mode
>>> (add-hook 'f90-mode-hook
>>>       '(lambda()
>>>          ;; Add index of func. to menu bar
>>>          (imenu-add-to-menubar "Program-Units")
>>>          )
>>>       )
>> [...]
>>> Error in menu-bar-update-hook (imenu-update-menubar):
>>> (wrong-type-argument stringp ("Types" f90-imenu-type-matcher 1))
>>
>> Fixed.
>
> Many thanks for the quick fix... :-)
>
>> Any other modes, you will have to report the details.
>>
>
> I can't reproduce the issue any more. I have tested with .f90, .f,
> Makefile, .tex, .sh, C/C++. :)
>
>
> Ciao,
>   Angelo.
>






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#14402: Imenu does not work any more on trunk
  2013-05-14 21:49     ` Angelo Graziosi
@ 2013-05-14 22:06       ` Glenn Morris
  2013-05-14 22:35         ` Angelo Graziosi
                           ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Glenn Morris @ 2013-05-14 22:06 UTC (permalink / raw)
  To: Angelo Graziosi; +Cc: 14402


(Please keep the debbugs address cc'd.)

Angelo Graziosi wrote:

> now I am seeing another issue and don't know if related to this fix.
>
> In short, F90 mode seems to have lost the completion linked to "end".
>
> More precisely,
>
> $ emacs -Q &
>
> C-x C-f foo.f90 RET
>
> program foo
> end<TAB>
>
>
> it should complete in "end program foo" instead it stays to "end".
> "end" is only indented,

This is all breakage from r112519.
Specifically, f90-looking-at-program-block-end is broken (and who knows
what else).
I don't feel like sorting through all this to figure it out.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#14402: Imenu does not work any more on trunk
  2013-05-14 22:06       ` Glenn Morris
@ 2013-05-14 22:35         ` Angelo Graziosi
  2013-05-14 22:39         ` Stefan Monnier
  2013-05-15  0:53         ` Stefan Monnier
  2 siblings, 0 replies; 8+ messages in thread
From: Angelo Graziosi @ 2013-05-14 22:35 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 14402

Il 15/05/2013 0.06, Glenn Morris ha scritto:
>
> (Please keep the debbugs address cc'd.)
>
> Angelo Graziosi wrote:
>
>> now I am seeing another issue and don't know if related to this fix.
>>
>> In short, F90 mode seems to have lost the completion linked to "end".
>>
>> More precisely,
>>
>> $ emacs -Q &
>>
>> C-x C-f foo.f90 RET
>>
>> program foo
>> end<TAB>
>>
>>
>> it should complete in "end program foo" instead it stays to "end".
>> "end" is only indented,
>
> This is all breakage from r112519.
> Specifically, f90-looking-at-program-block-end is broken (and who knows
> what else).
> I don't feel like sorting through all this to figure it out.
>

Just a curiosity... :) who did this?

f90-mode is practically unusable from point of view of completion...


In any case, thank for your time.

Ciao,
  Angelo.

Oops... should we open a bug report?






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#14402: Imenu does not work any more on trunk
  2013-05-14 22:06       ` Glenn Morris
  2013-05-14 22:35         ` Angelo Graziosi
@ 2013-05-14 22:39         ` Stefan Monnier
  2013-05-15  0:53         ` Stefan Monnier
  2 siblings, 0 replies; 8+ messages in thread
From: Stefan Monnier @ 2013-05-14 22:39 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 14402, Angelo Graziosi

>> $ emacs -Q &
>> 
>> C-x C-f foo.f90 RET
>> 
>> program foo
>> end<TAB>
>> 
>> it should complete in "end program foo" instead it stays to "end".
>> "end" is only indented,

> This is all breakage from r112519.
> Specifically, f90-looking-at-program-block-end is broken (and who knows
> what else).
> I don't feel like sorting through all this to figure it out.

Thanks, I'll take a look,


        Stefan





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#14402: Imenu does not work any more on trunk
  2013-05-14 22:06       ` Glenn Morris
  2013-05-14 22:35         ` Angelo Graziosi
  2013-05-14 22:39         ` Stefan Monnier
@ 2013-05-15  0:53         ` Stefan Monnier
  2 siblings, 0 replies; 8+ messages in thread
From: Stefan Monnier @ 2013-05-15  0:53 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 14402-done, Angelo Graziosi

>> C-x C-f foo.f90 RET
>> program foo
>> end<TAB>
>> it should complete in "end program foo" instead it stays to "end".
>> "end" is only indented,

I just installed the patch below which seems to fix this.

> This is all breakage from r112519.
> Specifically, f90-looking-at-program-block-end is broken (and who knows
> what else).

Interestingly, the bug was caused by the fact that the old code relied
on a bug in the handling of the \> regexp: more specifically \> treated
(string-match "ab\\>?" foo) as (string-match "a\\(?:b\\>\\)?" foo)
instead of the expected (string-match "ab\\(?:\\>\\)?" foo).


        Stefan


=== modified file 'lisp/progmodes/f90.el'
--- lisp/progmodes/f90.el	2013-05-14 19:29:35 +0000
+++ lisp/progmodes/f90.el	2013-05-15 00:40:06 +0000
@@ -842,14 +842,14 @@
 \f
 ;; Regexps for finding program structures.
 (defconst f90-blocks-re
-  (concat "\\(block[ \t]*data\\|"
+  (concat "\\(\\(?:block[ \t]*data\\|"
           (regexp-opt '("do" "if" "interface" "function" "module" "program"
                         "select" "subroutine" "type" "where" "forall"
                         ;; F2003.
                         "enum" "associate"
                         ;; F2008.
                         "submodule" "block" "critical"))
-          "\\)\\_>")
+          "\\)\\_>\\)")
   "Regexp potentially indicating a \"block\" of F90 code.")
 
 (defconst f90-program-block-re





^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-05-15  0:53 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-14 17:36 bug#14402: Imenu does not work any more on trunk Angelo Graziosi
2013-05-14 19:30 ` Glenn Morris
2013-05-14 20:21   ` Angelo Graziosi
2013-05-14 21:49     ` Angelo Graziosi
2013-05-14 22:06       ` Glenn Morris
2013-05-14 22:35         ` Angelo Graziosi
2013-05-14 22:39         ` Stefan Monnier
2013-05-15  0:53         ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).