Commit Graph

41 Commits

Author SHA1 Message Date
Henrik Lissner
ca2c8b5a45
Minor refactor, across the board
Do you see the board? Now look at the other side. That's how far this
refactor extends.

Yes.
2018-06-18 15:02:24 +02:00
Henrik Lissner
72201fead5
Major refactor of package management API
Fixes issues where:

+ package!'s :disable property was ignored and def-package! wouldn't
  ignore disabled packages.
+ Certain quelpa packages were being removed/reinstalled infinitely
+ Improved flexibility of doom-get-packages (its docstring needs to be
  updated!)
2018-06-12 00:02:04 +02:00
Henrik Lissner
7e00a83acc
Update & refactor doom-info 2018-06-10 17:28:17 +02:00
Henrik Lissner
01d1a814f9
Refactor doom-initialize functions
Removes doom-module-table; which was inflexible (though more stable). It
prevented you from putting your doom! block in anywhere but
~/.doom.d/init.el.

It is replaced (somewhat) by (doom-modules).
2018-06-10 17:30:26 +02:00
Henrik Lissner
73045f9950
Fix doom//quickstart & improve feedback (make quickstart) 2018-05-25 12:49:39 +02:00
Henrik Lissner
ea86b1075f
Fix doom-template-exists-p 2018-05-24 21:20:02 +02:00
Henrik Lissner
18a6df5e6f
Fix doom/info 2018-05-24 21:20:02 +02:00
Henrik Lissner
592e16d76d
Conform debug commands to naming convention 2018-05-24 16:40:37 +02:00
Henrik Lissner
f80be3682b
New open-bug-report & open-vanilla-sandbox commands 2018-05-20 12:18:16 +02:00
Henrik Lissner
7b8917ed42
Split core/autoload/util.el into {help,debug}.el 2018-05-20 12:13:05 +02:00
Henrik Lissner
3dfffe455e
Rename core/autoload/debug.el => util.el
"debug.el" conflicted with the built-in debug package
2018-04-22 17:21:34 -04:00
Henrik Lissner
afdf2047a7
Improve error handling in doom/info 2018-03-20 20:45:16 -04:00
Henrik Lissner
44d30ca3ce
Fix doom-active-minor-modes 2018-03-14 04:49:14 -04:00
Henrik Lissner
0425724571
Major rewrite of doom module API
+ Fix #446, where the .local/packages.el cache was generated with
  a faulty load-path.
+ Entries in the doom-modules hash table are now plists, containing
  :flags and :path, at least.
+ Add doom-initialize-modules for loading module config.el files.
+ Add doom-module-get for accessing this plist, e.g.

    (doom-module-get :some module)         ; returns plist
    (doom-module-get :some module :flags)  ; return specific property

+ Replace doom-module-enable with doom-module-set, e.g.

    (doom-module-set :some module :flags '(+a +b +c))

+ Remove doom-module-flags (use doom-module-get instead)
+ Rename doom-module-enabled-p with doom-module-p
+ Replace doom-module-path with doom-module-find-path and
  doom-module-expand-file. The former will search for an existing module
  or file in doom-modules-dirs. The latter will expand the path from
  whatever path is stored in doom-modules.
+ Replace doom-module-paths with doom-module-load-path
+ Changed doom! to allow for nested doom! calls by delaying the loading
  of module config.el files until as late as possible.
+ Refactor doom-initialize-packages to only ihitialize package state
  (i.e. doom-packages, package-alist, and quelpa-cache), rather than its
  previous behavior of loading all Doom files (and sometimes all module
  files). This is faster and more predictable.
2018-03-02 19:14:45 -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
Henrik Lissner
0019deb276
Rewrite doom/info 2018-02-10 17:27:02 -05:00
Henrik Lissner
7d9f2e5078
New doom/toggle-debug-mode command 2018-02-04 17:53:05 -05:00
Henrik Lissner
245ef02597
Fix misplaced info in doom/info output
And update its docstring
2018-02-04 01:39:50 -05:00
Henrik Lissner
e2a6028643
Add docstring to doom/toggle-profiler 2018-02-03 22:41:34 -05:00
Henrik Lissner
ee24aba034
Fix whitespace inconsistencies in doom/info 2018-02-03 22:35:40 -05:00
Henrik Lissner
1dfe6c472a
Rewrite doom/info for concise debug output 2018-02-02 23:44:09 -05:00
Henrik Lissner
189e401197
Refactor doom/info 2017-12-31 18:32:34 -05:00
Henrik Lissner
5048b72c12
Add doom/info command
This copies debug information about the current session of Doom Emacs in
the clipboard, which folks can use to include system information with
their bug reports!
2017-12-31 17:49:31 -05:00
Henrik Lissner
4af354c693
Fix doom/am-i-secure 2017-12-20 19:57:15 -05:00
Henrik Lissner
76a4ae459d
Fix obsolete (when|if)-let messages in Emacs 26 2017-12-10 14:49:52 -05:00
Henrik Lissner
8f0268d9fc
Add GNUTLS feature detection to doom/am-i-secure 2017-09-15 14:37:19 +02:00
Henrik Lissner
d5b84eee3d
Refactor doom/what-face 2017-09-15 14:37:19 +02:00
Henrik Lissner
7029d287e5
Add doom/toggle-profiler 2017-06-18 23:43:08 +02:00
Henrik Lissner
de8269acf8
fixup! Fix doom/what-face not handling face plist specs 2017-06-10 16:10:59 +02:00
Henrik Lissner
ca222c1b75
Fix doom/what-face not handling face plist specs 2017-06-10 16:07:56 +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
c60de062ce doom/what-minor-mode: accept symbols & handle errors 2017-06-08 11:16:44 +02:00
Henrik Lissner
b4986e908a doom/what-face: return list noninteractively 2017-06-08 11:16:44 +02:00
Henrik Lissner
655e565fe0 doom/what-face: accept pos arg 2017-06-08 11:16:44 +02:00
Henrik Lissner
8615bf23ca Move doom/am-i-secure to autoload/debug 2017-05-26 20:22:45 +02:00
Henrik Lissner
254298b1b0 Revise debug/help keybindings & commands 2017-05-19 16:52:32 +02:00
Henrik Lissner
310c235bb5 Better doom/what-face; remove unused util defuns 2017-05-17 18:27:02 +02:00
Henrik Lissner
e265431507 General refactor, cleanup & commenting 2017-05-10 05:28:50 +02:00
Henrik Lissner
d651311d1d Various tweaks & clean up 2017-05-01 14:52:29 -04:00
Henrik Lissner
ba9e7a947b Remove provide's in autoload libraries (unnecessary) 2017-04-04 22:16:39 -04:00
Henrik Lissner
7a72a019ea Add core/autoload/debug.el 2017-02-20 00:26:48 -05:00