March 26, 2008 3:12 PM
GnuEmacs is my main IDE and even though Flex Builder 3 has features1
to kill for, M-x compile
has to work flawlessly for me. But the
problem with Emacs's M-x compile
is that it starts a process each
time. This can slow down things when you're working with a really
large flex project and mxmlc has to load on each compile. I'm
impressed with the speed and awesomeness of the Flex Compiler Shell,
so I've hacked M-x compile
to re-use an existing instance of the Flex
Compiler Shell on each recompile. Also, I got compilation-mode
to
recognize errors spit out by mxmlc
and fcsh
so that C-x `
takes you to
the correct line of the file where the error / warning was found.
Installation is pretty simple, just grab ani-fcsh.el off the
Code Archives page, customize some variables like the path to fcsh and
output path to suit your environment and load ani-fcsh.el when emacs
starts up by putting this in your .emacs
:
(load "pathtofile/ani-fcsh.el")
To use ani-fcsh, run M-x fcsh-compile
when you are visiting the buffer
of the MXML file you want to compile. This will start off fcsh in the
compilation buffer, run mxmlc buffername -o configuredoutputpath
and
display results. Next time when you run M-x recompile
or M-x compile
,
it will clear the buffer and send compile 1
to the fcsh process in the
compilation buffer without killing and starting a new fcsh instance.
To restore the normal operation of M-x compile
, run M-x
fcsh-restore-compile
.
Use this along with actionscript-mode for smoother flex development on Emacs.
If you only want M-x compile
to recognize errors and warnings while
using mxmlc
, then put the following snippet in your .emacs:
(require 'compile) ;; To let compile understad flex error / warning messages. This regexp ;; has been tested only on win. (add-to-list 'compilation-error-regexp-alist 'flex) (add-to-list 'compilation-error-regexp-alist-alist '(flex "^\\(.*\\)(\\(.*\\)):.* \\(Error\\|Warnin\\(g\\)\\): .*$" 1 2 nil (4)))
[1] Profiling and debugging rocks with Flex Builder 3!