GNU bug report logs -
#26750
25.2; js-mode missing keywords
Previous Next
To reply to this bug, email your comments to 26750 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#26750
; Package
emacs
.
(Tue, 02 May 2017 19:47:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Yuen Ho Wong <wyuenho <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Tue, 02 May 2017 19:47:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
When in js-mode, some latest Javascript keywords are not
highlighted. After looking at js.el, js--keyword-re seems to be missing
the following:
"as", "await, "async", and "of".
"await" is treated as a "future reserved word" in ES6 and promoted to a
keyword in the latest ES8 spec draft.
"async" is treated as a keyword in the AsyncFunctionExpression rule in
ES8 draft.
"of" is treated as a keyword in the for-of iteration production rule in
ES6.
"as" is treated as a keyword in import * as statements in ES6.
References:
ES6: https://www.ecma-international.org/ecma-262/6.0/
ES8: https://tc39.github.io/ecma262/
In GNU Emacs 25.2.1 (x86_64-apple-darwin16.4.0)
of 2017-04-24 built on sierra.internal.macports.net
Configured using:
'configure --prefix=/opt/local --without-ns --without-x --without-dbus
--without-gconf --without-libotf --without-m17n-flt --without-gpm
--without-gnutls --with-xml2 --with-modules --infodir
/opt/local/share/info/emacs 'CFLAGS=-pipe -Os -arch x86_64'
CPPFLAGS=-I/opt/local/include 'LDFLAGS=-L/opt/local/lib
-Wl,-headerpad_max_install_names -Wl,-no_pie -arch x86_64''
Configured features:
NOTIFY ACL LIBXML2 ZLIB MODULES
Important settings:
value of $LC_ALL: en_US.UTF-8
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
electric-indent-mode: t
menu-bar-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
line-number-mode: t
transient-mark-mode: t
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Making completion list...
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message dired format-spec rfc822 mml
mml-sec password-cache epg epg-config gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
regexp-opt rfc2047 rfc2045 ietf-drums mm-util help-fns help-mode
easymenu cl-loaddefs pcase cl-lib mail-prsvr mail-utils term/xterm xterm
time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type tabulated-list newcomment elisp-mode lisp-mode prog-mode
register page menu-bar rfn-eshadow timer select mouse jit-lock font-lock
syntax facemenu font-core 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 charscript case-table epa-hook jka-cmpr-hook help
simple abbrev 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
kqueue multi-tty make-network-process emacs)
Memory information:
((conses 16 84806 4043)
(symbols 48 18787 0)
(miscs 40 41 113)
(strings 32 14158 5341)
(string-bytes 1 408779)
(vectors 16 9651)
(vector-slots 8 378732 18240)
(floats 8 149 126)
(intervals 56 197 0)
(buffers 976 19))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#26750
; Package
emacs
.
(Fri, 12 May 2017 15:39:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 26750 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi. It is my first contribution.
I hope everything is correct with this PATCH and submission itself.
In this patch added two missed keywords to `js--keyword-re` which are `as` and `of`.
`async` and `await` are already there.
---
lisp/progmodes/js.el | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index bae9e52bf0..02e63986d6 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -278,11 +278,11 @@ Match group 1 is the name of the macro.")
(defconst js--keyword-re
(js--regexp-opt-symbol
- '("abstract" "async" "await" "break" "case" "catch" "class" "const"
+ '("abstract" "as" "async" "await" "break" "case" "catch" "class" "const"
"continue" "debugger" "default" "delete" "do" "else"
"enum" "export" "extends" "final" "finally" "for"
"function" "goto" "if" "implements" "import" "in"
- "instanceof" "interface" "native" "new" "package"
+ "instanceof" "interface" "native" "new" "package" "of"
"private" "protected" "public" "return" "static"
"super" "switch" "synchronized" "throw"
"throws" "transient" "try" "typeof" "var" "void" "let"
--
--
Ruslan Bekenev
[Message part 2 (text/html, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#26750
; Package
emacs
.
(Sat, 28 Apr 2018 21:09:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 26750 <at> debbugs.gnu.org (full text, mbox):
forcemerge 26750 31306
quit
Ruslan Bekenev <furyinbox <at> gmail.com> writes:
> Hi. It is my first contribution.
> I hope everything is correct with this PATCH and submission itself.
> In this patch added two missed keywords to `js--keyword-re` which are `as` and `of`.
> `async` and `await` are already there.
Hi, sorry your patch was overlooked for so long. Unfortunately, I think
just adding keywords to js--keyword-re will not quite do the right
thing, based on https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31306#5:
Specially, "as" and "from" should only be highlighted in an import
statement. "of" should only be highlighted in a for statement. Any other
occurrances of "as", "from" and "of" should not be highlighted as they
are legal identifiers outside of import and for statements respectively.
Forcibly Merged 26750 31306.
Request was from
Noam Postavsky <npostavs <at> gmail.com>
to
control <at> debbugs.gnu.org
.
(Sat, 28 Apr 2018 21:09:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#26750
; Package
emacs
.
(Sat, 28 Apr 2018 21:48:02 GMT)
Full text and
rfc822 format available.
Message #16 received at 26750 <at> debbugs.gnu.org (full text, mbox):
Technically, "async", "await" and "yield" can also be identifiers.
"async" should only be highlighted if it's followed by a function, arrow
function or a method. "await" should only be highlighted if it's inside
an async function, async arrow function or an async method. "yield"
should only be highlighted inside a generator function/arrow function
and method. But for all intends and purposes, you can put "await" and
"yield" into the list of keywords or you'll have to write a full blown
parser and AST in order to traverse back and forth. That's how Chrome
devtools does it anyway. Only "async", "as", "of" and "from" need
special handling.
On 28/04/2018 22:08, Noam Postavsky wrote:
> forcemerge 26750 31306
> quit
>
> Ruslan Bekenev <furyinbox <at> gmail.com> writes:
>
>> Hi. It is my first contribution.
>> I hope everything is correct with this PATCH and submission itself.
>> In this patch added two missed keywords to `js--keyword-re` which are `as` and `of`.
>> `async` and `await` are already there.
> Hi, sorry your patch was overlooked for so long. Unfortunately, I think
> just adding keywords to js--keyword-re will not quite do the right
> thing, based on https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31306#5:
>
> Specially, "as" and "from" should only be highlighted in an import
> statement. "of" should only be highlighted in a for statement. Any other
> occurrances of "as", "from" and "of" should not be highlighted as they
> are legal identifiers outside of import and for statements respectively.
>
>
Added tag(s) confirmed.
Request was from
Akshay Gaikwad <akgaikwad001 <at> gmail.com>
to
control <at> debbugs.gnu.org
.
(Tue, 06 Aug 2019 15:46:01 GMT)
Full text and
rfc822 format available.
This bug report was last modified 6 years and 10 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.