;; MACROS (define TAB-LENGTH 4) (define QUIT-TIMES 1) ;; PACKAGES ;; First git clone it ;; (add-package "smart_delimiters") ;; FUNCTIONS (define editor-delete-next-char (lambda () ( (move-cursor "right") (editor-delete-previous-char) ) ) ) (define (char-between ch lo hi) (if (char>=? ch lo) (char<=? ch hi) #f)) (define (alphanumericp ch) (if ch (if (char-between ch #\a #\z) #t (if (char-between ch #\A #\Z) #t (if (char-between ch #\0 #\9) #t #f))) #f)) (define (word-char-p ch) (if (alphanumericp ch) #t (char= ch #\_))) (define editor-move-to-end-of-word (lambda () ( (if (word-char-p (editor-read-char)) ((move-cursor "right") (editor-move-to-end-of-word)) )) )) ;; KEY MAPPING (map-key "CTRL-q" editor-quit) (map-key "CTRL-d" editor-save) (map-key "ARROW-UP" '(move-cursor "up")) (map-key "ARROW-DOWN" '(move-cursor "down")) (map-key "ARROW-RIGHT" '(move-cursor "right")) (map-key "ARROW-LEFT" '(move-cursor "left")) (map-key "ENTER" editor-insert-new-line) (map-key "CTRL-a" move-cursor-beg-line) (map-key "CTRL-e" move-cursor-end-line) (map-key "BACKSPACE" editor-delete-previous-char) (map-key "DEL" editor-delete-next-char) (map-key "PAGE-UP" move-cursor-page-up) (map-key "PAGE-DOWN" move-cursor-page-down) (map-key "CTRL-o" editor-open-file) (map-key "CTRL-k" editor-del-row) (map-key "CTRL-s" editor-find) (map-key "CTRL-r" editor-move-to-end-of-word)