ScrIDE is an OS-X based IDE for scripting languages.  It was born from the ashes of PyOXIDE (a Python IDE), rewritten to fix some of the underlying weakness in PyOXIDE.  Unlike PyOXIDE, it isn’t tied to a single version of Python (and its associated extensions) - for that matter, it isn’t tied to Python at all. Instead, includes varying degrees of support for Lua, TCL, and Ruby (and is extensible enough that it can allow other languages as well) - Python is just a “first citizen” (and an exemplar for its features, and currently the more advanced features are only available to Python).
ScrIDE basically is composed of four parts:
  1.  Source code editors
  2.  Interactive Shells
  3.  Symbolic debugger
  4.  Support modules
Source Code Editors
The source code editor includes support for syntax coloring, “smart formatting” (for example, hitting return after starting a block will automatically indent), split panes, navigational function popups, line numbers, tool tips, auto completion, incremental search, regex find/replace, and various other commonly expected editor capabilities.  It also includes the ability to write commands to extend the editor - for example, you can add a small script to take the current selection and look it up in some online documentation, or evaluate it, perform some formating on it, etc...  The results can then be used to replace the selection, append to the document, shown in a new window, shown in a status bar, used as HTML to be displayed in a web browser window (which would allow you to even create an entire UI using HTML + JavaScript), and a variety of other options.  Using this extensibility, ScrIDE can provide language specific help, syntax checking, “lint” checking and a number of other features - all tied to whatever language you happen to be using (and extensible to allow you to add support for your own language).
Interactive Shells
ScrIDE provides the ability to have an interactive shell based on the language you choose.  There are several layers of support - from a simple terminal style  IO, to “rich shells”, which use a language specific front end to provide sophisticated command history, syntax coloring, auto-completion, and other documentation and introspective features.
 
 
 
Source Level Debugging
ScrIDE provides the ability to execute your code with a source debugger.  This debugger includes the formatted source, call stack, breakpoints, variable & object display (including the ability to edit the variables), step, step in, step out, and other such capabilities.  The debugger can also be set to be invoked in the case of a program exception, or post-mortem examination of your program state.
The debugger also includes the ability to execute a shell within the context of your debugging environment, allowing you to further examine and change your variables, or even call other functions or routines in your code.
Support Modules
The extensibility of ScrIDE with its ability to spawn new windows to display text, HTML (or open a URL in a built in browser window), or (coming soon) interactive “dot” graph files, allows ScrIDE to have a variety of language and environment specific support tools.  For example, Python mode includes the ability to use PyDoc to browse through the online Python module documentation.  One of the goals of a future release is to include a class hierarchy graph as well.
Current Features
Currently, Python is the only language that includes the full support of all of these features.  Lua, TCL, and Ruby all include basic editor support and shell support, but no debugger or “rich shell” support yet (since OS X does not include Lua, a bundled version of the lua interpreter is embedded with ScrIDE).  It is expected that Lua rich shells will be forthcoming, and hopefully debugger support as well.  Ruby support is also possible, with TCL having more limited capabilities.  ScrIDE is, of course, a work in progress, and so is not at all suitable for mission or life critical work.
Extending ScrIDE
ScrIDE is extensible by writing a combination of “property list” files to tell ScrIDE what to do, and additional shell script (or other language scripts or tools) to actually perform the work.  ScrIDE does not currently directly embed any specific language interpreter, freeing it of external dependancies.  An extensive PDF document is included covering these various capabilities, as well as gory details on how the debugger communications between the ScrIDE UI and that target process work (it’s based loosely on the gdb-mi interface, with some extensions for scripting languages and rich interactive console support - the “rich consoles” use a subset of the debugging interface).
 
 
ScrIDE