AlphaTcl is the opensource collection of Tcl (Tool Command Language) code driving the Alpha* text editor engines:
AlphaTcl is not a text editor. It is a collection of utilities and infrastructure code which allows the above text editors to operate, and which implements a lot of the advanced functionality of those editors. All of the above editors implement a visual editing environment (windows, menus, dialogs, keyboard interaction, etc), and manage an application event loop, which together with AlphaTcl make a text editor. See AlphaFamilyOfEditors for details on the above editors.
Most of functionality of these editors is implemented in its collection of Tcl extension scripts that create the various modes, menus, and other features. All of these scripts use the building blocks provided by the core commands of the binary applications to create the user interface. Because these script files are not embedded in the core application, it is much easier to change various aspects of this interface, or to create additional modes, menus, and features. All of these script files are known collectively as AlphaTcl, which are maintained in the CVS.AlphaTclCVS.
AlphaTcl Version Numbers
The AlphaTcl library always has a version number associated with it. In between public releases of Alpha8/X/tk distributions, files in the AlphaTcl library are updated as necessary and the version number generally has a letter appended to the end indicating
Within these categories, the version number is periodically increased indicating that some significant number of changes have been made to the AlphaTcl library as a whole. For example, as of this writing the current development version of AlphaTcl is '8.0b2', which means that it is stable enough to be considered a 'beta' release, but development is continuing, and we're currently in the middle of the second round of changes.
Many, many of the fixes and changes below were provided by the Alpha user community. If there's something you don't like about Alpha, feel free to try to change/fix it. In particular, Jon Guyer, Daniel Steffen, Vince Darley, Johan Linde, Mark Nagata, Tom Fetherston, Dominique d'Humieres, Frédéric Boulanger, Chuck Gregory, Pierre Basso, Juan Falgeras, Andreas Amann, Craig Upright, Andreas Fischlin, Donavan Hall, Bernard Desgraupes, Lars Hellström, Joachim Kock deserve particular mention for their code contributions and fixes to the AlphaTcl library and its associated documentation. AlphaTcl and all its standard modes, menus and packages contain nearly 170000 lines of code!
Alpha 7.x, 8.x and Alphatk all rely upon the AlphaTcl library to perform most tasks. The AlphaTcl library in turn provides an API (a set of procedures, variables, interfaces) by which you can add new features. If written correctly, such additions will work seamlessly with any of Alpha 7.x, 8.x or Alphatk.
Examples of such additions may be to create a new mode, menu, add an item to an existing mode or menu, or simply add some missing functionality. Collectively all of these things are known as 'packages' or 'features'. Individual packages may be referred to as modes, menus or extensions depending upon their use.
See the Extending Alpha help file for more information: [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/alphatcl/Help/Extending%20Alpha?rev=HEAD&content-type=text/vnd.viewcvs-markup]
Because files in the AlphaTcl library are not embedded in the core, it is very easy for users to update their sources via the CVS.AlphaTclCVS. It is also possible for any user to change some of Alpha's behavior by modifying these files (using AlphaTcl's Tcl mode!) -- while this generally requires a minimal understanding of Tcl programming, often times fixes reported in AlphaBugzilla or in one of the AlphaTclMailingLists can be easily put in place by the user.
See the FAQ.ApplyingAlphaTclPatches page for more information.