unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#28448: 26.0.50; js-mode missing some functions for imenu
@ 2017-09-13 17:54 Tom Tromey
  2017-09-15 15:43 ` Hariharan
  2021-02-05 11:19 ` Lars Ingebrigtsen
  0 siblings, 2 replies; 4+ messages in thread
From: Tom Tromey @ 2017-09-13 17:54 UTC (permalink / raw)
  To: 28448


Consider this pared-down but relatively normal js file:

================================================================
function StyleSheetEditor(styleSheet, win, file, isNew, walker, highlighter) {
}
StyleSheetEditor.prototype = {
    get unsaved() {
    },
    updateLinkedStyleSheet: function () {
    },
    checkLinkedFileForChanges: function () {
	this.unsaved().updateLinkedStyleSheet();
    },
}
================================================================

Here it would be great to have imenu entries for "unsaved" and
"updateLinkedStyleSheet".

Currently js-mode doesn't find these.

Tom




In GNU Emacs 26.0.50 (build 8, x86_64-pc-linux-gnu, GTK+ Version 3.22.17)
 of 2017-08-28 built on pokyo
Repository revision: 433cf5b2046f9b0a9f500dae1d072cc53f2a3c10
Windowing system distributor 'Fedora Project', version 11.0.11903000
System Description:	Fedora release 25 (Twenty Five)

Recent messages:
funcall-interactively: End of buffer
Saving file /tmp/r.js...
Wrote /tmp/r.js
No more miss-spelled word!
C-x C-g is undefined
imenu-find-default: Wrong type argument: stringp, nil
Undo! [2 times]
imenu-find-default: Wrong type argument: stringp, nil
Saving file /tmp/r.js...
Wrote /tmp/r.js

Configured using:
 'configure --prefix=/home/tromey/Emacs/install --with-modules'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY
LIBSELINUX GNUTLS LIBXML2 FREETYPE LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS
GTK3 X11 MODULES LIBSYSTEMD

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: JS

Minor modes in effect:
  erc-spelling-mode: t
  erc-truncate-mode: t
  shell-dirtrack-mode: t
  diff-auto-refine-mode: t
  flyspell-mode: t
  which-function-mode: t
  projectile-global-mode: t
  projectile-mode: t
  erc-notify-mode: t
  erc-notifications-mode: t
  erc-services-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-match-mode: t
  erc-netsplit-mode: t
  erc-hl-nicks-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  flycheck-mode: t
  savehist-mode: t
  cl-old-struct-compat-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-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
  auto-fill-function: js-do-auto-fill
  transient-mark-mode: t

Load-path shadows:
/home/tromey/.emacs.d/elpa/bubbles-0.5/bubbles hides /home/tromey/Emacs/install/share/emacs/26.0.50/lisp/play/bubbles

