;; MACROS (define TAB-LENGTH 4) (define QUIT-TIMES 1) (define THEME "dark") (define LSP #t) ;; 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 #f)) (define editor-move-to-end-of-word (lambda () ( (if (word-char-p (editor-read-char)) ((move-cursor "right") (editor-move-to-end-of-word)) )) )) (define enter-and-tab (lambda () (editor-insert-new-line) (let ((is-in (move-cursor "up"))) (do ((ch (editor-read-char) (editor-read-char))) ((and (not (char=? ch #\space)) is-in) #f) (move-cursor "down") (editor-insert-char " ") (set! is-in (move-cursor "up"))) (move-cursor "down")))) (add-prefix "user") (map-key "CTRL-x" '(editor-set-prefix "user") "no-prefix") (map-key "CTRL-g" '(editor-set-prefix "no-prefix") "user") (map-key "CTRL-c" editor-quit "user") (map-key "CTRL-s" editor-save "user") (map-key "ARROW-UP" '(move-cursor "up") "no-prefix") (map-key "ARROW-DOWN" '(move-cursor "down") "no-prefix") (map-key "ARROW-RIGHT" '(move-cursor "right") "no-prefix") (map-key "ARROW-LEFT" '(move-cursor "left") "no-prefix") (map-key "ENTER" enter-and-tab "no-prefix") (map-key "CTRL-a" move-cursor-beg-line "no-prefix") (map-key "CTRL-e" move-cursor-end-line "no-prefix") (map-key "BACKSPACE" editor-delete-previous-char "no-prefix") (map-key "DEL" editor-delete-next-char "no-prefix") (map-key "PAGE-UP" move-cursor-page-up "no-prefix") (map-key "PAGE-DOWN" move-cursor-page-down "no-prefix") (map-key "f" editor-open-file "user") (map-key "TAB" editor-insert-tab "no-prefix") (map-key "CTRL-s" buffer-find "no-prefix") (map-key "CTRL-r" buffer-find-reverse "no-prefix") (map-key "ARROW-RIGHT" editor-switch-next-buffer "user") (map-key "\"" editor-split-screen-vertical "user") (map-key "o" editor-switch-next-pane "user") (map-key "*" editor-unify-panes "user") (map-key "CTRL-y" editor-paste "no-prefix") (map-key "CTRL-k" editor-cut-end-line "no-prefix") (map-key "a" editor-move-cursor-beg-buffer "user") (map-key "z" editor-move-cursor-end-buffer "user") (map-key "CTRL-h" editor-auto-complete "no-prefix") (map-key "C-x" lsp-complete "user")