My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Links

Erlang server as TextMate plugin, native client (command line utility written in C) and a collection of TextMate commands, snippets and templates.

What is this good for ?

The Erlang server-as-textmate-plugin and native client will allow to write in Erlang additional TextMate functionality such as compiling Erlang source code, reloading, refactoring, integration with erlware, etc.

Current Features:

  • Ctrl-H: Documentation lookup (HTML popup) for function at current caret position (or main documentation index if caret is on whitespace).

Implementation details:

Instead of the original and much simpler approach of using escripts for commands attached to key bindings this approach has been chosen, where the command now is written as shell script and a native client interacts with an Erlang VM which runs in the background and is capable of keeping state between client requests. Other advantages:

  • Significantly faster than escripts (no VM startup delay)
  • No Erlang source code anymore in the TextMate embedded Command Editor, just small and simple shell scripts see example below for Ctrl-H (edoc lookup):
  • OUTPUT=`$ERLYMATE help $ERLANG_DOC`
    
    if [ "$OUTPUT" = "" ]; then
       echo "no edoc found"
    else 
       exit_show_html "$OUTPUT"
    fi

ToDo:

  • fix build command (was the first feature which worked, but is currently broken)
  • integrate an interactive erlang shell
  • Use tokenizer from Wrangler instead of erl_scan.erl (it adds column position)
  • replace the native command line utility with a Cocoa Version which nicely integrates into the XCode project for the Cocoa TextMate plugin

History:

See at: http://www.rsaccon.com/search/label/textmate

Project status:

Not ready for public use yet (e.g.: the code currently contains hardcoded values specific to the authors development environment, so you need to be familiar with all technologies involved to make it work for you ...)

January, 2008. I will not continue this project. However, if anybody wants to take it over, I can provide some guidance !

Powered by Google Project Hosting