Features:
(shadow emacsbug thai-util thai-word gud python tramp-sh nnregistry
sh-script executable make-mode ix grapnel footnote cl-print debug
url-about url-dav url-dired webjump org-rmail org-mhe org-irc org-info
org-gnus org-docview doc-view image-mode org-bibtex bibtex org-bbdb
org-w3m org-element avl-tree generator org org-macro org-footnote
org-pcomplete org-list org-faces org-entities noutline outline
org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table
ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs
org-loaddefs cursor-sensor mhtml-mode novice mode-local descr-text
iso-transl tabify man eieio-opt speedbar sb-image ezimage dframe ffap
gnus-fun idutils find-file erc-spelling erc-truncate mailalias bbdb-sc
supercite regi mail-hist nnir js cc-mode cc-fonts cc-guess cc-menus
cc-cmds gnus-html help-fns radix-tree url-cache css-mode smie sgml-mode
eww url-queue gnus-draft git-rebase-mode vc-annotate tramp tramp-compat
tramp-loaddefs trampver ucs-normalize jka-compr flow-fill url-http
url-auth url-gw bbdb-gui bbdb-hooks bbdb-rmail rmailsum vc-mtn vc-hg
sort gnus-cite smiley shr-color shr svg dom mm-archive gnus-bcklg
git-commit-mode log-edit term/xterm xterm gnus-async qp gnus-ml
disp-table gnus-topic nndraft nnmh nnfolder utf-7 bbdb-gnus bbdb-snarf
mail-extr bbdb-com network-stream nsm starttls gnus-agent gnus-srvr
gnus-score score-mode nnvirtual gnus-msg nntp gnus-cache gnus-registry
registry eieio-base gnus-art mm-uu mml2015 mm-view mml-smime smime dig
gnus-sum gnus-group gnus-undo smtpmail sendmail gnus-start gnus-cloud
nnimap nnmail mail-source tls gnutls utf7 netrc nnoo parse-time
gnus-spec gnus-int gnus-range message puny rfc822 mml mml-sec epa
derived epg mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader gnus-win conf-mode etags xref project shell
browse-url dxr mm-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util mailcap gnus nnheader
gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums mail-utils
mm-util mail-prsvr bug-reference copyright find-dired dabbrev misearch
multi-isearch smerge-mode log-view pcvs-util vc-bzr vc-src vc-sccs
vc-svn vc-cvs vc-rcs add-log vc-git diff-mode rust-mode elec-pair
flyspell ispell diminish appt diary-lib diary-loaddefs cal-menu calendar
cal-loaddefs which-func imenu edmacro kmacro projectile grep compile
ibuf-ext ibuffer ibuffer-loaddefs autorevert filenotify desktop frameset
cus-start cus-load erc-notify erc-desktop-notifications erc-services
notifications dbus xml erc-list erc-menu erc-join erc-ring erc-networks
erc-pcomplete pcomplete erc-track erc-match erc-netsplit erc-hl-nicks
easy-mmode color erc-button erc-fill erc-stamp wid-edit erc-goodies erc
erc-backend erc-compat format-spec thingatpt pp dired-aux dired-x dired
dired-loaddefs warnings advice vc-dir ewoc vc vc-dispatcher flycheck
cl-extra json map find-func help-mode rx subr-x dash cc-styles cc-align
cc-engine cc-vars cc-defs bbdb cl timezone ange-ftp comint ansi-color
ring server savehist finder-inf bbdb-autoloads dwarf-mode-autoloads
lisppaste-autoloads pydoc-info-autoloads info-look weblogger-autoloads
info package easymenu epg-config url-handlers url-parse auth-source
cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache url-vars
seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib time-date
mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded 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 dbusbind inotify
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 5900075 3437281)
 (symbols 48 136519 43)
 (miscs 40 38707 31985)
 (strings 32 1568492 177118)
 (string-bytes 1 69419422)
 (vectors 16 226053)
 (vector-slots 8 5530804 389348)
 (floats 8 915 3920)
 (intervals 56 475093 29216)
 (buffers 992 647))





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

* bug#28448: 26.0.50; js-mode missing some functions for imenu
  2017-09-13 17:54 bug#28448: 26.0.50; js-mode missing some functions for imenu Tom Tromey
@ 2017-09-15 15:43 ` Hariharan
  2021-02-05 11:19 ` Lars Ingebrigtsen
  1 sibling, 0 replies; 4+ messages in thread
From: Hariharan @ 2017-09-15 15:43 UTC (permalink / raw)
  To: Tom Tromey; +Cc: 28448

Tom Tromey <tom@tromey.com> writes:

I'm not sure whether this is any useful information but
with the below code, M-x imenu gives *Rescan* and StyleSheetEditor.

Selecting StyleSheetEditor, shows list of items StyleSheetEditor,
updateLinkedStyleSheet and checkLinkedFileForChanges. And selecting
anyof the items takes me to the corresponding functions.

I think imenu shows entries based on the function keyword?

