;;; init.el --- This is where all emacs start. -*- lexical-binding: t -*- ;;; Commentary: ;;; Code: (defconst emacs-start-time (current-time)) (defun report-time-since-load () "Report how long it takes to load my Emacs configuration." (message "[after-init ]Loading init...done (%.3fs)" (float-time (time-subtract (current-time) emacs-start-time)))) (add-hook 'after-init-hook #'(lambda () (report-time-since-load)) t) ;;; Configure how to install packages (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/")) (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")) (add-to-list 'package-archives '("elpa" . "https://elpa.nongnu.org/nongnu/")) (package-initialize) ;; Auto-install use-package. (unless (package-installed-p 'use-package) (package-refresh-contents) (package-install 'use-package)) ;; This is only needed once, near the top of the file (eval-when-compile (require 'use-package)) ;;; Custom configurations (add-to-list 'load-path (expand-file-name "config" user-emacs-directory)) (require 'init-base) (require 'init-ui) (require 'init-project) (require 'init-snippets) (require 'init-completion) (require 'init-programming) (require 'init-eshell) (require 'init-writing) (report-time-since-load) ;; Local Variables: ;; byte-compile-warnings: (not docstrings lexical noruntime) ;; End: