Commit Graph

2994 Commits

Author SHA1 Message Date
c2fd538261 Refactor doom startup benchmark 2018-02-28 17:57:29 -05:00
047ed6c9ea Rethink doom-initialize & use package-initalize
Doom saves a lot of startup time by avoiding package-initialize, because
it loads every packages' autoloads file, which is expensive.
Unfortunately, these autoloads files are necessary for some plugins with
abnormal file structures (such as ESS). Previously, I was content with
loading them myself, but these occurrences have become more frequent, so
it would be safest if I relied on package-initialize more.

So doom-initialize will now do so. However, it will cache the load-path
(and Info-directory-list, fixing the lost info buffers) on first run.
This makes byte-compiling Doom almost useless, but it makes startup just
as fast as Doom would be if you had.

This needs more testing.
2018-02-28 17:57:29 -05:00
2f7c9254d6 Fix over-zealous delete-backward-char #431
Would consume entire sexps.
2018-02-24 20:05:35 -05:00
55c6244e9f doom-install-package: clean up after failed quelpa install 2018-02-22 04:48:36 -05:00
446a66603f Fix quelpa packages looking up elpa version
This is a regression introduced in b1bf67f6.

Package management would incorrectly compare quelpa package versions
with elpa package versions. This would cause "outdated" packages to get
deleted.
2018-02-22 04:19:25 -05:00
fe81a501f3 Fix void-function doom--menu-read error in byte-compiled Doom #427
The macro would be expanded, and then its helpers would never be loaded.
2018-02-21 15:32:51 -05:00
7bfd0a3304 And changed-quelpa-recipe detection
These packages are now reinstalled on make install.
2018-02-20 17:55:55 -05:00
b1bf67f630 Refactor package init process
quelpa is now initialized by doom-initialize-packages.
2018-02-20 17:54:10 -05:00
f113f99484 projectile-indexing-method = native (on windows) 2018-02-19 20:27:47 -05:00
95009c08f8 doom/describe-module: detect module associated with major-mode 2018-02-19 20:27:18 -05:00
6f1b96bc9a Fix void-function error in doom//reload-autoloads
Don't use a third party library in a function that could potentially run
before packages are installed, ya big silly!
2018-02-19 01:31:31 -05:00
a967aa051a Force autoloads to use absolute paths
Autoload paths used to be relative to arbitrary roots (usually
doom-modules-dir). This commit changes doom//reload-autoloads to iterate
over autoloads in doom-autoloads-file and replace their file paths with
an absolute one.

Theoretically this should make Emacs feel marginally faster, but we
*probably* get more of a benefit from a shorter load-path (because we no
longer need doom-modules-dirs, doom-core-dir or doom-psuedo-module-paths
in the load-path).

This is highly experimental however!
2018-02-19 01:25:37 -05:00
1a20c49ef3 Refactor cl-loop => cl-member in doom//byte-compile 2018-02-19 01:20:53 -05:00
7707aec28a Remove doom group
Not really useful, and Doom doesn't encourage using the Emacs Customize
interface.
2018-02-18 03:04:58 -05:00
b05ccbb98e Move some UI vars from core.el to core-ui.el 2018-02-18 02:59:11 -05:00
cf4420e903 Fix doom//run-tests 2018-02-17 22:18:04 -05:00
7ac29bbd27 Refactor require! macro 2018-02-17 19:09:15 -05:00
8efd5d1eae Fix make clean not catching all *.elc files 2018-02-16 23:28:18 -05:00
d91481a9a0 Add private module to load-path
This fixes autoload cookies in private autoload files (e.g.
~/.doom.d/autoload/file.el).
2018-02-16 23:26:44 -05:00
2b43dd42e2 Refactor doom-hide-modeline-mode 2018-02-16 21:02:46 -05:00
e7c9f5c08f Fix over-zealous path resolution
This issue made it impossible enable default modules from private doom!
blocks.
2018-02-16 05:33:27 -05:00
bae226b94f Refactor to revolve module tree roots around doom! calls
Any module can now use a doom! call to declare a module tree root.

This means that if you have a doom! block in
~/.emacs.d/modules/lang/org/init.el, then you can have submodules in
~/.emacs.d/modules/lang/org/modules/MODULE/SUBMODULE if you wanted to
for some reason.