> Consider this pared-down but relatively normal js file:
>
> ================================================================
> function StyleSheetEditor(styleSheet, win, file, isNew, walker, highlighter) {
> }
> StyleSheetEditor.prototype = {
>     get unsaved() {
>     },
>     updateLinkedStyleSheet: function () {
>     },
>     checkLinkedFileForChanges: function () {
> 	this.unsaved().updateLinkedStyleSheet();
>     },
> }
> ================================================================
>
> Here it would be great to have imenu entries for "unsaved" and
> "updateLinkedStyleSheet".
>
> Currently js-mode doesn't find these.
>
> Tom
>
>
>
>
> In GNU Emacs 26.0.50 (build 8, x86_64-pc-linux-gnu, GTK+ Version 3.22.17)
>  of 2017-08-28 built on pokyo
> Repository revision: 433cf5b2046f9b0a9f500dae1d072cc53f2a3c10
> Windowing system distributor 'Fedora Project', version 11.0.11903000
> System Description:	Fedora release 25 (Twenty Five)
>
> Recent messages:
> funcall-interactively: End of buffer
> Saving file /tmp/r.js...
> Wrote /tmp/r.js
> No more miss-spelled word!
> C-x C-g is undefined
> imenu-find-default: Wrong type argument: stringp, nil
> Undo! [2 times]
> imenu-find-default: Wrong type argument: stringp, nil
> Saving file /tmp/r.js...
> Wrote /tmp/r.js
>
> Configured using:
>  'configure --prefix=/home/tromey/Emacs/install --with-modules'
>
> Configured features:
> XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY
> LIBSELINUX GNUTLS LIBXML2 FREETYPE LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS
> GTK3 X11 MODULES LIBSYSTEMD
>
> Important settings:
>   value of $LANG: en_US.UTF-8
>   value of $XMODIFIERS: @im=ibus
>   locale-coding-system: utf-8-unix
>
> Major mode: JS
>
> Minor modes in effect:
>   erc-spelling-mode: t
>   erc-truncate-mode: t
>   shell-dirtrack-mode: t
>   diff-auto-refine-mode: t
>   flyspell-mode: t
>   which-function-mode: t
>   projectile-global-mode: t
>   projectile-mode: t
>   erc-notify-mode: t
>   erc-notifications-mode: t
>   erc-services-mode: t
>   erc-list-mode: t
>   erc-menu-mode: t
>   erc-autojoin-mode: t
>   erc-ring-mode: t
>   erc-networks-mode: t
>   erc-pcomplete-mode: t
>   erc-track-mode: t
>   erc-track-minor-mode: t
>   erc-match-mode: t
>   erc-netsplit-mode: t
>   erc-hl-nicks-mode: t
>   erc-button-mode: t
>   erc-fill-mode: t
>   erc-stamp-mode: t
>   erc-irccontrols-mode: t
>   erc-noncommands-mode: t
>   erc-move-to-prompt-mode: t
>   erc-readonly-mode: t
>   flycheck-mode: t
>   savehist-mode: t
>   cl-old-struct-compat-mode: t
>   tooltip-mode: t
>   global-eldoc-mode: t
>   electric-indent-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
>   auto-fill-function: js-do-auto-fill
>   transient-mark-mode: t
>
> Load-path shadows:
> /home/tromey/.emacs.d/elpa/bubbles-0.5/bubbles hides /home/tromey/Emacs/install/share/emacs/26.0.50/lisp/play/bubbles
>
> Features:
> (shadow emacsbug thai-util thai-word gud python tramp-sh nnregistry
> sh-script executable make-mode ix grapnel footnote cl-print debug
> url-about url-dav url-dired webjump org-rmail org-mhe org-irc org-info
> org-gnus org-docview doc-view image-mode org-bibtex bibtex org-bbdb
> org-w3m org-element avl-tree generator org org-macro org-footnote
> org-pcomplete org-list org-faces org-entities noutline outline
> org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table
> ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs
> org-loaddefs cursor-sensor mhtml-mode novice mode-local descr-text
> iso-transl tabify man eieio-opt speedbar sb-image ezimage dframe ffap
> gnus-fun idutils find-file erc-spelling erc-truncate mailalias bbdb-sc
> supercite regi mail-hist nnir js cc-mode cc-fonts cc-guess cc-menus
> cc-cmds gnus-html help-fns radix-tree url-cache css-mode smie sgml-mode
> eww url-queue gnus-draft git-rebase-mode vc-annotate tramp tramp-compat
> tramp-loaddefs trampver ucs-normalize jka-compr flow-fill url-http
> url-auth url-gw bbdb-gui bbdb-hooks bbdb-rmail rmailsum vc-mtn vc-hg
> sort gnus-cite smiley shr-color shr svg dom mm-archive gnus-bcklg
> git-commit-mode log-edit term/xterm xterm gnus-async qp gnus-ml
> disp-table gnus-topic nndraft nnmh nnfolder utf-7 bbdb-gnus bbdb-snarf
> mail-extr bbdb-com network-stream nsm starttls gnus-agent gnus-srvr
> gnus-score score-mode nnvirtual gnus-msg nntp gnus-cache gnus-registry
> registry eieio-base gnus-art mm-uu mml2015 mm-view mml-smime smime dig
> gnus-sum gnus-group gnus-undo smtpmail sendmail gnus-start gnus-cloud
> nnimap nnmail mail-source tls gnutls utf7 netrc nnoo parse-time
> gnus-spec gnus-int gnus-range message puny rfc822 mml mml-sec epa
> derived epg mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
> gmm-utils mailheader gnus-win conf-mode etags xref project shell
> browse-url dxr mm-url url url-proxy url-privacy url-expand url-methods
> url-history url-cookie url-domsuf url-util mailcap gnus nnheader
> gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums mail-utils
> mm-util mail-prsvr bug-reference copyright find-dired dabbrev misearch
> multi-isearch smerge-mode log-view pcvs-util vc-bzr vc-src vc-sccs
> vc-svn vc-cvs vc-rcs add-log vc-git diff-mode rust-mode elec-pair
> flyspell ispell diminish appt diary-lib diary-loaddefs cal-menu calendar
> cal-loaddefs which-func imenu edmacro kmacro projectile grep compile
> ibuf-ext ibuffer ibuffer-loaddefs autorevert filenotify desktop frameset
> cus-start cus-load erc-notify erc-desktop-notifications erc-services
> notifications dbus xml erc-list erc-menu erc-join erc-ring erc-networks
> erc-pcomplete pcomplete erc-track erc-match erc-netsplit erc-hl-nicks
> easy-mmode color erc-button erc-fill erc-stamp wid-edit erc-goodies erc
> erc-backend erc-compat format-spec thingatpt pp dired-aux dired-x dired
> dired-loaddefs warnings advice vc-dir ewoc vc vc-dispatcher flycheck
> cl-extra json map find-func help-mode rx subr-x dash cc-styles cc-align
> cc-engine cc-vars cc-defs bbdb cl timezone ange-ftp comint ansi-color
> ring server savehist finder-inf bbdb-autoloads dwarf-mode-autoloads
> lisppaste-autoloads pydoc-info-autoloads info-look weblogger-autoloads
> info package easymenu epg-config url-handlers url-parse auth-source
> cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache url-vars
> seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib time-date
> mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
> lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
> dnd fontset image regexp-opt fringe tabulated-list replace newcomment
> text-mode elisp-mode lisp-mode prog-mode register page menu-bar
> rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
> syntax facemenu font-core term/tty-colors frame cl-generic cham georgian
> utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
> japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
> ethiopic indian cyrillic chinese composite charscript charprop
> case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
> cl-preloaded 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 dbusbind inotify
> dynamic-setting system-font-setting font-render-setting move-toolbar gtk
> x-toolkit x multi-tty make-network-process emacs)
>
> Memory information:
> ((conses 16 5900075 3437281)
>  (symbols 48 136519 43)
>  (miscs 40 38707 31985)
>  (strings 32 1568492 177118)
>  (string-bytes 1 69419422)
>  (vectors 16 226053)
>  (vector-slots 8 5530804 389348)
>  (floats 8 915 3920)
>  (intervals 56 475093 29216)
>  (buffers 992 647))





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

