SRecode is an infrastructure for managing Emacs based templates which, in turn, are used to write code, possibly based off of Semantic generated tags.
SRecode is not just another templating system for Emacs like skeleton or tempo. The core SRecode template system is not more feature rich or capable than it's predicessors. SRecode becomes powerful when you combine the template cataloging system and naming conventions which allows complex applications to be written where users can override core formatting bits with ease.
Templates are written in special .srt files which are then parsed by Emacs into a hierarchical database of context assocated templates. Simple templates are extracted by name and context to fill in empty files, add functions, or comments. The core template text is based loosely on Google ctemplate with dictionaries and fancy Emacs specific macro substitution.
More complex application specific templates are a mix of Emacs Lisp code and templates. Creating a template based application is a breeze in SRecode where dictionaries can be created and applied to the the template catalog. A single Emacs Lisp application can actually write code to do the same thing in multiple languages based on a strong set core templates for each language.
SRecode will become the code generator for COGRE, allow users to create an object system via UML and then write it out into most languages that have SRecode template support.
If you want to use SRecode for an application, be sure to susbscribe to the cedet-devel mailing list to get help when the info manual doesn't answer your questions.
The image on the right shows a small section of the C/C++ base template. It shows the basic format of the SRecode template language. It includes some basic variable settings, and the "empty" template. The "empty" template is activated if a file is empty. That template includes the "header_guard" template. Automatic section variable HEADER includes it if the empty file is a .h file. All variables used in these templates are automatic, so you do not need to answer questions when inserting these.
Check it out
All the CEDET tools are available from a single distribution file to ease installation.
Latest Stable Release: CEDET 1.1
Try out cedet-1.1.tar.gz.
CEDET 1.1 includes all the security fixes from 1.0.1, a long list of bug fixes, and additional new features to support Java, Android and Arduino programming!
Our goal for CEDET 1.1 is that this will be the LAST release using the current install and file organization schemes. This will also be the last release to support Emacs 22! Future released versions will use a new file system scheme compatible with Emacs 24.<
After building CEDET 1.1, consider joining the mailing list and help make CEDET better.
Previous Stable Release: CEDET 1.0.1
The previous stable release is cedet-1.0.1.tar.gz. You will need CEDET 1.0.1 for older versions of Emacs, such as Emacs 21 or 22.1.
About this Security Release:
Did you find a bug?
If you encounter problems with a CEDET release, those issues may have already been fixed in Git! CEDET has an active community of users that help identify and fix these issues quickly. You can check the mailing list archives or just try the Git version directly.
When using CEDET from Git, please note that we are transitioning to a new file and install scheme to be more compatible with Emacs 24. Changes will be required in your .emacs.
Emacs Version Support:
CEDET 1.0.1, and 1.1* has TWO automated build processes, one via Make, and the other via starting Emacs, and executing a build command.
This table shows the automated testing done for the release of CEDET 1.1:
Emacs 21 CEDET's test suite will fail, but most parts still work for CEDET 1.0.1.
XEmacs Neither build process works with XEmacs 21.4. It is possible to build parts of it by hand it so it works however.
SXEmacs We have integrated patches to support SXEmacs, but we haven't tested it ourselves. Parts of CEDET have been reported to install and work.
If you do not have cygwin, you will need to use the cedet-build.el
script to build CEDET.
Copyright(C) 1997,98,99,2000,01,02,03,04,05,06,07,08,09,10,11 Eric M. Ludlam
Verbatim copying and distribution is permitted in any medium, provided this notice is preserved.