This is only really truly useful for private modules. A doom! block in
~/.doom.d/init.el will recognize and enable modules in
~/.doom.d/modules/.
2018-02-16 05:07:46 -05:00
d04a1fa940 Remove doom-module-pairs 2018-02-16 04:47:02 -05:00
f864931643 Fix gibberish (char codes) in load-path 2018-02-16 03:11:28 -05:00
d2436650a3 Move server+benchmark code into doom|finalize 2018-02-16 02:11:41 -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
0e6540fb8f Fix featurep! in private submodules
You'll have to use the full form to use featurep! in the private module
root, but now the short form will work in the nested submodules.
2018-02-15 03:36:32 -05:00
b3dcba54eb Add config/private; for ~/.doom.d & ~/.config/doom support #406
A modules/ submodule will be symlinked to ~/.emacs.d/modules/private.
2018-02-14 23:36:35 -05:00
dfefbd0176 Fix make test not resetting doom-modules properly 2018-02-14 21:18:56 -05:00
4321f20b3e Appease byte-compiler-sama 2018-02-14 20:54:53 -05:00
ae52b2ff60 Fix empty load-file-name in warn! macro during byte-compilation 2018-02-14 20:52:25 -05:00
0f404a513a Fix overaggressive backspace
delete-backward-char would kill adjacent delimited regions:

1. |
   (...)
2. (|...)
2018-02-14 16:46:01 -05:00
57adae5ec6 Introduce more opinionated backspace/del/newline behavior
+ Instead of remapping delete-backward-char to doom/delete-backward-char
  (which was unreliable, depending on the mode), it is now overridden
  with it, without sacrificing its original functionality. The new
  behavior is as follows:
  + Fall back to sp-backward-delete-char when it makes sense to delete
    the adjacent pair: {|} => |
  + Collapse an indented pair block, if at bolp in between: {
      |
    } => {|}
  + Refresh a pair's :post-handlers when deleting into pair: {
      |
    } => {|} => {
      |
    } (can be repeated)
  + When cursor is preceded by whitespace, delete in increments of
    tab-width.
+ newline-and-indent has been advised to:
  + Only newline when in a string.
  + Continue comment lines consistently (needs more testing!)
  + Falls back to basic newline-and-indent, without affecting whitespace
    in the origin line (it would originally delete-horizontal-space
    before creating a new line).
+ Incorporates a set of reasonable defaults for brace expansion on RET
  or SPC, as mentioned in #343 and #413.

Affects #343, #413
2018-02-14 05:42:51 -05:00
11373e0128 Move doom-ansi-apply away from macros + add docstring 2018-02-14 05:40:37 -05:00
5e5d075431 New doom/*-this-file commands; move doom/sudo* to new files library 2018-02-14 05:40:37 -05:00
f6039eaee3 Use delay-warning instead of message in warn! macro 2018-02-14 03:17:51 -05:00
11e5140b98 Fix editorconfig file ext 'guesser' in org-edit-src buffers
Fixes editorconfig not correctly guessing style settings in org-edit-src
buffers.
2018-02-13 19:42:39 -05:00
a05c4cca6c Fix kill-this-buffer asking to save twice 2018-02-13 17:53:11 -05:00
cb3e780a96 Fix package manager not detecting outdated quelpa packages 2018-02-13 05:23:40 -05:00
ba19032d29 Rename doom/narrow-buffer => doom/clone-and-narrow-buffer 2018-02-12 01:44:02 -05:00
57b2b5c546 Fix doom//packages-update not updating dependencies 2018-02-11 16:13:15 -05:00
4566dea4b3 Fix save-buffer prompt occurring after buffer is buried 2018-02-11 03:58:57 -05:00
0019deb276 Rewrite doom/info 2018-02-10 17:27:02 -05:00
139a0c8045 Fix kill-buffer arguments. 2018-02-10 19:36:06 +03:00
3355378480 Fix doom//reload-load-path infinite recursion with daemon emacs 2018-02-08 02:15:41 -05:00
dce496e246 Change doom-project-p to return a boolean 2018-02-06 17:30:38 -05:00
f28a89f701 Add doom-project-name function 2018-02-06 17:30:16 -05:00
508dbf7a5c Revise docstrings for doom-project-{root,p} 2018-02-06 17:30:03 -05:00
7e87ab3e29 New warn! macro; replace debug! with log! macro 2018-02-04 17:53:31 -05:00
7d9f2e5078 New doom/toggle-debug-mode command 2018-02-04 17:53:05 -05:00