init.el 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. ;;; init.el --- Init File -*- lexical-binding: t; no-byte-compile: t -*-
  2. ;;; Commentary:
  3. ;;; Code:
  4. (setq load-prefer-newer t
  5. native-comp-async-report-warnings-errors nil
  6. byte-compile-warnings '(not free-vars unresolved noruntime lexical make-local))
  7. (defvar save-dir (expand-file-name "save" user-emacs-directory))
  8. (unless (file-exists-p save-dir)
  9. (make-directory save-dir))
  10. (setq custom-file (expand-file-name "custom.el" user-emacs-directory))
  11. (defgroup djm nil
  12. "Custom variables added by me"
  13. :group 'convenience)
  14. (add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory))
  15. (add-hook 'emacs-startup-hook
  16. (lambda ()
  17. (message "%s packages loaded in %0.1f seconds"
  18. (hash-table-count straight--profile-cache)
  19. (string-to-number (emacs-init-time)))))
  20. (add-hook 'after-init-hook #'(lambda ()
  21. (setq gc-cons-threshold (* 100 1024 1024)
  22. gc-cons-percentage 0.1)))
  23. ;; Some straight functions need to be able to reload everything, so require won't do
  24. (defun require! (feature &optional filename noerror)
  25. "Like `require', but if `force-reload' is non-nil, `load' instead.
  26. `FEATURE', `FILENAME' and `NOERROR' have the same meaning as with require"
  27. (if (and (boundp 'force-reload) force-reload)
  28. (load (prin1-to-string feature) noerror nil nil t)
  29. (require feature filename noerror)))
  30. (require! 'init-packages)
  31. (require! 'init-ui)
  32. (require! 'init-compile)
  33. (require! 'init-editor)
  34. (require! 'init-search)
  35. (require! 'init-windows)
  36. (require! 'init-project)
  37. (require! 'init-modeline)
  38. (require! 'init-completion)
  39. (require! 'init-minibuffer)
  40. (require! 'init-navigation)
  41. (require! 'init-kill)
  42. (require! 'init-dired)
  43. (require! 'init-smartparens)
  44. (require! 'init-emacs-lisp)
  45. (require! 'init-clojure)
  46. (require! 'init-crux)
  47. (require! 'init-lsp)
  48. (require! 'init-git)
  49. (require! 'init-shell)
  50. (require! 'init-org)
  51. ;;(require! 'init-latex)
  52. (require! 'init-xml)
  53. (require! 'init-web)
  54. (require! 'init-misc)
  55. (require! 'init-tramp)
  56. (require! 'init-sql)
  57. (require! 'init-local nil t)
  58. ;;; init.el ends here