* bug#28448: 26.0.50; js-mode missing some functions for imenu
  2017-09-13 17:54 bug#28448: 26.0.50; js-mode missing some functions for imenu Tom Tromey
  2017-09-15 15:43 ` Hariharan
@ 2021-02-05 11:19 ` Lars Ingebrigtsen
  2021-02-05 13:25   ` Dmitry Gutov
  1 sibling, 1 reply; 4+ messages in thread
From: Lars Ingebrigtsen @ 2021-02-05 11:19 UTC (permalink / raw)
  To: Tom Tromey; +Cc: 28448

[-- Attachment #1: Type: text/plain, Size: 776 bytes --]

Tom Tromey <tom@tromey.com> writes:

> Consider this pared-down but relatively normal js file:
>
> ================================================================
> function StyleSheetEditor(styleSheet, win, file, isNew, walker, highlighter) {
> }
> StyleSheetEditor.prototype = {
>     get unsaved() {
>     },
>     updateLinkedStyleSheet: function () {
>     },
>     checkLinkedFileForChanges: function () {
> 	this.unsaved().updateLinkedStyleSheet();
>     },
> }
> ================================================================
>
> Here it would be great to have imenu entries for "unsaved" and
> "updateLinkedStyleSheet".
>
> Currently js-mode doesn't find these.

I tried this in Emacs 26.1 (and on the trunk), and

M-x imenu RET StyleSheetEditor RET TAB

gave me


[-- Attachment #2: Type: image/png, Size: 52464 bytes --]

[-- Attachment #3: Type: text/plain, Size: 264 bytes --]


So the only thing it didn't find was the "unsaved"?  So I guess the
problem here is that js--imenu-create-index doesn't know the "get" thing
in JS prototypes?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no

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

* bug#28448: 26.0.50; js-mode missing some functions for imenu
  2021-02-05 11:19 ` Lars Ingebrigtsen
