BIRT 3.7
Written by: Michael Williams
Featured Refcardz: Top Refcardz:
  1. Scrum
  2. Apache Maven 2
  3. Essential MySQL
  4. Node.js
  5. Groovy
  1. jQuery Selectors
  2. Ajax
  3. Java
  4. Spring Config.
  5. Java Concurrency

Link Details

Link 37158 thumbnail
User 206355 avatar

By nyuhuhuu
via 20y.hu
Submitted: Aug 24 2007 / 16:14

How to install on-the-fly syntax checking in Emacs for JavaScript sources.
  • 4
  • 1
  • 1517
  • 0

Comments

Add your comment
User 255371 avatar

christopherbalz replied ago:

0 votes Vote down Vote up Reply

Looks like an ultra-cool Emacs lib with the flymake-js! But do the config instructions or code need to include a definition for 'compilation-error-regexp-alist-alist' ? I can't start emacs since variable is void:

Debugger entered--Lisp error: (void-variable compilation-error-regexp-alist-alist)
(flymake-reformat-err-line-patterns-from-compile-el compilation-error-regexp-alist-alist)
(append (quote (... ... ... ... ... ...)) (flymake-reformat-err-line-patterns-from-compile-el compilation-error-regexp-alist-alist))
(defvar flymake-err-line-patterns (append (quote ...) (flymake-reformat-err-line-patterns-from-compile-el compilation-error-regexp-alist-alist)) "Patterns for matching error/warning lines. Each pattern has the form\n(REGEXP FILE-IDX LINE-IDX COL-IDX ERR-TEXT-IDX).\nUse `flymake-reformat-err-line-patterns-from-compile-el' to add patterns\nfrom compile.el")
eval-buffer(#> nil "flymake" nil t)
load-with-code-conversion("/home/cbalz/emacs/site/flymake.el" "flymake" nil t)
require(flymake)
eval-buffer(#> nil "flymake-js" nil t)
load-with-code-conversion("/home/cbalz/emacs/site/flymake-js.el" "flymake-js" nil t)
require(flymake-js)
eval-buffer(# nil "~/.emacs" nil t)
load-with-code-conversion("/home/cbalz/.emacs" "~/.emacs" t t)
load("~/.emacs" t t)
#[nil "…— Æ=ƒÇÈQ‚5 É=ƒ'ÊÇËÌ#ƒ#͂5΂5 Ï=ƒ1Ђ5ÇÑQÒÓ\n҉#ˆ Ò=ƒFË ƒˆÔ !՚ƒˆÖ !‰×PØ
!ƒd
‚oØ\f!ƒn\f‚oˉƒ‡Ù\f \"ƒ…ÚÛ\f #ˆÜÝ!ˆ\f*†–Ë ÓÞ҉#))‡" [init-file-user system-type user-init-file-1 user-init-file source alt ms-dos "~" "/_emacs" windows-nt directory-files nil "^\\.emacs\\(\\.elc?\\)?$" "~/.emacs" "~/_emacs" vax-vms "sys$login:.emacs" "/.emacs" t load file-name-extension "elc" file-name-sans-extension ".el" file-exists-p file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1 "default" inhibit-default-init inhibit-startup-message] 5]()
command-line()
normal-top-level()


I also tried removing the require of flymake in flymake-js, since it seems that flymake ships with current versions of Gnu Emacs (which I am using). That allowed Emacs to start fine, but then all my old js buffers were gone except for one! And that one had triggered an Emacs lisp error (not sure if it is related to flymake-js, but posting in case):

Debugger entered--Lisp error: (error "Buffer ExpandableSet.js was not set up idle time scheduling")
signal(error ("Buffer ExpandableSet.js was not set up idle time scheduling"))
error("Buffer %s was not set up idle time scheduling" "ExpandableSet.js")
semantic-idle-scheduler-mode-setup()
semantic-idle-scheduler-mode(1)
#[(minor-mode) "Á=† Â=?……Ã!…Ä!‡" [minor-mode t nil fboundp 1] 2](semantic-idle-scheduler-mode)
mapcar(#[(minor-mode) "Á=† Â=?……Ã!…Ä!‡" [minor-mode t nil fboundp 1] 2] (abbrev-mode nil semantic-idle-scheduler-mode js-mode))
desktop-create-buffer(205 "/home/cbalz/work/det-us/web/javascript/serena/et1/src/lib/view/ExpandableSet.js" "ExpandableSet.js" c-mode (abbrev-mode nil semantic-idle-scheduler-mode js-mode) 12233 (2730 nil) nil nil nil)
eval-buffer(#> nil "/home/cbalz/.emacs.desktop" nil t)
load-with-code-conversion("/home/cbalz/.emacs.desktop" "/home/cbalz/.emacs.desktop" t t)
load("/home/cbalz/.emacs.desktop" t t t)
desktop-read()
eval-current-buffer()
call-interactively(eval-current-buffer)
recursive-edit()
byte-code("Æ!ˆÇ ˆÈ !ˆ\nƒ?Éed\" Vƒ4ebˆÊ ¥yˆ`dbˆÊ ¥ Zyˆ\f`|ˆ)ËcˆebˆÌÍ !ˆÎ ˆ @Ï=ƒKÐÑÒ\"ˆÓ ˆÌÔ!ˆÒÕÒÌÔ!ˆŠÖ ˆ,Շ" [debugger-buffer debugger-args noninteractive debugger-batch-max-lines middlestart buffer-read-only pop-to-buffer debugger-mode debugger-setup-buffer count-lines 2 "...\n" message buffer-string kill-emacs debug backtrace-debug 3 t debugger-reenable "" nil recursive-edit standard-output inhibit-trace] 3)
debug(error (error "Buffer ExpandableSet.js was not set up idle time scheduling"))
signal(error ("Buffer ExpandableSet.js was not set up idle time scheduling"))
error("Buffer %s was not set up idle time scheduling" "ExpandableSet.js")
semantic-idle-scheduler-mode-setup()
semantic-idle-scheduler-mode(1)
#[(minor-mode) "Á=† Â=?……Ã!…Ä!‡" [minor-mode t nil fboundp 1] 2](semantic-idle-scheduler-mode)
mapcar(#[(minor-mode) "Á=† Â=?……Ã!…Ä!‡" [minor-mode t nil fboundp 1] 2] (abbrev-mode nil semantic-idle-scheduler-mode js-mode))
desktop-create-buffer(205 "/home/cbalz/work/det-us/web/javascript/serena/et1/src/lib/view/ExpandableSet.js" "ExpandableSet.js" c-mode (abbrev-mode nil semantic-idle-scheduler-mode js-mode) 12233 (2730 nil) nil nil nil)
eval-buffer(#> nil "/home/cbalz/.emacs.desktop" nil t)
load-with-code-conversion("/home/cbalz/.emacs.desktop" "/home/cbalz/.emacs.desktop" t t)
load("/home/cbalz/.emacs.desktop" t t t)
desktop-read()
eval-buffer(# nil "~/.emacs" nil t)
load-with-code-conversion("/home/cbalz/.emacs" "~/.emacs" t t)
load("~/.emacs" t t)
#[nil "…— Æ=ƒÇÈQ‚5 É=ƒ'ÊÇËÌ#ƒ#͂5΂5 Ï=ƒ1Ђ5ÇÑQÒÓ\n҉#ˆ Ò=ƒFË ƒˆÔ !՚ƒˆÖ !‰×PØ
!ƒd
‚oØ\f!ƒn\f‚oˉƒ‡Ù\f \"ƒ…ÚÛ\f #ˆÜÝ!ˆ\f*†–Ë ÓÞ҉#))‡" [init-file-user system-type user-init-file-1 user-init-file source alt ms-dos "~" "/_emacs" windows-nt directory-files nil "^\\.emacs\\(\\.elc?\\)?$" "~/.emacs" "~/_emacs" vax-vms "sys$login:.emacs" "/.emacs" t load file-name-extension "elc" file-name-sans-extension ".el" file-exists-p file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1 "default" inhibit-default-init inhibit-startup-message] 5]()
command-line()
normal-top-level()

I've used js-mode (shellserver) successfully for a long time; this would be a cool new addition.

Any ideas?

Thanks in advance!!

- Chris B.


User 206355 avatar

nyuhuhuu replied ago:

0 votes Vote down Vote up Reply

Better check Steve Yegge's "js2-mode" instead of using this mode for now:
http://steve-yegge.blogspot.com/2008/03/js2-mode-new-javascript-mode-for-emacs.html

Add your comment


Html tags not supported. Reply is editable for 5 minutes. Use [code lang="java|ruby|sql|css|xml"][/code] to post code snippets.

Voters For This Link (4)



Voters Against This Link (1)