Gauche mode for XEmacs

Last modified: $Date: 2008/04/23 16:37:56 $

Gauche-mode is a major mode for Gauche(A Scheme Implementation). This mode is derived from XEmacs' scheme-mode. Here is screenshot, current codes and README.

gauche-mode Functions

You will be able to use some scheme-mode functions and following gauche-mode functions.

gauche-apropos

Key in C-ca and type `car'.

Gauche Apropos(regexp): car

You will get following message in help window.

Apropos search for: "car"
p  car                                          (scheme)
p  car+cdr                                      (srfi-1)
p  car-sxpath                                   (sxml.sxpath)
p  cartesian-product                            (util.combinations)
p  cartesian-product-for-each                   (util.combinations)
p  cartesian-product-right                      (util.combinations)
p  cartesian-product-right-for-each             (util.combinations)
p  if-car-sxpath                                (sxml.sxpath)
p  set-car!                                     (scheme)

gauche-inferior-apropos

show apropos(gauche function) result in xemacs window.

gauche-complete-symbol

On editing buffer You'll get
(lam C-cC-i
=>
(lambda 
Or compeletion list in help window.
(use g C-cC-i
=>
(use gauche 

gauche-inferior-complete-symbol

Same as gauche-complete-symbol.(This version query to gosh.)

gauche-documentation-at-point

On editing buffer;

(car C-cC-d

You will get following message in help window.

Function: car pair
Function: cdr pair

  [R5RS] Returns car and cdr of pair, respectively.

gauche-which-module-at-point

On editing buffer;

(call-with-client-socket C-cm

You will get following message in the echo area.

`call-with-client-socket' is defined in `gauche.net'.

gauche-start-inferior-repl

start gauche process.(C-c s)

gauche-inferior-describe-symbol

Show describe(gauche function) result in xemacs window.

gauche-eval-definition

Send the current definition to the inferior gauche process.(M-C-x)

gauche-eval-region

Send the current region to the inferior gauche process.(C-c C-r)

gauche-eval-last-sexp

Send the previous sexp to the inferior Scheme process.(C-x C-e)

gauche-send-interrupt

Send interrupt signal to gauche process.(M-C-g)

gauche-indent-function

This function is not interactive lisp function. Some functions call this to indent line/region/defun. gauche-indent-function uses gauche-indent-regexp-alist for indentation. You can customize the indentation by using regexp. It is not necessary to put a symbol property at every macro definition. Default value of gauche-indent-regexp-alist is
'(("^define-\\w" . defun) ("^call-with-\\w" . 1) ("^with-\\w" . 1)).

If you want to override the indent style, you can use gauche-indent-prop-list.
for example:

(setq gauche-indent-prop-list '(((gauche-indent-function 0)
                                 call-with-something with-something)
                                ((gauche-indent-function 2)
                                 call-with-x with-x)))