Henrik Lissner
a48f75371b
core-lib (doom-files-in): default relative-to to default-directory
2018-05-24 13:02:20 +02:00
Henrik Lissner
dc0175b8e1
Merge doom-files-under into doom-files-in; more powerful doom-files-in
2018-05-23 23:34:32 +02:00
Henrik Lissner
2637c415d3
Add error checks & docstrings to doom-keyword-* lib functions
2018-05-23 19:09:09 +02:00
Henrik Lissner
67269fdf2b
add-transient-hook!: unintern => fmakunbound
2018-05-21 01:38:17 +02:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
dc4e0f1556
Add doom-file-cookie-p to core-lib
2018-05-20 00:07:06 +02:00
Henrik Lissner
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
Henrik Lissner
59f510e85f
Add four new functions for keywords & file collection
2018-05-19 16:32:12 +02:00
Henrik Lissner
80adb9c1f6
General refactor for consistency & idempotency
...
Also updated comments
2018-05-18 01:26:41 +02:00
Henrik Lissner
673d3ed147
Prevent duplicate entries in doom-auto-minor-mode-alist
2018-05-16 13:14:46 +02:00
Henrik Lissner
262b2f957b
Fix associate! not enabling minor modes for :files/:modes/:when
...
Fixes #585
2018-05-16 13:14:46 +02:00
Henrik Lissner
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
Henrik Lissner
afdc6a31b5
Move def-setting! macros to core-packages
2018-05-14 13:05:03 +02:00
Henrik Lissner
cef82fe0b0
Minor reorganization of core-lib
2018-05-14 13:05:03 +02:00
Henrik Lissner
57f383ef76
General revision of docstrings
2018-05-14 13:05:03 +02:00
Henrik Lissner
878b413885
New library macro: setq-hook!
2018-05-07 22:35:14 +02:00
Henrik Lissner
035353d295
after!: don't shadow features var
2018-05-07 19:26:31 +02:00
Henrik Lissner
aef9724324
Add doom*shut-up advisor to core-lib
2018-04-23 00:03:28 -04:00
Henrik Lissner
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
Henrik Lissner
5eadfdc880
Add EMACS26+ & EMACS27+ constants
2018-03-24 07:25:00 -04:00
Henrik Lissner
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
Henrik Lissner
138ec2bf07
Remove manual loading of pkg-autoloads files
...
No longer necessary as of 0c80bb42
2018-02-28 17:57:30 -05:00
Henrik Lissner
589108fdb2
Extend after! macro to support :any, :all & feature lists #442
2018-02-28 17:57:30 -05:00
Henrik Lissner
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
Amos Bird
562d805136
Sensible alias
2018-02-01 14:46:17 +08:00
Henrik Lissner
2f0822ed44
Remove aggressive load of use-package
...
The autoload in core-packages takes care of it.
2018-01-11 22:18:32 -05:00
Henrik Lissner
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
Henrik Lissner
5cd29479f4
Refactor feature/evil hacks & advice; fix tests
2018-01-07 00:15:57 -05:00
Henrik Lissner
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
Henrik Lissner
0042a56d02
Add new cache library (persistent-soft wrapper)
2018-01-07 00:15:57 -05:00
Henrik Lissner
b28f6ed477
General minor refactor & comment revision
2018-01-06 03:03:02 -05:00
Henrik Lissner
02c14f560d
Refactor bootstrap process + add doom-initialize-load-path
2017-12-22 16:26:05 -05:00
Henrik Lissner
76a4ae459d
Fix obsolete (when|if)-let messages in Emacs 26
2017-12-10 14:49:52 -05:00
Henrik Lissner
4a04406b2b
core-lib: minor refactor; update docstrings+comments
2017-12-09 16:23:19 -05:00
Henrik Lissner
9d3155892a
Rethink how Doom loads core & std libs
2017-12-09 14:41:22 -05:00
Henrik Lissner
07088d3dcf
Removed s.el dependency (prefer built-in)
2017-12-09 14:40:14 -05:00
Henrik Lissner
ff717e5c2f
Refactor quiet! macro
2017-12-03 20:04:00 -05:00
Henrik Lissner
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
Henrik Lissner
546ca0e313
General, minor refactor
2017-09-26 21:55:01 +02:00
Henrik Lissner
5140bb8850
Autoload json library
2017-09-02 16:12:53 +02:00
Henrik Lissner
383d7dbddb
Don't return anything from set! on failure
2017-06-24 17:23:11 +02:00
Henrik Lissner
313fa06400
doom-setting--setter%s => doom--set%s
2017-06-24 16:39:45 +02:00
Henrik Lissner
779ae60454
Refactor doom-resolve-hooks
2017-06-24 16:20:22 +02:00
Henrik Lissner
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
Henrik Lissner
7d081c3154
Fix subr-x macro autoloads
2017-06-18 23:43:08 +02:00
Henrik Lissner
816df321a5
General refactor & cleanup
2017-06-14 21:15:19 +02:00
Henrik Lissner
07299c5020
core-lib: add doom-quote & doom-enlist
2017-06-12 02:48:26 +02:00
Henrik Lissner
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
Henrik Lissner
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