|  |  | Emacs Support

## Emacs Support

A rudimentary emacs-based development system is provided.

### Emacs Mode

Put `emacs/goo.el` in your emacs lisp directory. Add the following to your `.emacs` file:

    (autoload 'goo-mode "goo" "Major mode for editing Goo source." t)
    (setq auto-mode-alist
          (cons '("\\.goo\\'" . goo-mode) auto-mode-alist))

Useful features include the following. You can add "font-lock" mode by adding `(global-font-lock-mode t)` to your `.emacs`: In a given buffer, you can toggle font-lock with `M-x font-lock-mode`. Finally, check out the "Index" menu item in a GOO buffer for other options.

For even more fun, load `emacs/goo-font-lock.el` for a color coded parenthesis nesting aid 3.

### Emacs Shell

Put `emacs/goo-shell.el` in your emacs lisp directory. Add the following to your `.emacs`:

    (autoload 'run-goo  "goo-shell" "Run an inferior Goo process." t)
    (setq auto-mode-alist
          (cons '("\\.goo\\'" . goo-mode) auto-mode-alist))
    (setq goo-program-name "/home/ai/jrb/goo/goo")

make sure to set up the goo-program-name to correspond to your installation area.

Useful command / key-bindings are:

    M-C-x   goo-send-definition
    C-c C-e goo-send-definition
    C-c M-e goo-send-definition-and-go
    C-c C-r goo-send-region
    C-c M-r goo-send-region-and-go
    C-c C-z switch-to-goo

Check out `goo-shell.el` for the complete list of command / key-bindings. I doubt the compile commands do anything useful cause there isn't a compiler.

### TAGS

Emacs TAGS files can be generated by typing `make all-tags` in the `src` directory. Useful tags commands / key-bindings are:

    M-.     find-tag
    M-,     tags-loop-continue
            tags-search
            tags-query-replace

|  |  | Emacs Support