about summary refs log tree commit diff stats
path: root/chicken/csirc
blob: ac2ef22ce538b9b9133ded6e74284b6b1c6f101f (plain)
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
;;; csirc --- initialization file for chicken scheme interpreter -*- scheme -*-
;; import ease-of-life stuff
(set! ##sys#notices-enabled #f)
(import (chicken load))
(load-verbose #f)
(import (utf8))
;; chicken-doc
(require-library chicken-doc)
;; set up breadline
(let ()
  (import (chicken format))
  (import (chicken process-context))
  (import (chicken process signal))
  (unless (get-environment-variable "INSIDE_EMACS")
    (import breadline)
    (import breadline-scheme-completion)
    (history-file (format "~a/chicken/csi_history"
                          (or (get-environment-variable "XDG_DATA_HOME")
                              (format "~a/~a" (get-environment-variable "HOME")
                                      (".local/share")))))
    (stifle-history! 10000)
    (completer-word-break-characters-set! "\"'`;|(")
    (completer-set! scheme-completer)
    (basic-quote-characters-set! "\"|")
    (variable-bind! "blink-matching-paren" "on")
    (paren-blink-timeout-set! 200000)
    (let ((handler (signal-handler signal/int)))
      (set-signal-handler!
        signal/int
        (lambda (s)
          (cleanup-after-signal!)
          (reset-after-signal!)
          (handler s))))
    (on-exit reset-terminal!)
    (current-input-port (make-readline-port))))
(set! ##sys#notices-enabled #t)