Commit Graph

787 Commits

Author SHA1 Message Date
Henrik Lissner
9eae0860c6
Fix doom/window-enlargen in popup windows #825 2018-08-23 17:21:42 +02:00
Henrik Lissner
1890356d11
Refactor & fix vanilla sandbox in tty Emacs
Except for Windows users. Doesn't seem to be possible to suspend and
foreground Emacs in windows' shell.
2018-08-23 16:18:56 +02:00
Henrik Lissner
12f6add329
package-initialize for doom/open-vanilla-sandbox 2018-08-23 11:27:27 +02:00
Henrik Lissner
9e08620350
Use locate-library to detect display-line-numbers
Now that display-line-numbers is polyfilled, a boundp check is useless.
2018-08-21 04:32:27 +02:00
Henrik Lissner
9a4cce8d9a
Refactor detection of native display-line-numbers 2018-08-21 04:10:18 +02:00
Henrik Lissner
a7da9a4738
💥 Rewrite line numbers system for Emacs 25
This removes the various doom-line-number* variables and replaces it
with the Emacs 26 display-line-numbers API, which I've ported to Emacs
25.x (however, it uses nlinum under the hood, and not all of
display-line-numbers options are supported).
2018-08-21 03:34:39 +02:00
Henrik Lissner
4618b7afad
Refactor & reformat core-ui 2018-08-21 02:56:54 +02:00
Henrik Lissner
6b7f97f4fc
Autoload doom-quit-p & revise its docstring 2018-08-20 23:56:56 +02:00
Henrik Lissner
480378d30c
Fix doom/info in noninteractive sessions 2018-08-16 01:26:28 +02:00
Henrik Lissner
5714ff423a
Fix evil jumplist after jumping to ag match
helm-ag would formerly add multiple entries to the jump list. It now
only adds one, and recenters the window when jumping to an ag match.
2018-08-13 21:47:55 +02:00
Henrik Lissner
b149dcffd4
Replace esup with doom/profile-emacs #788
Since esup (called directly) doesn't work with Doom.
2018-08-13 03:50:17 +02:00
Henrik Lissner
25d9786edf
Add early-init-file support to doom/profile-emacs #788
And fix wrong-type-argument: stringp errors when running esup.

Also ensure that doom|run-all-startup-hooks sets after-init-time.
2018-08-13 03:47:33 +02:00
Henrik Lissner
c530866f0a
Add option to load doom in vanilla sandbox
This adds the option to run elisp in an environment where doom core &
modules are loaded, but not your private modules or config.

Also updates the vanilla sandbox text template.
2018-08-12 02:45:01 +02:00
Henrik Lissner
9ddfca44d1
Rename doom//reload-project -> doom/reload-project
Conform command to new naming convention (removed the doom//abc
convention).
2018-08-11 21:45:53 +02:00
Henrik Lissner
43e0314e86
Add doom/switch-theme; a more sensible load-theme
load-theme doesn't disable previously enabled themes before switching.
doom/switch-theme does.

This remaps any keys bound to load-theme to doom/switch-theme.
2018-08-11 01:59:37 +02:00
Henrik Lissner
d6f89aaafd
Make doom/copy-backtrace copy the whole backtrace 2018-08-10 19:13:31 +02:00
Henrik Lissner
2ee177d588
Don't invoke debugger on "Aborted" messages 2018-08-02 16:41:19 +02:00
Henrik Lissner
6d1512c2e2
Refactor doom/reload
+ Remove non-interactive use-case (no more relying on the server; too
  unstable).
+ Ensure autoloads are properly reloaded (and thus, the load-path is
  properly repopulated).
+ Provide feedback when it's finished
2018-08-02 14:17:53 +02:00
Henrik Lissner
c33de42dce
Don't use uname in doom/info on windows 2018-07-17 18:29:43 +02:00
Henrik Lissner
b7eeaa4525
Improve docstring for doom/copy-backtrace 2018-07-14 19:33:47 +02:00
Henrik Lissner
7ed9c5196f
Add doom/copy-backtrace command 2018-07-13 13:00:42 +02:00
Henrik Lissner
ee91748613
Document doom-cleanup-hook 2018-07-07 13:14:50 +02:00
Henrik Lissner
1530cdbdb6
Fix vanilla sandbox creating too many temp files
On every execution.
2018-07-03 03:41:08 +02:00
Henrik Lissner
537cc9e1ed
Rewrite doom-real-buffer-p; require first arg
Because of how widely used this function is, I'd rather it be as
explicit as possible to avoid bugs and to make it faster.
2018-06-30 01:57:51 +02:00
Henrik Lissner
70230b0892
Add doom-unreal-buffer-p predicate function 2018-06-30 01:57:51 +02:00
Henrik Lissner
af41e17355
Minor reformatting & docstring tweak 2018-06-26 01:48:15 +02:00
Henrik Lissner
017ba8d79c
Autoload defhydras & use new naming convention
Phasing out the +module@name convention for plain old
+module-name-hydra, which is more compatible with elisp reflection tools
like describe-function and such.

