-
Notifications
You must be signed in to change notification settings - Fork 6
/
swank-gauche.el
39 lines (34 loc) · 1.18 KB
/
swank-gauche.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
;; -*- mode: emacs-lisp -*-
;; swank-gaucheを使うためのSLIME設定
;;
(defun gauche-init (file encoding)
(format "%S\n\n"
`(begin
(add-load-path ,swank-gauche-path)
(require "swank-gauche")
(with-module swank-gauche
(load-gauche-operator-args ,swank-gauche-gauche-source-path)
(start-swank ,file)))))
(defun gauche ()
"Gaucheを開始します"
(interactive)
(slime 'gauche))
;; `find-gauche-package' はバッファが属するモジュールを
;; "(select-module foo)" フォームを探して推定します。
;; モジュール化されたGaucheのプログラムソースファイルは
;; 大体select-moduleフォームを含んでいます。
(defun find-gauche-package ()
(interactive)
(let ((case-fold-search t)
(regexp (concat "^(select-module\\>[ \t']*"
"\\([^)]+\\)[ \t]*)")))
(save-excursion
(if (or (re-search-backward regexp nil t)
(re-search-forward regexp nil t))
(match-string-no-properties 1)
(slime-search-buffer-package)))))
(defun gauche-ref-lookup ()
(interactive)
(browse-url
(format "http://practical-scheme.net/gauche/man/?l=jp&p=%s" (thing-at-point 'symbol))))
(provide 'swank-gauche)