diff options
Diffstat (limited to 'emacs/site-lisp/maze.el')
| -rw-r--r-- | emacs/site-lisp/maze.el | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/emacs/site-lisp/maze.el b/emacs/site-lisp/maze.el deleted file mode 100644 index 784049f..0000000 --- a/emacs/site-lisp/maze.el +++ /dev/null @@ -1,64 +0,0 @@ -;; [adj] movement and editing for lisp - -(provide 'maze-lisp) - -(defun maze--cur-end () - (push-mark) - (thing-at-point--end-of-sexp) - (let ((cur (point))) - (goto-char (mark)) - (pop-mark) - cur)) - -(defun maze--hl (beg end &optional buffer) - (let ((overlay (make-overlay beg end (or buffer (current-buffer))))) - (overlay-put overlay 'face 'highlight) - (setq maze-overlay overlay) - overlay)) - -(defun maze--unhl () - (if maze-overlay - (delete-overlay maze-overlay))) - -(defun maze--update-hl (beg end) - (if maze-overlay - (move-overlay maze-overlay beg end) - (maze--hl beg end))) - -(defun maze-forward (n) - (interactive "p") - (goto-char (or (scan-sexps (point) 2) (buffer-end 1))) - (thing-at-point--beginning-of-sexp) - (maze--update-hl (point) (maze--cur-end))) - -(defun maze-backward (n) - (interactive "p") - (let ((n (or n 1))) - (backward-sexp n)) - (maze--update-hl (point) (maze--cur-end))) - -(defun maze-inward (n) - (interactive "p") - (down-list n) - (maze--update-hl (point) (maze--cur-end))) - -(defun maze-outward (n) - (interactive "p") - (backward-up-list n) - (maze--update-hl (point) (maze--cur-end))) - -(defvar-keymap maze-mode-map - (kbd "j") 'maze-forward - (kbd "k") 'maze-backward - (kbd "l") 'maze-inward - (kbd "h") 'maze-outward) - - -(define-minor-mode maze-mode - "doc" - :keymap maze-mode-map - :init-value nil - :after-hook (progn - (setq-local parse-sexp-ignore-comments t) - (setq-local maze-overlay nil) - (font-lock-mode 1))) |
