drewc / drewc-r7rs-swank

Swank server for r7rs Schemes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Drewc’s Fork.

Gerbil is as gerbil does.

gxi -e "(import :drewc/r7rs/gerbil-swank)" -e "(start-swank)"

No Handler Found

(def swank-no-handler-found.orig #f)

(unless swank-no-handler-found.orig
  (set! swank-no-handler-found.orig
    swank-no-handler-found))

(def handler-table (make-table))



Fuzzy Completions


Swankish, a SLIME swank for Schemes

Schemes

Support for various Schemes varies in quality. Not everything works on every Scheme.

See each Schemes entry for how to configure it in your Emacs configuration.

Chibi Scheme

(defun chibi-scheme-start-swank (file encoding)
  (format "%S\n\n" `(start-swank ,file)))
(setq slime-lisp-implementations
      (cons '(chibi-scheme ("chibi-scheme" "-A/path/to/r7rs-swank" "-m" "(chibi-swank)")
                           :init chibi-scheme-start-swank)
            slime-lisp-implementations))

Gerbil Scheme

(defun gerbil-scheme-start-swank (file encoding)
  (format "%S\n\n" `(begin (import (ecraven gerbil-swank)) (start-swank ,file))))
(setq slime-lisp-implementations
      (cons '(gerbil-scheme ("gxi" "-:d-" "--lang" "r7rs")
                            :init gerbil-scheme-start-swank
                            :env "GERBIL_LOADPATH=/path/to/r7rs-swank/")
            slime-lisp-implementations))

Chez Scheme

You’ll also need https://github.com/ecraven/chez-scheme-libraries.

(defun chez-scheme-start-swank (file encoding)
  (format "%S\n\n" `(begin (import (chez-swank)) (start-swank ,file))))
(setq slime-lisp-implementations
      (cons '(chez-scheme ("chez-scheme" "--libdirs" "/path/to/r7rs-swank:/path/to/chez/libs")
                          :init chez-scheme-start-swank)
            slime-lisp-implementations))

Gauche

(defun gauche-scheme-start-swank (file encoding)
  (format "%S\n\n" `(begin (import (gauche-swank)) (start-swank ,file))))
(setq slime-lisp-implementations
      (cons '(gauche-scheme ("gosh" "-r7" "-A/path/to/r7rs-swank" "-l" "gauche-swank.sld")
                            :init gauche-scheme-start-swank
                            :env "GAUCHE_KEYWORD_IS_SYMBOL=T")
            slime-lisp-implementations))

Chicken Scheme

(defun chicken-scheme-start-swank (file encoding)
  (format "%S\n\n" `(begin (load "chicken-swank") (start-swank ,file))))
(setq slime-lisp-implementations
      (cons '(chicken-scheme ("csi" "-R" "r7rs")
                             :init chicken-scheme-start-swank
                             :directory "/path/to/r7rs-swank/")
            slime-lisp-implementations))

Kawa

(defun kawa-start-swank (file encoding)
  (format "%S\n\n" `(begin (import (kawa-swank)) (start-swank ,file))))
(setq slime-lisp-implementations
      (cons '(kawa ("kawa" "-f" "kawa-swank.sld" "-e" "(eval (read) (interaction-environment))")
                   :init kawa-start-swank
                   :directory "/path/to/r7rs-swank/")
            slime-lisp-implementations))

[3/6]

  • [ ] proper information about the current Scheme
  • [X] redirect output to Slime
  • [X] inspector
  • [ ] debugger
  • [ ] tracing
  • [X] image support

About

Swank server for r7rs Schemes

License:GNU General Public License v3.0


Languages

Language:Scheme 99.1%Language:Shell 0.9%