Commit Graph

161 Commits

Author SHA1 Message Date
a48f75371b core-lib (doom-files-in): default relative-to to default-directory 2018-05-24 13:02:20 +02:00
dc0175b8e1 Merge doom-files-under into doom-files-in; more powerful doom-files-in 2018-05-23 23:34:32 +02:00
2637c415d3 Add error checks & docstrings to doom-keyword-* lib functions 2018-05-23 19:09:09 +02:00
67269fdf2b add-transient-hook!: unintern => fmakunbound 2018-05-21 01:38:17 +02:00
ac5eaf0fb3 Load core-lib before core-package
So that core-package may use the Doom standard library.
2018-05-21 01:38:17 +02:00
16a9126b3e Make after! noop if package is disabled
After disabling a package, def-package! blocks for that package are
ignored. Now, after! blocks for those packages will be ignored too.
2018-05-21 01:38:17 +02:00
dc4e0f1556 Add doom-file-cookie-p to core-lib 2018-05-20 00:07:06 +02:00
fa37d7b05e Refactor core initialization process
A vastly simpler bootstrap process.

Also load core libs in core-lib (duh)
2018-05-19 16:42:48 +02:00
59f510e85f Add four new functions for keywords & file collection 2018-05-19 16:32:12 +02:00
80adb9c1f6 General refactor for consistency & idempotency
Also updated comments
2018-05-18 01:26:41 +02:00
673d3ed147 Prevent duplicate entries in doom-auto-minor-mode-alist 2018-05-16 13:14:46 +02:00
262b2f957b Fix associate! not enabling minor modes for :files/:modes/:when
Fixes #585
2018-05-16 13:14:46 +02:00
6b8520d189 Change add-transient-hook! to take hook suffix as 2nd arg
By default, transient hooks are defined as doom-transient-hook-N, where
N is a counter. This makes debugging them difficult.

Now, you may specify an id for the second argument. e.g.

  (add-transient-hook! 'find-file-hook load-evil (require 'evil))

Will define doom|transient-hook-load-evil, which is easier to debug and
remove, if necessary.
2018-05-15 21:49:51 +02:00
afdc6a31b5 Move def-setting! macros to core-packages 2018-05-14 13:05:03 +02:00
cef82fe0b0 Minor reorganization of core-lib 2018-05-14 13:05:03 +02:00
57f383ef76 General revision of docstrings 2018-05-14 13:05:03 +02:00
878b413885 New library macro: setq-hook! 2018-05-07 22:35:14 +02:00
035353d295 after!: don't shadow features var 2018-05-07 19:26:31 +02:00
aef9724324 Add doom*shut-up advisor to core-lib 2018-04-23 00:03:28 -04:00
21a23228f2 Refactor initialization; allow package! to universally disable packages
No need for def-package-hook! for disable packages anymore, you can do
it from package! in packages.el files.
2018-03-26 02:57:37 -04:00
5eadfdc880 Add EMACS26+ & EMACS27+ constants 2018-03-24 07:25:00 -04:00
01f9ca9e67 Ensure (if|when)-let* are available to the byte-compiler
This fixes void function errors in earlier versions of Emacs while
byte-compiling Doom.
2018-03-02 19:14:45 -05:00
138ec2bf07 Remove manual loading of pkg-autoloads files
No longer necessary as of 0c80bb42
2018-02-28 17:57:30 -05:00
589108fdb2 Extend after! macro to support :any, :all & feature lists #442 2018-02-28 17:57:30 -05:00
2b1c323dbf 💥 Redesign private sub-module system
~/.doom.d/modules is now a full module tree, like ~/.emacs.d/modules.
Symlinks are no longer involved.

Private modules can now shadow Doom modules. e.g.
~/.doom.d/modules/lang/org will take precendence over
~/.emacs.d/modules/lang/org.

