(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

EmacsでScheme書くのに補完できないとめんどくさいなーと思ったので補完しようとしてみた。

とりあえず、auto-complite.elとscheme-complite.elを入れてみた。

ここらへん参照
環境設定例集
scheme-complete.el を auto-complete.el で使う

; auto-complite
(when (require 'auto-complete nil t)
  (global-auto-complete-mode t)
  (define-key ac-complete-mode-map "\C-n" 'ac-next)
  (define-key ac-complete-mode-map "\C-p" 'ac-previous))

; scheme-mode-hook
(defvar ac-source-scheme
  '((candidates
     . (lambda ()
         (require 'scheme-complete)
         (all-completions ac-target (car (scheme-current-env))))))
  "Source for scheme keywords.")
(add-hook 'scheme-mode-hook
          '(lambda ()
             (make-local-variable 'ac-sources)
             (setq ac-sources (append ac-sources '(ac-source-scheme)))))

; scheme-complete
(require 'scheme-complete)

(eval-after-load 'scheme
  '(progn
    (define-key scheme-mode-map "\e\t" 'scheme-smart-complete)
    (define-key scheme-mode-map "\t" 'scheme-complete-or-indent))
  )

(add-hook 'scheme-mode-hook
  (lambda ()
    (setq default-scheme-implementation 'gauche)
    (setq *current-scheme-implementation* 'gauche)
        (set (make-local-variable 'eldoc-documentation-function)
	 'scheme-get-current-symbol-info)
    (eldoc-mode t)
    )
  )