Commit Graph

41 Commits

Author SHA1 Message Date
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
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
7e00a83acc Update & refactor doom-info 2018-06-10 17:28:17 +02:00
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
73045f9950 Fix doom//quickstart & improve feedback (make quickstart) 2018-05-25 12:49:39 +02:00
ea86b1075f Fix doom-template-exists-p 2018-05-24 21:20:02 +02:00
18a6df5e6f Fix doom/info 2018-05-24 21:20:02 +02:00
592e16d76d Conform debug commands to naming convention 2018-05-24 16:40:37 +02:00
f80be3682b New open-bug-report & open-vanilla-sandbox commands 2018-05-20 12:18:16 +02:00
7b8917ed42 Split core/autoload/util.el into {help,debug}.el 2018-05-20 12:13:05 +02:00
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
afdf2047a7 Improve error handling in doom/info 2018-03-20 20:45:16 -04:00
44d30ca3ce Fix doom-active-minor-modes 2018-03-14 04:49:14 -04:00
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
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
0019deb276 Rewrite doom/info 2018-02-10 17:27:02 -05:00
7d9f2e5078 New doom/toggle-debug-mode command 2018-02-04 17:53:05 -05:00
245ef02597 Fix misplaced info in doom/info output
And update its docstring
2018-02-04 01:39:50 -05:00
e2a6028643 Add docstring to doom/toggle-profiler 2018-02-03 22:41:34 -05:00
ee24aba034 Fix whitespace inconsistencies in doom/info 2018-02-03 22:35:40 -05:00
1dfe6c472a Rewrite doom/info for concise debug output 2018-02-02 23:44:09 -05:00
189e401197 Refactor doom/info 2017-12-31 18:32:34 -05:00
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
4af354c693 Fix doom/am-i-secure 2017-12-20 19:57:15 -05:00
76a4ae459d Fix obsolete (when|if)-let messages in Emacs 26 2017-12-10 14:49:52 -05:00
8f0268d9fc Add GNUTLS feature detection to doom/am-i-secure 2017-09-15 14:37:19 +02:00
d5b84eee3d Refactor doom/what-face 2017-09-15 14:37:19 +02:00
7029d287e5 Add doom/toggle-profiler 2017-06-18 23:43:08 +02:00
de8269acf8 fixup! Fix doom/what-face not handling face plist specs 2017-06-10 16:10:59 +02:00
ca222c1b75 Fix doom/what-face not handling face plist specs 2017-06-10 16:07:56 +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
c60de062ce doom/what-minor-mode: accept symbols & handle errors 2017-06-08 11:16:44 +02:00
b4986e908a doom/what-face: return list noninteractively 2017-06-08 11:16:44 +02:00
655e565fe0 doom/what-face: accept pos arg 2017-06-08 11:16:44 +02:00
8615bf23ca Move doom/am-i-secure to autoload/debug 2017-05-26 20:22:45 +02:00
254298b1b0 Revise debug/help keybindings & commands 2017-05-19 16:52:32 +02:00
310c235bb5 Better doom/what-face; remove unused util defuns 2017-05-17 18:27:02 +02:00
e265431507 General refactor, cleanup & commenting 2017-05-10 05:28:50 +02:00
d651311d1d Various tweaks & clean up 2017-05-01 14:52:29 -04:00
ba9e7a947b Remove provide's in autoload libraries (unnecessary) 2017-04-04 22:16:39 -04:00
7a72a019ea Add core/autoload/debug.el 2017-02-20 00:26:48 -05:00