Also, made doom--*-load-path variables public (e.g. doom--site-load-path
=> doom-site-load-path), and rearranged the load-path for a 10-15%
startup boost.
2018-02-16 02:11:10 -05:00
562d805136 Sensible alias 2018-02-01 14:46:17 +08:00
2f0822ed44 Remove aggressive load of use-package
The autoload in core-packages takes care of it.
2018-01-11 22:18:32 -05:00
7777f9940e Change add-hook! macro to retain hook order
(add-hook! hook '(1 2 3)) should set hook to `(1 2 3 ,@old-hooks).
Before this, they would be pushed sequentially, resulting in hook =
`(3 2 1 ,@old hooks)`
2018-01-08 14:55:58 -05:00
5cd29479f4 Refactor feature/evil hacks & advice; fix tests 2018-01-07 00:15:57 -05:00
31a4244686 Rethink what Doom loads at startup and manually
Better to simply load what we need, when we need it, rather than set up
autoloads for every litte thing.
2018-01-07 00:15:57 -05:00
0042a56d02 Add new cache library (persistent-soft wrapper) 2018-01-07 00:15:57 -05:00
b28f6ed477 General minor refactor & comment revision 2018-01-06 03:03:02 -05:00
02c14f560d Refactor bootstrap process + add doom-initialize-load-path 2017-12-22 16:26:05 -05:00
76a4ae459d Fix obsolete (when|if)-let messages in Emacs 26 2017-12-10 14:49:52 -05:00
4a04406b2b core-lib: minor refactor; update docstrings+comments 2017-12-09 16:23:19 -05:00
9d3155892a Rethink how Doom loads core & std libs 2017-12-09 14:41:22 -05:00
07088d3dcf Removed s.el dependency (prefer built-in) 2017-12-09 14:40:14 -05:00
ff717e5c2f Refactor quiet! macro 2017-12-03 20:04:00 -05:00
6cb5efc929 core-lib: rename helper fns; move doom-resolve-vim-path
+ doom--resolve-paths => doom--resolve-path-forms
+ doom--resolve-hooks => doom--resolve-hook-forms
+ +evil*ex-replace-special-filenames => doom-resolve-vim-path
2017-09-27 01:23:54 +02:00
546ca0e313 General, minor refactor 2017-09-26 21:55:01 +02:00
5140bb8850 Autoload json library 2017-09-02 16:12:53 +02:00
383d7dbddb Don't return anything from set! on failure 2017-06-24 17:23:11 +02:00
313fa06400 doom-setting--setter%s => doom--set%s 2017-06-24 16:39:45 +02:00
779ae60454 Refactor doom-resolve-hooks 2017-06-24 16:20:22 +02:00
928812da8a Make def-setting! behave more like defmacro
set! used to aggressively evaluate its arguments (at expansion-time),
even if placed inside an after! block. This causes unavoidable errors if
those arguments use functions/variables that don't exist yet.

Fixes #112
2017-06-19 00:32:44 +02:00
7d081c3154 Fix subr-x macro autoloads 2017-06-18 23:43:08 +02:00
816df321a5 General refactor & cleanup 2017-06-14 21:15:19 +02:00
07299c5020 core-lib: add doom-quote & doom-enlist 2017-06-12 02:48:26 +02:00
c7254e7bdc Major optimization refactor, across the board
+ enable lexical-scope everywhere (lexical-binding = t): ~5-10% faster
  startup; ~5-20% general boost
+ reduce consing, function calls & garbage collection by preferring
  cl-loop & dolist over lambda closures (for mapc[ar], add-hook, and
  various cl-lib filter/map/reduce functions) -- where possible
+ prefer functions with dedicated opcodes, like assq (see byte-defop's
  in bytecomp.el for more)
+ prefer pcase & cond (faster) over cl-case
+ general refactor for code readability
+ ensure naming & style conventions are adhered to
+ appease byte-compiler by marking unused variables with underscore
+ defer minor mode activation to after-init, emacs-startup or
  window-setup hooks; a customization opportunity for users + ensures
  custom functionality won't interfere with startup.
2017-06-09 00:47:45 +02:00
baad7953bf Breaking change: rewrite add-transient-hook!
HOOK is now evaluated. Hooks should be quoted (and functions
sharp-quoted).

This also fixes commit 0150f78e.
2017-06-05 16:43:14 +02:00