@ 2021-02-05 13:25   ` Dmitry Gutov
  0 siblings, 0 replies; 4+ messages in thread
From: Dmitry Gutov @ 2021-02-05 13:25 UTC (permalink / raw)
  To: Lars Ingebrigtsen, Tom Tromey; +Cc: 28448

On 05.02.2021 13:19, Lars Ingebrigtsen wrote:
> Tom Tromey <tom@tromey.com> writes:
> 
>> Consider this pared-down but relatively normal js file:
>>
>> ================================================================
>> function StyleSheetEditor(styleSheet, win, file, isNew, walker, highlighter) {
>> }
>> StyleSheetEditor.prototype = {
>>      get unsaved() {
>>      },
>>      updateLinkedStyleSheet: function () {
>>      },
>>      checkLinkedFileForChanges: function () {
>> 	this.unsaved().updateLinkedStyleSheet();
>>      },
>> }
>> ================================================================
>>
>> Here it would be great to have imenu entries for "unsaved" and
>> "updateLinkedStyleSheet".
>>
>> Currently js-mode doesn't find these.
> 
> I tried this in Emacs 26.1 (and on the trunk), and
> 
> M-x imenu RET StyleSheetEditor RET TAB
> 
> gave me
> 
> 
> 
> So the only thing it didn't find was the "unsaved"?  So I guess the
> problem here is that js--imenu-create-index doesn't know the "get" thing
> in JS prototypes?

Also see bug#41676 which mentions more modern constructs which js-mode's 
imenu doesn't handle.





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

end of thread, other threads:[~2021-02-05 13:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-13 17:54 bug#28448: 26.0.50; js-mode missing some functions for imenu Tom Tromey
2017-09-15 15:43 ` Hariharan
2021-02-05 11:19 ` Lars Ingebrigtsen
2021-02-05 13:25   ` Dmitry Gutov

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).