Subject: Re: bug#8724: 23.2; js-mode imenu should be more thorough

From: Daniel Colascione <[email-masked]>
Date: Sun, 19 Jun 2011 13:40:36 -0700

Hi Dino,

Thanks for the feature suggestion and code.

On 5/24/11 5:51 AM, dino chiesa wrote:
> 
> Module /emacs/lisp/progmodes/js.el
>  
> In js-mode, editing a short javascript file, the imenu indexing works
> nicely but the actual menu is incomplete, truncated. The defun
> js--pitems-to-imenu seems to make an insufficient effort, when
> nested function definitions are used in the source. 
>  
> For example, supposing this js source: 
>  
>   jQuery(document).ready(function () {
>       var $th = jQuery('thead > tr > th');
>       $th.each(function(column, elt) {
>           jQuery(this).addClass('sortable').click(function() {
>              ...
>           });
>       });
>   });
>  
> (this is fairly typical with javascript)

Fair enough.

>  
> In this case js-mode will index all of the anonymous functions, but will 
> produce an imenu that contains only the outer anonymous function. This is 
> done in js--pitems-to-imenu. Also, in the same defun, the imenu entry uses
> "Unknown" as the name of the anonymous function.
>  
> I propose 2 things: 
>   - replace the name "unknown" with "Anonymous"
>   - recurse into js--pitems-to-imenu for functions that define 
>     child functions. 
> 
> The proposed new code for the defun is: 

I'll see what I can do about looking at your code. In the meantime, it
would be helpful if you could submit your changes as a patch against the
latest code in trunk.

Thanks,
Daniel Colascione