Welcome to AngelJuice IDE ! AngelJuice is a standalone scripting IDE host that aims to easy fast application prototyping. The goal is to build a complete embedded IDE with the capability to work in it to produce various kind of projects, in a fast easy way and without waiting hours loading full bloated libraries. Mainly is a fusion between a couple of extremely good c++ projects out there: JUCE (http://www.rawmterialsoftware.com/juce/) which is a cross platform framework in a clean java syntax (personally i don't like java, but i like java style coding in c++) with a lot of goodies and classes for everything that you'll need; and ANGELSCRIPT (http://www.angelcode.com/angelscript/) which is an extremely flexible cross-platform scripting library designed to allow applications to extend their functionality through external scripts. When i encountered these projects i really appreciated them for a lot of reasons: they're optimally written, they're working extremely well, they present an easy interface for doing extremely hard jobs, they've a great human touch behind thanx to the creators (Jules Storer and Andreas Jonsson). All is run through my juce extension, called eJUCE (extended JUCE) which is the link between a lot of good libraries out there (you can browse the sourceforge files @ http://svn.sourceforge.org/projects/ejuce/trunk/). Actually i've added svn repository at sourceforge, checkout sources main trunk @ http://svn.sourceforge.org/projects/angeljuice/trunk/ Todo for newer releases until 1.0.0 - replace step next with step into / step out (debugger) - replace debug toggle with run debug - improve line paint method for fonts with different ascent/descent and baseline - improve breakpoint paint method even more (now dependent to line height, and painted over line numbers in some cases) - improve configuration save on exit (window position, fullscreen, font, colors, ...) - improve load / save bytecode with also dependancies specified - improve save all open documents before compiling - fix when paste some text in the editor, the cursor position isn't correctly determined - fix how project xml files are saved - add code completion - add search and replace (in current script, opened scripts and files), with regex selectors - add options dialog with compiler setting (now empty) - add options dialog for project resolve directories - add save of last opened scripts files - add embedded help file and readme with F1 - add uploading a useful script or plugin to the angeljuice site - add internet check for new / updated plugins and scripts - add execute script / bytecode / project automatically if executed from command line - publish new classes for the "corelib" extension - (last but not least) port it to MacOSX Version 0.6.5 * regression to angelscript 2.7.1 (revision 39) cause a lot of changes internally Version 0.6.4 * updated juce library to 1.45 SVN * updated angelscript to 2.11.0 SVN * embedded external ejuce dependancies, now only juce is required + added the project/workspace tree view + added Code::Blocks linux project + added PathStrokeType and ImageConvolutionKernel classes + added "quit" and "abort" functions to quit/abort from the current script (useless until the command line version) + added "cast<>" operator thanx to the new additions of virtual machine underneath + added source control of the inclusion of the correct juce version + added toolbar setup of item set (also saved in config file) + added this. keywords is now no more mandatory in script classes ~ fixed an annoying linux bug when inserting some 3rd level characters (mainly "{" and "}") ~ fixed a bug in the linux InternetUpdateChecker (win32) ~ fixed a bug in the toolbar class related to how the icons were created (bad reference count) ^ improved toolbar, now using juce default toolbar instead of the old one ^ improved look and feel window drawing ^ now when in debug mode, you can set breakpoints and scroll in document ^ reorganized the classes and scripting objects ^ suppressed a series of warnings in gcc Version 0.6.3 * updated juce library to 1.38 + added now preferred colors in the text editor are saved as well + added error table now shows the errors/warnings from the preprocessor too ~ fixed error table bubble message component now works on linux also Version 0.6.2 * updated juce library to 1.36 + added a brief clickable error table for all the errors reported by the engine + added a bubble message component that will summarize the error string ~ fixed an annoying bad text colour bug when not using lexer in SyntaxTextEditor Version 0.6.1 * updated juce library to 1.35 + added premake for linux build - removed taskbar button for option window ^ improved now the application can be built on linux (still a bit buggy) ^ improved internal Graphics class support Version 0.6.0 * updated angelscript to current svn revision (39) now with compiler message struct ^ improved how xml files for project are saved. now they're more readable ^ improved breakpoint are now linked to lines when adding or removing them ~ fixed untitled scripts can be saved as well with simple ctrl + s ~ fixed a problem in the internet update check Version 0.5.11 ~ fixed a possible overflow problem in the plugin example ~ fixed a problem in the internet update check Version 0.5.10 + added application global undo/redo on the open document + added automatically add/remove compiled script directory to resolve paths + added current script cloning + added automatically check for updates (off by default) + added #pragma warnings "on"/"off" for tweak warning reporting from scripts + added line indicator where current script is executed (not only line highlight) + added save a project bundle as self contained xml with all script inline + added an empty config page + added generic InputStream internal class - removed glitchy unfinished code completion ^ improved messages on current thread are dispatched also while running script (alby) ^ improved now is possible to abort a long running script (alby) ~ fixed a potential risk when debuggin variables values (string buffer overflow) ~ fixed ctrl + a was triggering open script and not select all in the text editor (alby) ~ fixed after a good or bad run, the toolbar buttons were not updated correctly Version 0.5.9 - (1st public release: 14/06/2006) + added plugin possibility to select appendMode when output string to the IDE debug output - removed internal alert window when exception occurred (mainly for testing incompatibilities) ^ improved plugin variable value in callstack now have no limitations on the string size to pass to the ide ^ improved compilation settings, but still there is much to do (vcexpress) ~ fixed toolbar buttons behaviour now reflecting the command they represent ~ fixed toolbar toggles buttons now responds correctly to commands toggle changes (juce fix) ~ fixed '\t' character size when changing font was not correctly determined ~ fixed problem when running angeljuice on old machines with no mmx/sse instructions Version 0.5.8 + add load / save of keymappings (have to clean up how app do this) ~ fixed a bug when debugging current script without a file associated Version 0.5.7 * updated angelscript to current svn repository (couple of assert reach fixed) + added '#pragma engine "reset"' for reset the engine configuration + added support for plugins to register their functions for output strings in the ide ^ improved when an exception is catch now is reported to the user ~ fixed '\t' character was not correctly added to the text editor ~ fixed if script is an untitled script, current file in debug error output wasn't correctly determined Version 0.5.6 ^ improved now when closing a modified document it ask you if you want to save it before ~ fixed bug calling for current document pointer when no documents opened - removed button from toolbar for full screen (the command is still on testing) Version 0.5.5 * updated juce library to 1.34 (command targets side effects in this version) + added now toolbar buttons listens to commands state correctly Version 0.5.4 + added open every file, SyntaxLexer is used only for files with preferred extension (for speed) + added tab name is updated to show if the file has been modified + added selection of preferred string extension (only internal, not present in options!) ^ improved replace #require "corelib" with #pragma extension "corelib" for loading internal classes ^ improved replace #require "plugin.dll" with #pragma plugin "plugname.dll" for loading external plugins Version 0.5.3 + added initial capability of loading/saving bytecode (no security checks! be careful) + added proper type cast for variable value of internal types when debugging ^ improved now internal extension are not loaded by default (using #require "core" do the job) ^ improved interface for plugins libraries ~ fixed if the script has 0 size, the engine will throw an assert and leak ~ fixed option window could trigger modal loop twice ~ fixed in some cases the error line when compiling wasn't correctly determined Version 0.5.2 * updated juce library to 1.33 * updated angelscript library to 2.7.0 wip + added save current font in config file + added an empty statusbar component that will reflect compiler status ^ improved coalesced callstack and variables on stack on a single component for easy browsing ^ improved font change speed in syntax document ^ improved reorganized directories and files cause the project is growing fast ~ fixed a bugs when a script was #included but not opened in the ide (in debugging mode only) ~ fixed a bug in the callstack output function order ~ fixed a bug when debugging lines in multiple script Version 0.5.1 + added options dialog, with key mappings, font selector and about box ;) + added toolbar button for exit application Version 0.5.0 ^ improved multi document debug, switching to the correct document when #include ~ fixed a couple of minor bugs in the preprocessor support ~ fixed a minor bug in the compilation section ~ fixed when preprocessor failed, the script continue to run (with errors of course) ~ fixed when plugins failed to load, nothing was returned Version 0.4.4 ~ fixed syntax lexer reparsing multiline comments when pressing keys ~ fixed texteditor's breakpoints paint method ~ fixed texteditor's line paint method Version 0.4.3 + added a basic support for external plugins libraries ^ improved new syntax lexer for the embedded text editor Version 0.4.2 + added recent file list ^ improved breakpoint support ^ improved preprocessor support, with better error output Version 0.4.1 + added line numbers in the texteditor + added menu for breakpoints toggle and clear ~ fixed variables output leak in certain situations Version 0.4.0 * updated juce library to 1.32 + added toolbar with command buttons + added capability of showing the callstack + added capability of showing the variables on stack + added menu entries for abort, continue, step next ~ fixed bug when debugging multiple scripts Version 0.3.4 + added basic breakpoint support + added file save, save as load with correct activation + added common cut/copy/paste in system clipboard Version 0.3.3 + added internal ComponentBoundsConstrainer script class + added internal ComponentDragger script class + added internal Desktop script class Version 0.3.2 + added internal ModifierKeys script class + added internal KeyPress script class + added internal MouseEvent script class + added internal ComponentPeer script class ^ improved Component class Version 0.3.1 * updated juce library to 1.31 ~ fixed when aborting debug the texteditor wasn't clearing state ^ improved Component support now with Timer inclusion Version 0.3.0 + added basic capability of syntax highlight words int the text editor + added debug mode run + added a text editor for generic ide output + added option for checking online newer versions ^ improved Component class ^ improved Graphics class Version 0.2.8 ~ fixed bugs when calling some function in the Component class Version 0.2.7 + added basic component scripting through Component linker class Version 0.2.6 + added internal DirectoryIterator script class + added internal Random script class + added internal SystemStats script class + added internal "math.h" script functions + added initial xml support, actually leaking in a couple of use cases Version 0.2.5 + added internal Graphics script class + added internal AffineTransform script class + added internal Colour script class + added internal Font script class + added internal Path script class + added capability of output image into a component + added capability of load / save image to file Version 0.2.4 + added internal Image script class + added internal Point script class + added internal Rectangle script class + added internal Line script class Version 0.2.3 + added internal FileChooser script class + added internal URL script class + added internal MD5 script class Version 0.2.2 + added internal FileOutputStream support + added internal FileInputStream support Version 0.2.1 + added internal String support + added internal Regex support + added internal File support + added possibilities of calling alert/warning/ask modal boxes Version 0.2.0 + added preprocessor support (thanx to Deyja library) + added tab interface for holding more than one script at once + added a component for generic ide output + added application menu Version 0.1.0 * initial release of the ide