summaryrefslogtreecommitdiff
path: root/config/config.el
blob: 837282cf6343e24dbd80f62efcd1045947ba92f0 (plain)
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
52
53
54
(require 'seq)

(defvar config-directory (file-name-directory (locate-library "config")))

(defun config-add-modules-to-load-path (directory)
  (let* ((pattern (file-name-concat directory "*"))
         (results (file-expand-wildcards pattern))
         (directories (seq-filter 'file-directory-p results))
         (non-hidden (seq-filter (lambda (d)
                                   (let ((base (file-name-base d)))
                                     (not (string-prefix-p "." base))))
                                 directories)))
    (mapc (lambda (m)
            (add-to-list 'load-path m))
          non-hidden)))

(config-add-modules-to-load-path config-directory)

(require 'config-dired)
(require 'config-display-buffer)
(require 'config-eldoc)
(require 'config-electric)
(require 'config-files)
(require 'config-flymake)
(require 'config-garbage-collection)
(require 'config-keys)
(require 'config-man)
(require 'config-package)
(require 'config-programming-languages)
(require 'config-project)
(require 'config-recentf)
(require 'config-savehist)
(require 'config-tramp)

(require 'config-text-mode)
(require 'config-conf-mode)
(require 'config-prog-mode)

(when (locate-library "company")
  (require 'config-company))

(when (locate-library "eglot")
  (require 'config-eglot))

(when (locate-library "flycheck")
  (require 'config-flycheck))

(when (locate-library "lsp-mode")
  (require 'config-lsp-mode))

(when (and (>= emacs-major-version 28) (native-comp-available-p))
  (require 'config-native-comp))

(provide 'config)