;;; .doom.d/config.el -*- lexical-binding: t; -*-

;; Place your private configuration here
;;
;; Set Font and theme
(setq doom-font (font-spec :family "Iosevka" :size 16)
      doom-theme 'doom-nord)
;; Start maximized
(add-to-list 'default-frame-alist '(fullscreen . maximized))
;; Set projects directories
(setq projectile-project-search-path '("~/Sync/Projects"))
;; Close compilation buffer if it went well
(setq compilation-finish-function
  (lambda (buf str)
    (if (null (string-match ".*exited abnormally.*" str))
        (progn
          (run-at-time
            "1 sec" nil 'delete-windows-on
            (get-buffer-create "*compilation*"))
          (message "No Compilation Errors!")))))
; Auto cleanup recentf
(setq recentf-auto-cleanup '300)
; Save backup files to ~/.cache and autosave files to ~/.cache/emacs
(setq backup-directory-alist `(("." . "~/.cache"))
      auto-save-list-file-prefix
        (concat "~/.cache/emacs"))
;; Set Magit repositories
(setq magit-repository-directories '(("~/Projects" . 2)
                                      ("~/.dotfiles" . 0)
                                      ("~/.doom.d" . 0)))
;; Display Magit status in fullscreen
(after! magit
  (setq magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1))
;; Load org configuration
(after! org (load! "+org"))
;; Disable line numbers in Markdown
(add-hook 'markdown-mode '(lambda () (display-line-numbers-mode -1)))
;; Reload file from disk without confirmation
(defun revert-buffer-no-confirm ()
  (interactive)
  (revert-buffer :ignore-auto :noconfirm))
;; Select target in Makefile compilation as default
(map! :leader :n "c c" #'makefile-executor-execute-project-target)
;; Match pdf-tools colors to the theme
(after! pdf-tools
  (setq pdf-view-midnight-colors '("#ECEFF4" . "#2E3440"))
  (add-hook 'pdf-tools-enabled-hook 'pdf-view-midnight-minor-mode))