J'essaye de placer le compilation-error-regexp-alist
dans une fonction que j'ajoute en tant que crochet de mode.emacs: Puis-je définir compilation-error-regexp-alist dans un mode hook fn?
(defun cheeso-javascript-mode-fn()
(turn-on-font-lock)
...bunch of other stuff
;; for JSLINT
(make-local-variable 'compilation-error-regexp-alist)
(setq compilation-error-regexp-alist
'(
("^[ \t]*\\([A-Za-z.0-9_: \\-]+\\)(\\([0-9]+\\)[,]\\(*[0-9]+\\))\\(Microsoft JScript runtime error\\| JSLINT\\): \\(.+\\)$" 1 2 3)
))
;;(make-local-variable 'compile-command)
(setq compile-command
(let ((file (file-name-nondirectory buffer-file-name)))
(concat "%windir%\\system32\\cscript.exe \\cheeso\\bin\\jslint.js " file)))
)
(add-hook 'javascript-mode-hook 'cheeso-javascript-mode-fn)
Le hook de mode s'exécute. Les différentes choses que je définis dans le mode crochet fonctionnent. Le compile-command
est défini. Mais pour une raison quelconque, la valeur compilation-error-regexp-alist
ne prend pas effet.
Si je fais plus tard un M-x describe-variable
sur compilation-error-regexp-alist
, il me montre la valeur que je pense qu'il devrait avoir. Mais .. les erreurs dans le tampon de compilation ne sont pas mises en évidence, et M-x next-error
ne fonctionne pas.
alt text http://i40.tinypic.com/drb3g4.jpg
Si j'ajoute la valeur regexp d'erreur au compilation-error-regexp-alist
via setq-default
, comme ceci:
(setq-default compilation-error-regexp-alist
'(
... jslint regexp here ...
... many other regexp's here...
))
... alors cela fonctionne. Les erreurs dans le tampon de compilation sont correctement mises en surbrillance et M-x next-error
fonctionne comme prévu.
alt text http://i40.tinypic.com/10nclxv.jpg
aha! Merci beaucoup. – Cheeso