# Emacs mode for CMT

***** Preliminary version v0.4 *****
Antoine Pérus

The CMT mode for XEmacs is intended to help editing CMT requirements files. At the current time it allows coloration of files, keyword completion and adds some specific keyword motions.

For more informations, type Ctl-h m

CMT mode was only tested with XEmacs (formerly Lucid Emacs) version 21.5 on my PowerBook with MacOS 10.3.3 ...

In addition, CMT mode now works with FSF Emacs version 21.2.1 in a slightly limited way. It may work with some earlier versions, but has not been tested.

## Files

- `cmt-mode.el` source file of CMT mode
- `init.el` an example for a XEmacs init file

## Installation for XEmacs

To install CMT mode, you need to insert the following lines into your `$HOME/.xemacs/init.el` file.

    =========================================================

    ;; Tell xemacs where to look for CMT mode
    ;;      [useless if you put the cmt-mode.el in a directory in your load-path]

        (setq load-path (cons "<PATH-TO-CMT-MODE>/" load-path))

    ;; Automatically load the CMT mode.

        (autoload 'cmt-mode "cmt-mode" "CMT requirements file editing mode." t)
        (setq auto-mode-alist
           (append (list (cons "requirements$" 'cmt-mode))
                   auto-mode-alist))

    =========================================================

[note that this may also work with recent versions of Emacs]

The hook needed to attach local keybindings is already defined in `cmt-mode.el`. [For more informations, see `Ctl-h m` when editing a requirements file]

In addition, we provide a XEmacs init file example in the distribution kit with two functions for commenting or uncommenting regions as well as the keybindings to use them inside the CMT mode.

## Todo

Things I'd like to do (quickly) in CMT mode: (in approximate order of importance)

- full support of CMT keywords
- decent indentation
  - syntax parser
  - indentation engine ?
- contextual completiony
- ??

## Note

As already said it is a very preliminary version. Some structures are in place but very few features are fully implemented. Last but not least I'm not a lisp expert and this mode is my first attempt.

Please feel free to submit bugs and suggestions.

Last modified: Tue Mar 23 14:31:44 CET 2004