;; TODO: Multiple values ;; TODO: Multiple expressions ;; TODO: Debugger ;; TODO: Switching languages (define-module (catbird repl) #:use-module (catbird line-editor) #:use-module (catbird kernel) #:use-module (catbird mode) #:use-module (catbird node) #:use-module (catbird node-2d) #:use-module (catbird region) #:use-module (catbird ring-buffer) #:use-module (catbird scene) #:use-module (chickadee graphics color) #:use-module (chickadee graphics path) #:use-module (chickadee graphics text) #:use-module (chickadee math vector) #:use-module (ice-9 exceptions) #:use-module (ice-9 match) #:use-module (oop goops) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (system base compile) #:use-module (system base language) #:export ( resize-repl)) (define %background-color (make-color 0.0 0.0 0.0 0.9)) (define (make-user-module) (let ((module (resolve-module '(guile-user) #f))) (beautify-user-module! module) module)) (define-class () (language #:accessor language #:init-value (lookup-language 'scheme)) (module #:accessor module #:init-thunk make-user-module) (max-line-length #:accessor max-line-length #:init-value 256) (log-lines #:accessor log-lines #:init-form (make-ring-buffer 64))) (define-method (on-boot (repl )) (attach-to repl (make #:name 'background) (make