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