Package: emacs;
Reported by: Tom Tromey <tom <at> tromey.com>
Date: Wed, 13 Sep 2017 17:56:02 UTC
Severity: minor
Merged with 41676
Found in versions 26.0.50, 27.0.91
To reply to this bug, email your comments to 28448 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#28448
; Package emacs
.
(Wed, 13 Sep 2017 17:56:02 GMT) Full text and rfc822 format available.Tom Tromey <tom <at> tromey.com>
:bug-gnu-emacs <at> gnu.org
.
(Wed, 13 Sep 2017 17:56:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Tom Tromey <tom <at> tromey.com> To: bug-gnu-emacs <at> gnu.org Subject: 26.0.50; js-mode missing some functions for imenu Date: Wed, 13 Sep 2017 11:54:30 -0600
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))
bug-gnu-emacs <at> gnu.org
:bug#28448
; Package emacs
.
(Fri, 15 Sep 2017 15:44:02 GMT) Full text and rfc822 format available.Message #8 received at 28448 <at> debbugs.gnu.org (full text, mbox):
From: Hariharan <hariharanrangasamy <at> gmail.com> To: Tom Tromey <tom <at> tromey.com> Cc: 28448 <at> debbugs.gnu.org Subject: Re: bug#28448: 26.0.50; js-mode missing some functions for imenu Date: Fri, 15 Sep 2017 21:13:27 +0530
Tom Tromey <tom <at> 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))
bug-gnu-emacs <at> gnu.org
:bug#28448
; Package emacs
.
(Fri, 05 Feb 2021 11:20:02 GMT) Full text and rfc822 format available.Message #11 received at 28448 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Tom Tromey <tom <at> tromey.com> Cc: 28448 <at> debbugs.gnu.org Subject: Re: bug#28448: 26.0.50; js-mode missing some functions for imenu Date: Fri, 05 Feb 2021 12:19:26 +0100
[Message part 1 (text/plain, inline)]
Tom Tromey <tom <at> 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
[Message part 2 (image/png, inline)]
[Message part 3 (text/plain, inline)]
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
bug-gnu-emacs <at> gnu.org
:bug#28448
; Package emacs
.
(Fri, 05 Feb 2021 13:26:01 GMT) Full text and rfc822 format available.Message #14 received at 28448 <at> debbugs.gnu.org (full text, mbox):
From: Dmitry Gutov <dgutov <at> yandex.ru> To: Lars Ingebrigtsen <larsi <at> gnus.org>, Tom Tromey <tom <at> tromey.com> Cc: 28448 <at> debbugs.gnu.org Subject: Re: bug#28448: 26.0.50; js-mode missing some functions for imenu Date: Fri, 5 Feb 2021 15:25:16 +0200
On 05.02.2021 13:19, Lars Ingebrigtsen wrote: > Tom Tromey <tom <at> 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.
Lars Ingebrigtsen <larsi <at> gnus.org>
to control <at> debbugs.gnu.org
.
(Sun, 08 May 2022 12:39:02 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.