Also, Emacs starts up faster now. Tee hee.
2018-06-26 01:43:54 +02:00
Henrik Lissner
196638bf47
Improve handling for arbitrary package errors
e.g. if the package doesn't exist, it shouldn't simply die.
2018-06-24 22:23:09 +02:00
Henrik Lissner
335bef85fd
Remove unused memoize library 2018-06-24 22:23:09 +02:00
Henrik Lissner
e99ae5382c
Refactor package! macro
And have :ignore and :freeze be evaluated during package management,
rather than during macro expansion/compile time.

Also gives doom-package-prop a third, boolean argument. If non-nil,
`eval' the return value.
2018-06-24 22:23:08 +02:00
Henrik Lissner
adf143a853
Fix void-variable error when installing packages
Caused by a haphazardly refactor in f6dc6ac7.
2018-06-23 20:11:43 +02:00
Henrik Lissner
f6dc6ac74e
Refactor out map.el usage
After some profiling, it turns out map-put and map-delete are 5-7x
slower (more on Emacs 25) than delq, setf/alist-get and add-to-list for
small lists (under 250 items), which is exactly how I've been using
them.

The only caveat is alist-get's signature is different on Emacs 25, thus
a polyfill is necessary in core-lib.
2018-06-23 19:53:54 +02:00
Henrik Lissner
d4ba03791f
Don't async refresh package contents
The performance benefit is minor and the loss of feedback is major in
case of errors.
2018-06-20 12:45:03 +02:00
Henrik Lissner
1efb0a8298
Rename core-dispatcher -> core-cli
The file's role is easier to guess at a glance.
2018-06-20 12:04:11 +02:00
Henrik Lissner
71f0b3ba10
Minor error handler refactor in package management
Allow debugger to produce better backtraces.
2018-06-20 02:23:55 +02:00
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
ab07e07352
Improve general error handling at startup
This will hopefully reveal more information as to the cause and origin
of errors at startup. It should also make doom-debug-mode more likely to
produce a backtrace in non-interactive sessions.
2018-06-18 14:47:36 +02:00
Henrik Lissner
0d925cda5e
Load core-os sooner & in all sessions
Indirectly fixes set-env! errors when using it from your init files.
2018-06-18 12:04:30 +02:00
Henrik Lissner
26caea7f2b
Move doom-docs-dir to core.el 2018-06-17 21:39:40 +02:00
Henrik Lissner
03022d09f9
Remove doom//x naming convention
This naming convention was meant to be for batch commands, but it grew
to include "commands that were helpful with managing Doom", but many of
these commands shouldn't be interactive in the first place!
2018-06-17 21:35:58 +02:00
Henrik Lissner
36992037d1
Update package dir mtimes for stale checks
This helps doom//reload-package-autoloads detect if packages have
changed.
2018-06-17 14:45:07 +02:00
Henrik Lissner
f3aadf6c77
Fix doom-temp-buffer-p & doom-real-buffer-p
A regression caused the former to error out (if the buffer name was less
than 2 characters long) and the latter to return t too eagerly (because
of an incorrect condition chain).
2018-06-17 02:30:02 +02:00
Henrik Lissner
ec6372ef66
Mark all temp buffers as unreal
Hopefully there are no plugins that use temp buffers to display things!
2018-06-16 21:02:54 +02:00
Henrik Lissner
bf44c1abcc
Add doom-temp-buffer-p predicate function 2018-06-16 21:02:40 +02:00
Henrik Lissner
44363cae40
General, minor refactor & revision
Across the board. All the boards.
2018-06-16 12:26:58 +02:00
Henrik Lissner
3f2318bc69
Fix wrong-type-argument errors on backspace
Caused when pressed at the beginning or end of a buffer.
2018-06-16 11:50:55 +02:00
Henrik Lissner
9a2f96c0f1
Lazy load projectile (experimental)
I can feel it; the power coursing through my veins. Every millisecond
saved at startup makes me more powerful. This world will be mine. Mine I
tell you!
2018-06-16 11:42:37 +02:00
Henrik Lissner
c81304d18b
Enable smartparens in eval-expression
This is experimental, so we can have delimiter/quote autopairing while
we write lisp into eval-expression.
2018-06-16 11:42:01 +02:00
Henrik Lissner
4d5a247d53
With C-u, doom/what-face doesn't fontify results
In case you get a face that's too hard to see.
2018-06-15 18:50:45 +02:00
Henrik Lissner
60e7b78739
Minor refactor of doom/describe-active-minor-mode 2018-06-15 18:32:53 +02:00
Henrik Lissner
f81a0e6f41
Remove redundant def-setting! docstrings
def-setting! will now grab the autodef's docstring if it has an
:obsolete property defined.
2018-06-15 16:54:39 +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
eaca8c58fa
Move unit tests from ert to buttercup
Easier to organize and write. Now I can hopefully strive for better
coverage!
2018-06-15 03:42:01 +02:00
Henrik Lissner
98d2f1de3f
Add set-env! autodef; make :env obsolete 2018-06-15 03:42:01 +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
69c6e0b8fb
Add doom-get-package-alist
New function returns a list of (NAME . DESC) cons cells in the order
they were declared (in module packages.el files).

Fixes a load-order issue where autoloads from one package would depend
on the autoloads of another package, but was inserted into
doom-package-autoload-file *before* the depended package, causing
void-variable errors.

Also allows for a big refactor of the :plugins byte-compile target.
2018-06-14 03:36:46 +02:00
Henrik Lissner
b6f9bc9675 Fix package manager not :ignore'ing packages 2018-06-13 22:15:08 +02:00
Henrik Lissner
64e02e4232
Load core-packages in doom//run-tests 2018-06-12 01:45:52 +02:00
Henrik Lissner
1c3183b298
Remove space in backend labels during install
Minor reformatting. To be consistent with the backend transition labels
in doom//packages-autoremove.
2018-06-12 00:02:04 +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
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
0741c8851a
Split core-packages into two (packages & modules)
+ Move doom-initialize et co into core.el
+ Lazy load core-packages
+ load! has been moved into core-lib
+ Added FILE! and DIR! macros
+ Fix package! not returning correct value when package is disabled
+ Remove :disabled support for def-package-hook! officially
2018-06-12 00:02:04 +02:00
Henrik Lissner
a25eff0189
delete-this-file: don't propagate deletion to vcs
Doom shouldn't assume the user always wants to stage the current
deletion after every delete.
2018-06-11 01:33:56 +02:00
Henrik Lissner
6bf529ddf8
Add magit/vcs support to doom file commands 2018-06-10 23:23:09 +02:00
Henrik Lissner
5295f36115
case-fold-search = nil in reload-package-autoloads
Slight optimization.
2018-06-10 20:54:32 +02:00
Henrik Lissner
2d5ac8a164
Fix void-variable package--builtins error
Occurs while running make install because package.el wasn't loaded in
time.
2018-06-10 19:15:39 +02:00
Henrik Lissner
85704bea33
Fix void-variable ex2 error while package managing 2018-06-10 19:10:58 +02:00
Henrik Lissner
8d4971d02b
Remove vestigial reference to doom-module-table 2018-06-10 17:48:48 +02:00
Henrik Lissner
9cc190adc9
Minor reformat & refactor keyword intern 2018-06-10 17:28:17 +02:00
Henrik Lissner
3498d5c6b1
Catch more *.elc files with bin/doom clean 2018-06-10 17:28:17 +02:00
Henrik Lissner
7e00a83acc
Update & refactor doom-info 2018-06-10 17:28:17 +02:00
Henrik Lissner
88f1ae3797
Refactor autoloads init in doom-initialize
Simplify doom-initialize-autoloads
2018-06-10 17:28:17 +02:00
Henrik Lissner
ee154911ae
Redesign doom-get-package
Now more useful for filtering packages by certain properties.
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
99d6927e56
Improve error-handling for quelpa packages 2018-06-08 13:08:38 +02:00
Henrik Lissner
99afb01315
equals -> file-equal-p refactor
Use more reliable file comparison function.
2018-06-08 13:08:37 +02:00
Henrik Lissner
ee262e7737
Refactor error handling in package management API
I am hoping this will improve the ambiguous errors that originate from
package.el or quelpa.el.
2018-06-08 13:08:34 +02:00
Henrik Lissner
3661462a7a
Use dynamic byte-compilation for autoload files
Very experimental! This reduces the size and overhead of autoload files
slightly, but may have other reprecussions!
2018-06-05 14:07:35 +02:00
Henrik Lissner
282e0d6653
Move emacs version check into doom-initialize
Also fixes void-function errors caused by (now removed)
doom-same-emacs-version-p not being defined in all the contexts it was
needed.

Where it was before was clumsy design.
2018-06-05 12:04:43 +02:00
Henrik Lissner
3027ed2f7f
Add new doom|mark-buffer-as-real hook to term/eshell
This is simpler (and perhaps faster) than doom-real-buffer-functions.
Better to reserve that for more complex logic.
2018-06-04 21:17:49 +02:00
Henrik Lissner
ee154a3eb7
Add Emacs version check to noninteractive session
Changing Emacs versions can cause incompatibilities. Doom now warns the
user about these.
2018-06-04 21:17:49 +02:00
Henrik Lissner
8762129e8d
Don't prompt when byte-compiling plugins
The warning only applies to full byte-compilation of your config.
2018-06-04 21:17:49 +02:00
Henrik Lissner
7acfcf907a
Add warning prompt to byte-compile
Byte-compiling should be a considered an advanced workflow. Warn users
of the dangers. The prompt can be suppressed with the -y option. e.g.

  bin/doom -y compile

You won't get the prompt for byte-compiling :core or :plugins however.
2018-06-03 22:00:40 +02:00
Henrik Lissner
b2dfc4b8e8
Delete plugin *.elc before recompiling plugins 2018-06-03 01:38:35 +02:00
Henrik Lissner
1a1d74afa3
Refactor package management API
To make backtraces a little less cluttered, in case of the notorious
arrayp error, which I am yet unable to reproduce or understand.
2018-06-02 21:31:14 +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
6480a45f84
Fix reload-package-autoloads outdated detection
The package autoloads generator wouldn't take module packages.el files
into consideration when detecting whether the autoloads file should be
regenerated. Now it does.
2018-06-01 17:06:03 +02:00
Henrik Lissner
6bad6d12f3
Remove doom-psuedo-modules-dir
Not needed with now that doom-private-dir has first class support.
2018-06-01 17:01:39 +02:00
Henrik Lissner
b1ab80ec3f
Fix doom//byte-compile when recompiling plugins
This would cause odd void-variable/function errors because
doom//byte-compile would erroneously try to compile *everything* after
recompiling plugins.
2018-05-31 01:31:33 +02:00
Henrik Lissner
d2ca6f65b3
doom/cleanup-session: don't kill modified buffers 2018-05-30 23:06:13 +02:00
Henrik Lissner
bb9f00e275
Fix unused return value warnings
When byte-compiling or reloading autoloads files.
2018-05-30 16:05:24 +02:00
Henrik Lissner
debe3e0dd3 Remove unnused letvar doom--inhibit-reload 2018-05-29 19:39:22 +02:00
Henrik Lissner
592d83a968
Fix doom//byte-compile not initializing module list in some contexts 2018-05-29 15:32:36 +02:00
Henrik Lissner
1a452b6842
💥 Change first arg of load! macro
load!'s first argument is no longer a symbol (that will cause
void-variable errors now) to save on unnecessary interning and simplify
compile-time logic. It accepts any valid form that evaluates to a string
now.

If you use load!, you need to change its argument to a string!

e.g. (load! +my-module) => (load! "+my-module")
2018-05-27 12:52:28 +02:00
Henrik Lissner
06bd3dfccc
Improve how reload-doom-autoloads detects your modules have changed 2018-05-25 19:22:44 +02:00
Henrik Lissner
debdb63100
Handle wrong-num-of-args error correctly 2018-05-25 19:22:44 +02:00
Henrik Lissner
e3daf2b818
Improve how reload-package-autoloads detects your packages have changed 2018-05-25 19:22:44 +02:00
Henrik Lissner
74c8df3618
Fix reload-*-autoloads commands not remotely loading byte-compiled autoloads file 2018-05-25 19:22:44 +02:00
Henrik Lissner
068979591a
doom//byte-compile: cl-pushnew => push (redundant w/ cl-delete-duplicates) 2018-05-25 19:22:44 +02:00
Henrik Lissner
73045f9950
Fix doom//quickstart & improve feedback (make quickstart) 2018-05-25 12:49:39 +02:00
Henrik Lissner
7f31f4a1bd
Adjust package state initialization strategies 2018-05-25 02:53:48 +02:00
Henrik Lissner
0368e8f84b
Ensure package state is initialized before package management 2018-05-25 02:41:23 +02:00
Henrik Lissner
0aa7bf2d4a
Insert package state before package autoloads in autoloads file
Prevents issues where autoloads will try to load packages but
`load-path` isn't initialized yet, causing "Cannot open load file"
errors.
2018-05-25 02:18:55 +02:00
Henrik Lissner
d9894f0b74
Fix package install not retrying after a 'bad request' error 2018-05-25 02:16:19 +02:00
Henrik Lissner
887e3e11af
Remove unused printerr! macro 2018-05-25 00:49:03 +02:00
Henrik Lissner
7c611df6a6
Have doom//reload return t on success 2018-05-24 22:01:26 +02:00
Henrik Lissner
ea86b1075f
Fix doom-template-exists-p 2018-05-24 21:20:02 +02:00
Henrik Lissner
b70ed84a33
Fix doom//run-tests 2018-05-24 21:20:02 +02:00
Henrik Lissner
18a6df5e6f
Fix doom/info 2018-05-24 21:20:02 +02:00
Henrik Lissner
87e9365a41
Fix package autoremove/install/update batch commands 2018-05-24 21:20:02 +02:00
Henrik Lissner
b629f4f507
Fix doom//clean-byte-compiled-files 2018-05-24 21:20:02 +02:00
Henrik Lissner
6ea5430c4d
Fix doom//byte-compile 2018-05-24 21:20:02 +02:00
Henrik Lissner
8746c12fae
Redesign Doom bootstrap, caching & autoload generation logic
The autoloads file has been split into doom-autoload-file and
doom-package-autoload-file. The former is for Doom's modules and
standard library; the latter is for compiling all package autoloads like
load-path and auto-mode-alist (among other things).

This reduced my startup speed from ~1s to ~0.5s
2018-05-24 21:20:02 +02:00
Henrik Lissner
47ccbb5d41
print!: use terpri instead of princ for newline
Will produce the appropriate newline for the current OS.
2018-05-24 18:30:37 +02:00
Henrik Lissner
b25e215d59
Increase last-pkg-refresh ttl from 900 -> 1200s 2018-05-24 16:41:14 +02:00
Henrik Lissner
592e16d76d
Conform debug commands to naming convention 2018-05-24 16:40:37 +02:00
Henrik Lissner
fbf8a7be56
Remove vestigial references to doom//reload-load-path 2018-05-21 01:38:17 +02:00
Henrik Lissner
454a962d6b
Rewrite doom//reload (merge reload-load-path into it) 2018-05-21 01:38:17 +02:00
Henrik Lissner
f2c02e32c8
General minor refactor & comment updates 2018-05-21 01:38:17 +02:00
Henrik Lissner
f3f8172579
Fix {copy,move}-this-file commands when file doesn't exist yet 2018-05-21 01:38:17 +02:00
Henrik Lissner
f058505306
New bin/doom (eventual replacement for make)
This commit adds bin/doom, which acts as the middle man that make once
was (and will stay for a while, though the documentation will shift away
from using it). It does everything the previous make interface did, but
is faster and more flexible. bin/doom should eventually replace the
makefile.

bin/doom also makes it easier to run Doom outside of ~/.emacs.d and
~/.doom.d with, for example:

  bin/doom run -p ~/.other.doom.d/ -e ~/.other.emacs.d

bin/doom.cmd is included for Windows users, but I don't recommend using
it yet. It hasn't been tested nor have I ever written a batch script
before.

Also update init.example.el with new defaults.
2018-05-21 01:38:17 +02:00
Henrik Lissner
5c101f1909
Update modules library: message! => print! 2018-05-20 12:18:16 +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
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
af7fb1c628
Change doom/retab to reformat w/ opposite style if ARG 2018-05-20 12:10:10 +02:00
Henrik Lissner
b7b1445712
Update doom-get-outdated-packages to match new init process 2018-05-20 12:07:31 +02:00
Henrik Lissner
c826f0f6a8
Shrink dependency chains in core libraries 2018-05-20 12:06:50 +02:00
Henrik Lissner
0634289a01
Autoload doom-*-package functions 2018-05-20 12:05:17 +02:00
Henrik Lissner
61ca98fd3f
Refactor package managent batch commands
+ Replace message! with print!
+ doom//packages-* commands now only return t if package list changed
2018-05-20 12:03:50 +02:00
Henrik Lissner
0d9db6f149
Rewrite autoload/message library
+ Rename message! => print!
+ New printerr! macro
+ Extended color support to interactive sessions (now propertized using
  term faces, so we don't have to rely on a popup window to display it).
2018-05-20 11:44:10 +02:00
Henrik Lissner
a46e7655dc
Move batch commands from core-packages to autoload/modules 2018-05-20 00:57:18 +02:00
Henrik Lissner
ee386f8461
Fix wrong-number-of-args error when installing packages
The fourth argument of map-put is an Emacs 26+ only feature.
2018-05-18 18:47:19 +02:00
Henrik Lissner
80adb9c1f6
General refactor for consistency & idempotency
Also updated comments
2018-05-18 01:26:41 +02:00
Henrik Lissner
50401f6c09
Minor refactor of package management api 2018-05-18 01:11:20 +02:00
Henrik Lissner
82f9fb7027
Optimize package management commands
Effectively halving run time on package install, update and autoremove
commands.
2018-05-18 01:08:28 +02:00
Henrik Lissner
e7a1e0b4a2
Improve interactive package management support 2018-05-16 00:11:14 +02:00
Henrik Lissner
b6813393d8
Remove custom helpful pretty-printer; default is superior 2018-05-16 00:11:14 +02:00
Henrik Lissner
1320d83834
Fix doom/info displaying nil module flags 2018-05-15 03:15:45 +02:00
Henrik Lissner
7bf133e991
Update unit test bootstrap 2018-05-15 01:46:22 +02:00
Henrik Lissner
d0f8bf402a
doom-visible-windows: support visible window-parameter 2018-05-15 01:31:40 +02:00
Henrik Lissner
e3e0cb7e68
doom/describe-modules: no initial input, instead set default 2018-05-14 18:32:26 +02:00
Henrik Lissner
2b2f6bcf32
New command: doom/profile-emacs (powered by esup) 2018-05-11 10:00:23 +02:00
Henrik Lissner
e6dd7fa867
Fix should-buffer! macro for tests 2018-05-08 15:20:06 +02:00
Henrik Lissner
7269abbe2f
Add doom/version command 2018-05-07 19:26:31 +02:00
Javier Peralta
a6c0be09ce doom/sudo-find-file work on remote files 2018-05-01 11:11:28 -06: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
225dfde40f
Initialize all package metadata on doom-get-missing-packages 2018-04-05 02:29:14 -04:00
Henrik Lissner
1aa50b8364
Error if doom-package-outdated-p cannot discern package's version 2018-04-05 02:28:42 -04:00
Henrik Lissner
f44a227e74
Refactor scratch buffer; add doom-scratch-buffer-major-mode option #490
Also set the default scratch buffer major mode to fundamental-mode
2018-03-28 18:39:46 -04:00
Henrik Lissner
f334a92fdc
Fix package management delete-reinstall loop with quelpa packages 2018-03-28 01:04:34 -04:00
Henrik Lissner
1f9576a59a
Conform unit test macros to naming convention 2018-03-27 02:52:30 -04:00
Henrik Lissner
b5db4f1fb6
Debug log missing modules; remove log! macro 2018-03-24 07:25:00 -04:00
Henrik Lissner
326763ab3d
doom/cleanup-processes => doom/cleanup-buffer-processes 2018-03-23 16:01:46 -04:00
Henrik Lissner
f064c5d1ae
Change doom/kill-all-buffers behavior (C-u = only kill project buffers) 2018-03-23 16:01:35 -04:00
Henrik Lissner
21f8b6933b
Remove unused minibuffer/system libraries
They aren't necessary anymore
2018-03-23 02:37:15 -04:00
Henrik Lissner
bc6000a731
Refactor doom//reload-theme; remove obsolete hooks 2018-03-22 23:26:58 -04:00
Henrik Lissner
358d7af9ac
doom/kill-all-buffers: reduce redundancy 2018-03-22 06:31:16 -04:00
Henrik Lissner
afdf2047a7
Improve error handling in doom/info 2018-03-20 20:45:16 -04:00
Henrik Lissner
ab180cd51e
Preselect last command in menus; reverse universal arg behavior
+ The universal argument tells a menu to use the last run command, if
  available.
+ If a last run command exists, preselect it in the menu.
2018-03-19 02:02:52 -04:00
Henrik Lissner
c54fb7b8c0
Fix package advice interfering with doom-initialize
...by aggressively reloading the config from within doom-initialize (too
early, some state hasn't been initialized at this point).
2018-03-14 20:12:15 -04:00
Henrik Lissner
8898c5cb9a
Fix void-function doom*initialize-packages error
Occurs before autoloads are generated.
2018-03-14 19:52:25 -04:00
Henrik Lissner
dac0307a80
Rewrite menu system
On consecutive runs, def-menu dispatchers now rerun the last command,
unless the universal argument is passed. e.g. SPC u SPC m b

The :cwd and :project properties now accept functions (take no arguments
and return a directory or boolean).
2018-03-14 19:03:32 -04:00
Henrik Lissner
cdbd677423
Allow use of package.el #444
This makes package.el commands safe to use in Doom, and prevents errors
caused by unitialized state, by running package-initialize before
you use a package.el command.
2018-03-14 18:25:25 -04:00
Henrik Lissner
44d30ca3ce
Fix doom-active-minor-modes 2018-03-14 04:49:14 -04:00
Henrik Lissner
03e6900d3c
doom//packages-update: output feedback earlier 2018-03-13 03:18:02 -04:00
Henrik Lissner
74c8b1d113
Rewrite doctor; move warn! blocks out in doctor.el files 2018-03-12 13:32:01 -04:00
Henrik Lissner
5726da8be2
Fix unbalanced-parenthesis error in some helpful-variable buffers 2018-03-12 13:32:00 -04:00
Henrik Lissner
686ce7b26e
New doom-delete-backward-functions hook as fallback in doom/delete-backward-char 2018-03-12 12:42:26 -04:00
Henrik Lissner
7afc62fb1d
Rewrite scratch buffer commands
+ No longer open persistent scratch buffers by default. Supply the
  universal argument to do that.

  SPC x = open throw-away scratch buffer
  SPC u SPC x = open persistent scratch buffer (prompted for file)

+ Added doom/delete-scratch-files
2018-03-07 21:15:15 -05:00
Henrik Lissner
4c535b2643
Refactor + slight optimization for backspace #452 2018-03-06 16:19:47 -05:00
Henrik Lissner
74d8ea2b0f
New doom-demote-warnings option for suppress dependency warnings 2018-03-05 03:02:17 -05:00
Henrik Lissner
55b2a6df68
Fix doom/forward-to-last-non-comment-or-eol when visual-line-mode is off #450 2018-03-05 02:59:21 -05:00
Henrik Lissner
57efa1b864
Update & fix unit tests 2018-03-02 20:46:45 -05: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
7542f4a660
Fix doom-visible-windows including popup windows 2018-03-01 22:07:14 -05:00
Henrik Lissner
2f7c9254d6
Fix over-zealous delete-backward-char #431
Would consume entire sexps.
2018-02-24 20:05:35 -05:00
Henrik Lissner
55c6244e9f
doom-install-package: clean up after failed quelpa install 2018-02-22 04:48:36 -05:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
7bfd0a3304
And changed-quelpa-recipe detection
These packages are now reinstalled on make install.
2018-02-20 17:55:55 -05:00
Henrik Lissner
b1bf67f630
Refactor package init process
quelpa is now initialized by doom-initialize-packages.
2018-02-20 17:54:10 -05:00
Henrik Lissner
95009c08f8
doom/describe-module: detect module associated with major-mode 2018-02-19 20:27:18 -05:00
Henrik Lissner
cf4420e903
Fix doom//run-tests 2018-02-17 22:18:04 -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
Henrik Lissner
dfefbd0176
Fix make test not resetting doom-modules properly 2018-02-14 21:18:56 -05:00
Henrik Lissner
4321f20b3e
Appease byte-compiler-sama 2018-02-14 20:54:53 -05:00
Henrik Lissner
ae52b2ff60
Fix empty load-file-name in warn! macro during byte-compilation 2018-02-14 20:52:25 -05:00
Henrik Lissner
0f404a513a
Fix overaggressive backspace
delete-backward-char would kill adjacent delimited regions:

1. |
   (...)
2. (|...)
2018-02-14 16:46:01 -05:00
Henrik Lissner
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
Henrik Lissner
11373e0128
Move doom-ansi-apply away from macros + add docstring 2018-02-14 05:40:37 -05:00
Henrik Lissner
5e5d075431
New doom/*-this-file commands; move doom/sudo* to new files library 2018-02-14 05:40:37 -05:00
Henrik Lissner
f6039eaee3
Use delay-warning instead of message in warn! macro 2018-02-14 03:17:51 -05:00
Henrik Lissner
cb3e780a96
Fix package manager not detecting outdated quelpa packages 2018-02-13 05:23:40 -05:00
Henrik Lissner
ba19032d29
Rename doom/narrow-buffer => doom/clone-and-narrow-buffer 2018-02-12 01:44:02 -05:00
Henrik Lissner
57b2b5c546
Fix doom//packages-update not updating dependencies 2018-02-11 16:13:15 -05:00
Henrik Lissner
0019deb276
Rewrite doom/info 2018-02-10 17:27:02 -05:00
Sergey Trofimov
139a0c8045 Fix kill-buffer arguments. 2018-02-10 19:36:06 +03:00
Henrik Lissner
7e87ab3e29
New warn! macro; replace debug! with log! macro 2018-02-04 17:53:31 -05:00
Henrik Lissner
7d9f2e5078
New doom/toggle-debug-mode command 2018-02-04 17:53:05 -05:00
Henrik Lissner
414383e5f4
Remove vestigial references to doom/{next,previous}-buffer 2018-02-04 05:05:40 -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
4262b9912c Revert "Move init.test.el into core/autoload/test.el"
This reverts commit 3bfb7fa17d.
2018-02-03 22:46:18 -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
3bfb7fa17d
Move init.test.el into core/autoload/test.el 2018-02-03 03:30:49 -05:00
Henrik Lissner
1dfe6c472a
Rewrite doom/info for concise debug output 2018-02-02 23:44:09 -05:00
Henrik Lissner
160902bd18
Remove doom/toggle-fullsreen; redundant with toggle-frame-fullscreen 2018-02-02 20:47:34 -05:00
Henrik Lissner
bbb969fa59
Combine doom/open-scratch-buffer & doom/open-project-scratch-buffer
These two are now doom/open-scratch-buffer. If you're in a project,
a (persistent) scratch buffer is opened. Otherwise, a non-persistent,
transient scratch buffer is opened.

If ARG (universal argument) is non-nil, then use the current window
instead of a new window (or popup, if feature/popup is enabled).

Also, the ex command :x[!] is improved. The BANG = open in current
window.
2018-02-02 20:47:33 -05:00
Henrik Lissner
d1953e00c4
Remove doom--cycle-real-buffers; refactor kill-this-buffer advice
cycle-real-buffers was a tidbit of complexity that was never necessary
in the first place. This functionality was already available in the form
of the frame buffer-predicate parameter, which controls where functions
like next-buffer and other-buffer can land you.

The only thing I have to do myself, is check for the condition where
there are no more real buffers left to switch to, and in that case send
you to the fallback-buffer.
2018-02-02 20:47:31 -05:00
Henrik Lissner
ca262f5e4e
Rename doom-fallback-buffer (variable) => doom-fallback-buffer-name 2018-02-01 20:06:00 -05:00
Henrik Lissner
7b2bbb973a
Improve real-buffer function docstrings 2018-02-01 20:04:54 -05:00
Henrik Lissner
2989296521
Use frame's buffer-predicate instead of doom/{next,previous}-buffer
doom/{next,previous}-buffer was implemented so that these commands could
skip over unreal buffers, and land us on either a real one or the
dashboard. Using the frame's buffer-predicate parameter accomplishes
exactly this, natively.
2018-02-01 19:58:43 -05:00
Henrik Lissner
c9e8be1f60
Improve doom/toggle-fullscreen #397 2018-02-01 17:42:39 -05:00
Henrik Lissner
dadfeec506
Refactor & fix doom/forward-to-last-non-comment-or-eol 2018-02-01 16:35:55 -05:00
Henrik Lissner
7c48e7e5cc
Improve visual-line-mode support in doom/backward-to-bol-or-indent #396 2018-02-01 16:35:27 -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
bcef66b947
Refactor doom/toggle-line-numbers; add doom-line-numbers-visual-style #376
doom-line-numbers-visual-style adds support for the visual
display-line-numbers mode by setting it to a non-nil value.
2018-01-30 03:31:32 -05:00
Henrik Lissner
64a674dcc9
Fix nlinum-relative line numbering #376
Fixed padding; now relative line numbers look consistent with its non-relative
counterpart.
2018-01-30 01:18:30 -05:00
Henrik Lissner
01787fc876
Change doom/toggle-line-numbers to cycle styles #376
Also fixes doom/toggle-line-numbers when doom-line-numbers-style is nil.
2018-01-30 01:10:58 -05:00
Henrik Lissner
e0f6fde7c1
Update doom//run-tests for new doom! 2018-01-29 18:41:55 -05:00
Henrik Lissner
4e908bd525
Minor refactor & correction 2018-01-29 17:39:08 -05:00
Henrik Lissner
8b19e35ef6
Consider dired-mode buffers real 2018-01-28 20:37:40 -05: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
b57c2e2264
Disarm doom/cleanup-session's oppressive regime
It killed buffers a little too indiscriminantly.
2018-01-08 19:36:02 -05:00
Henrik Lissner
4bd74d9653
Fix doom-cleanup-hook breaking if hook didn't return an integer 2018-01-07 15:03:45 -05:00
Henrik Lissner
60fdbf8643
doom/window-enlargen: use maximize-window instead
Just discovered maximize-window, which I've been doing manually in
doom/window-zoom. Bueno.
2018-01-07 01:58:38 -05:00
Henrik Lissner
2734810060
Show error when looking up dependency trees for built-in packages
There's no obvious way to do this, and I don't think it's important
enough to accommodate it.
2018-01-07 00:15:58 -05:00
Henrik Lissner
392f04446f
General refactor (use map.el more)
+ map-delete is shorter and faster than assq-delete-all
+ map-put is simpler than the delete-then-set workflow
+ map-merge is great for merging default and user settings
2018-01-07 00:15: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
b681917082
Remove/replace references to doom-popup-buffer 2018-01-06 03:27:23 -05:00
Henrik Lissner
91357a3e5d
💥 Replace core-popup with new feature/popup module
This is a breaking change! Update your :popup settings. Old ones will
throw errors!

Doom's new popup management system casts off its shackles (hur hur) and
replaces them with the monster that is `display-buffer-alist`, and
window parameters.

However, this is highly experimental! Expect edge cases.  Particularly
with org-mode and magit (or anything that does its own window
management).

Relevant to #261, #263, #325
2018-01-06 02:17:43 -05:00
Henrik Lissner
5d186d10b4
doom-install-package: don't try to uninstall built-in packages 2018-01-04 16:16:45 -05:00
Henrik Lissner
f3bad40fdf
Packages api: simpler error handling 2018-01-04 16:16:45 -05:00
Henrik Lissner
a29bc54c63
Install packages in the order they are declared 2018-01-04 16:16:45 -05:00
Henrik Lissner
88f8c27a7d
Fix doom/cleanup-session & +workspaces|cleanup-unassociated-buffers
Resolve void n variable errors and silent message.
2018-01-04 16:16:44 -05:00
Henrik Lissner
4d51a1ab09
Fix :skip property in def-test! 2018-01-04 16:14:50 -05:00
Henrik Lissner
b7d21fb256
Add let-advice!! test macro 2018-01-04 16:14:50 -05:00
Henrik Lissner
f1268b130f
Update & refactor core-popups
Updates core-popups for new doom-kill-buffer-less workflow, and gives it
is last refactor. Within the next couple of days core-popups will be
replaced with a new and improved feature/popup module.
2018-01-04 16:14:50 -05:00
Henrik Lissner
ab0223144c
Refactor doom/cleanup-session & corresponding evil command 2018-01-04 16:14:50 -05:00
Henrik Lissner
8e875bfa0e
Phase out doom-kill-buffer 2018-01-04 03:01:35 -05:00
Henrik Lissner
ecc8051378
Refactor doom/kill-all-buffers & decouple from core-popup 2018-01-04 03:01:35 -05:00
Henrik Lissner
00cc57a2bd
doom--cycle-real-buffers: if n=0, switch to fallback buffer 2018-01-04 03:01:35 -05:00
Henrik Lissner
fa72e8d09b
Simplify doom-buried-buffers & doom-real-buffer-list 2018-01-04 03:01:35 -05:00
Henrik Lissner
e9a012af34
doom-visible-windows: fix predicate for 'popup window' 2018-01-04 03:01:35 -05:00
Henrik Lissner
8e7b822062
Remove core-popup coupling
New popup management system coming soon!
2018-01-03 03:44:34 -05:00