I wrote a little compile helper plugin for emacs, I am not an emacs guru but it helps me<br><br><a href="https://github.com/daleharvey/dotfiles/blob/master/emacs/compile-helper/compile-helper.el">https://github.com/daleharvey/dotfiles/blob/master/emacs/compile-helper/compile-helper.el</a><br>
<br>With the following config<br><pre><div class="line" id="LC1"><span class="c1">(setq build-helper-files</span></div><div class="line" id="LC2"><span class="c1">       '(("Makefile" . "make")</span><br>
        <span class="c1"> (".couchapprc" . "couchapp push")))</span></div></pre>Whenever I press M-x compile (I bind to M-1) it will take the current directory and search backwards until it finds some file that it recognizes, in this case it is Makefile, I have my Makefile kick off a rebar compile. and am using mochiweb:reloader when running a development to which will hot load any newly compiled beam files.<br>
<br>If there are any errors during recompilation then an emacs buffer will popup with a link directory to the line the error was in, I also use distel + flymake mode to get syntax checking as I type so syntax errors are pretty rare.<br>
<br>I havent actually added distel to the setup - but the compile helper and erlang mode is in - <a href="https://github.com/daleharvey/dotfiles/tree/master/emacs">https://github.com/daleharvey/dotfiles/tree/master/emacs</a><br>
<br>Hope its handy<br>Dale<br><br><div class="gmail_quote">On 28 June 2011 16:33, Garrett Smith <span dir="ltr"><<a href="mailto:g@rre.tt">g@rre.tt</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Thu, May 12, 2011 at 12:39 PM, Mike Oxford <<a href="mailto:moxford@gmail.com">moxford@gmail.com</a>> wrote:<br>
> Write some code<br>
> C-c C-k to make sure it compiles<br>
> Spin a release (using rebar) in another window<br>
> Run the code in another window<br>
> Is there a better/more streamlined way to do this, all from within emacs (I<br>
> have erl running in another window.)<br>
<br>
</div>It's a bit more elaborate than what you're asking for, but I use Emacs<br>
and an Erlang shell under tmux, which provides a pretty nice workflow.<br>
<br>
Emacs is in tmux window 0, use for editing and compiling. I have a key<br>
binding for 'compile' (C-x C-m) and use a makefile in the src<br>
directory. This gives me a quick way to compile the app and use C-x ~<br>
to visit errors/warnings.<br>
<br>
I run erl in tmux window 1 and always keep it running. I have a<br>
'shell' target in my makefile that handles setting ERL_LIBS (or<br>
explicit path settings) and starts any apps that I typically work with<br>
under dev.<br>
<br>
In particular, and very importantly, I always start Mochiweb's<br>
reloader module (which would be a great addition to core Erlang!).<br>
This will watch loaded modules for changes and automatically reload<br>
them. So when I compile from Emacs and switch over to the erl shell,<br>
all my latest changes are available.<br>
<br>
This "long running" shell lets me play around, test, whatever as I<br>
modify code in Emacs. It's a more ad hoc mode than re-running tests<br>
from a newly started Erlang VM. It also gives you a feel for how<br>
Erlang apps can indeed "run forever" with loosely coupled components<br>
that can be restarted, reloaded, corrupted, repaired, etc.<br>
<br>
While I know it's a common work flow, I'm not a fan of generating<br>
releases and restarting erl for routine dev changes. I actually can't<br>
imagine doing that, given how seamless the 'reloader' workflow is.<br>
<br>
Btw, tmux in this case is optional -- you could do the same thing in<br>
Emacs. I like (strike that, love) tmux because it does for shell<br>
sessions what Emacs does for text files. If you happen to do a lot of<br>
dev on remote servers over ssh, tmux is a life saver if you lose your<br>
connection.<br>
<font color="#888888"><br>
Garrett<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br>