;;; -*- lexical-binding: t -*- ;; ;; -------------------------------------------------------------------------------- ;; ======================================================== ;; || NOTE: This file is about compilation in Emacs. || ;; || For compiling in general, see ll-compile.el. || ;; ======================================================== (require 'luki-lisp) ;; -------------------------------------------------------------------------------- (-> 'compile) (-> 'll-close) ;; -------------------------------------------------------------------------------- (setq compilation-read-command nil) (setq compilation-scroll-output t) ;; -------------------------------------------------------------------------------- (defun find-digit (&optional rev) (let ((dig "[[:digit:]]")) (if rev (re-search-backward dig nil 'noerror) (re-search-forward dig nil 'noerror)))) (defun goto-prev-number () (i) (find-digit 'rev)) (defun goto-next-number () (i) (forward-char) (if (find-digit) (goto-char (match-beginning 0)) (backward-char))) ;; -------------------------------------------------------------------------------- (defun compilation-set-keys () (let ((kmap compilation-mode-map)) (set-close-key kmap) (keymap-set kmap "j" #'goto-prev-number) (keymap-set kmap "l" #'goto-next-number))) ;; -------------------------------------------------------------------------------- (defun compilation-mode-hook-f () (compilation-set-keys) (visual-line-mode)) (add-hook 'compilation-mode-hook #'compilation-mode-hook-f) ;; -------------------------------------------------------------------------------- (<- 'll-compilation)