Commit Graph

75 Commits

Author SHA1 Message Date
Henrik Lissner
60e7b78739
Minor refactor of doom/describe-active-minor-mode 2018-06-15 18:32:53 +02:00
Henrik Lissner
58601488d9
describe-module: shows all modules, dim disabled
Shows all modules, whether or not they are enabled and dims disabled
modules.
2018-06-15 16:20:20 +02:00
Henrik Lissner
a500bfb0a0
Rewrite+rename describe-settings->describe-setters
Will now list autodefs instead of def-settings, including an origin
module label to tell you where it comes from at a glance.
2018-06-15 16:20:20 +02:00
Henrik Lissner
3228369d73
Fix void-function errors from doom//reload
Because certain commands aren't available without core-dispatcher.
2018-06-14 19:50:27 +02:00
Henrik Lissner
0be2be5c82
Remove autoload/modules library
Move batch commands into core-dispatcher and doom//reload into
autoload/help. It will soon be renamed doom/reload.
2018-06-12 00:02:04 +02:00
Henrik Lissner
428f1e1d07
Refactor def-setting!/set! implementation
The `doom-settings` variable has been removed. Setting checks are done
with fboundp now, which is simpler.
2018-06-02 16:26:59 +02:00
Henrik Lissner
b82ef2cee6
Add open-manual command (docs don't exist yet though!) 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
c826f0f6a8
Shrink dependency chains in core libraries 2018-05-20 12:06:50 +02:00
Henrik Lissner
b6813393d8
Remove custom helpful pretty-printer; default is superior 2018-05-16 00:11:14 +02:00
Henrik Lissner
e3e0cb7e68
doom/describe-modules: no initial input, instead set default 2018-05-14 18:32:26 +02:00
Henrik Lissner
7269abbe2f
Add doom/version command 2018-05-07 19:26:31 +02:00
Henrik Lissner
5726da8be2
Fix unbalanced-parenthesis error in some helpful-variable buffers 2018-03-12 13:32:00 -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
95009c08f8
doom/describe-module: detect module associated with major-mode 2018-02-19 20:27:18 -05:00
Henrik Lissner
d04a1fa940
Remove doom-module-pairs 2018-02-16 04:47:02 -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
Sergey Trofimov
0bb1635a38 Check if buffer-file-name is nil before passing it as argument. 2018-01-31 06:41:51 +03:00
Henrik Lissner
4f983c139e
Improve doom/describe-{setting,module} commands
Now grabs the setting/module at point
2018-01-28 03:00:29 -05:00
Henrik Lissner
211977e28a
doom--module-pairs => doom-module-pairs 2017-11-08 22:51:55 +01:00
Henrik Lissner
5ff9849b39
Sort settings list in doom/describe-settings 2017-09-24 17:10:48 +02:00
Henrik Lissner
822c78554f
destructuring-bind => cl-destructuring-bind 2017-06-25 02:04:50 +02:00
Henrik Lissner
633e693cab
{Fix,Refactor} doom/describe-{setting,module} 2017-06-14 21:15:19 +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
db6de01b16 Add doom/describe-{setting,module} 2017-05-28 02:48:20 +02:00