Arexx Quick Reference

 

The project information window is specific to the type of project currently being worked on. This overview explains the options available to the Arexx project.

 

Top Tip
While you can type a path into the relevant string gadgets, a file requester can be invoked by clicking the button making it easier to select paths from the resulting requester.

 

General Settings

Arexx General Settings

The General settings allow basic options to be set, the following is a complete description:

  • Project Name
    This sets the name of the project which will be displayed in the title of the CodeBench screen and the project window. It is also used as the name of the project file on disk, which will be added to the recent list.

  • Project Base Directory
    This sets the base directory that all files will be loaded from. Files can be loaded from anywhere, but this directory will always be the default in the file requester when adding files.

  • Add new filetype

    File Recognition
    As the only requirement for an Arexx script is that it MUST start with a comment, this makes it very difficult to determine whether a text file is actually an Arexx script or not.

    Arexx is used by many applications available for the Amiga, but unfortunately most applications seem to use their own naming system for their scripts. Therefore, the only way CodeBench can recognise an Arexx script is by its file suffix. Because of the vast amount of possibilities this presents, the plugin allows you to define file suffixes that CodeBench should recognise as being an Arexx script.

    By default, .rx and .rexx are defined, which seriously limits the range of loadable scripts. To increase that range, we click on the "Add" button where we can add a suffix.

    As the name suggests, the first gadget is where you enter the actual file suffix. Make sure to enter ONLY the suffix (for example: .amirc or .yam), do NOT enter any pattern matching characters, as these are added internally by CodeBench when trying to find matching files.

    The second gadget is any optional comment you may want to add. As previously mentioned, applications tend to use a naming convention that roughly matches the script name to the application, so most scripts are quite obvious as to which application they are appropriate to. In the case of the more ambiguous suffixes, the comment added here is shown in the main list on the general page (as above).

    Once you are happy with your addition, click the Save button, and the new suffix will be added to the main list.

    File suffixes you add here are not only applicable to the current project, but any project that uses the Arexx project type. This saves having to enter the same information for each and every Arexx project you create.

  • This project uses a local file repository
    Specify if this project should be synchronized with a remote file server.

  • Synchronize plugin name
    CodeBench currently includes plugins for CVS and SVN use. These are by no means complete, and as such we have included a developer kit and documentation to allow further development of these plugins. The SDK includes an example, which when compiled, creates the cvs plugin supplied. The SVN plugin is also based on the same example code but is slightly more advanced as it offers a system to get the user name and password via a prompt requester. Once this option has been selected, the plugin then does it's job, and it runs synchronously meaning that CodeBench will wait until the plugin has finished transferring files. Please see the example documentation in the sdk/synchronizing_plugin directory for more information. Manual synchronizing is done via the " Synchronize" menu item.

  • Check for repository update after loading
    If the current project being loaded is specified to be synchronised with a remote repository, then this option will automatically scan that repository to determine whether any files need to be updated into the working copy before proceeding with the project.

  • Check for repository commit when closing
    Again, if this project uses a remote repository, then this option, when enabled, will check to see if any files in the local "working" copy have been changed and should be committed to the repository before closing the project.

    As an added bonus, a fully featured plugin has been included for use with SVN servers, and more details can be found here.

back to the top

 

 

Environment

Arexx Environment Settings

These settings specify ways to affect the environment that you will be working in. There are three sections, the first deals with how the "Quick-Link " window is presented, the second affects how the editor interprets lines after which to automatically indent/outdent lines, and the last deals with code "constructs".

The Quick-Link section:

  • Identify bookmarks ...
    This is the symbol string that the user may embed into the source file. When this sequence of characters is found, the text that comes after it is treated as a bookmark. This is useful for marking certain areas of files so that the location can be revisited quickly. The marker needs to be suitable as to not interfere with the general syntax of the source file.

  • Fold functions/procedures section
    This setting will allow the function section in the " Quick-Link" window to open in the collapsed state. This setting is relative to the current state of the associated section.

  • Fold bookmarks section
    This setting will allow the bookmarksection in the " Quick-Link" window to open in the collapsed state. This setting is relative to the current state of the associated section.

 

The Auto-Indentation section

This section is comprised of two lists, the first for adding indentation and the second for removing indentation. Both lists work in the same way, so we shall describe them both here in the same context.

Adding items can be done by clicking on the "Add Indent" or "Add Outdent" buttons to add to each list respectively. The resulting requester asks for a string of characters with which a match must be made for the appropriate action to be taken. Due to the highly versatile nature of programming languages, in order to simplify this process, the strings can include wildcard patterns exactly the same as used by AmigaDOS. This allows a level of flexibility which should meet the needs of even the most demanding rules. Most languages use braces to delimit sections of code, and the general programming standard is to indent the code inside the braces, which can now be automated. Adding an "{" to the indent list will cause the cursor to be shifted in by a certain amount of columns depending on the size of the "tab" set. A "tab" can either be a real tabulation character, or you may opt to insert a series of space characters instead, it is entirely upto you.

To add flexibility, we can also add a string like "case #?:". This follows the wildcard convention and results in any line ending with a "case" statement should automatically indent.

Items in either list can be removed by simply selecting them, and clicking the "Remove" button.

All of the settings in this section (with the exception of the width of the TAB - which is project specific) are applicable to the current project type, rather than the project itself. This means that the configuration of these lists will apply to all projects that use the same plugin, and saves having to configure the indentation settings for every project.

Different project types can have different indentation settings, and gives the user full flexibility over indents and outdents.

The width of the TAB (whether it be a real tabulation or spaces) is a project specific setting which defaults to 4 columns. This allows the user to configure different settings for different projects, which may be useful when sharing code with other developers, or when using different project types.

back to the top

 

Code Constructs section

  • Edit Constructs
    You may envoke the construct editor from here. More information on code constructs is available from the editor page.

back to the top

 

 

Valid XHTML 1.0 Transitional This is a W3C checked and compliant webpage.