summary refs log tree commit diff
path: root/init.el
blob: 0646a4e7d732e11e06968dd218dbfcba4340e861 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
;;; 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: