Commit Graph

6494 Commits

Author SHA1 Message Date
Henrik Lissner
151858a8dc
Redesign Doom error handling
Another refactor, again to improve the locality of doom errors and make
the data that accompanies them more useful in determining the origin and
source of issues. Also, bin/doom is now a little more informative about
how to debug errors.
2018-06-20 02:07:12 +02:00
Henrik Lissner
84756b33a0
Fix closure symbolp errors blocking stacktraces
Caused because of symbol-file advice assuming SYMBOL would always be a
symbol.

This would prevent backtraces from happening, making debugging
impossibly obtuse.

This may indirectly fix #701
2018-06-20 01:59:07 +02:00
Henrik Lissner
600d7bcb4f
core: minor refactor/reformat
+ Prefer cl-loop over cl-mapcan for performance reasons.
+ Remove unnecessary let form
+ Log doom-try-run-hook when doom-debug-mode is on.
2018-06-19 20:55:44 +02:00
Henrik Lissner
adf9b7d26f
Log & error-handle in :after-call hooks
A load error no longer leaves Emacs in a broken state, but will report
errors. These errors can still be investigated with debug-on-error on.
2018-06-19 20:54:09 +02:00
Henrik Lissner
e069139b1c
Prevent kill-emacs-hook running after byte-compile
Prevents harmless errors after byte-compiling, or recentf needlessly
saving its cache to file.
2018-06-19 20:51:14 +02:00
Henrik Lissner
7a98919597
Fix quoting in babel popup rules
Reported by @fuxialexander
2018-06-19 20:50:16 +02:00
Henrik Lissner
f3b42a73b3
Silence early-init.el load at startup 2018-06-19 19:18:27 +02:00
Henrik Lissner
205cc718d2
Fix dashboard not appearing in daemon frames
Because they start in the *server* buffer, instead of the *scratch*
buffer.
2018-06-19 17:44:24 +02:00
Henrik Lissner
0fefc43d39
Refactor autoloads init & error handling
Also reduces byte-compiled forms in the backtrace of a
doom-autoload-error.
2018-06-19 17:19:11 +02:00
Henrik Lissner
279ee3cc8c
Fix stringp regression during autoloads generation
Mentioned in #701
2018-06-19 17:16:08 +02:00
Henrik Lissner
c9014487b1
Restore workspaces on --restore later
doom-post-init-hook isn't late enough.
2018-06-19 16:43:51 +02:00
Henrik Lissner
af350aa09e
feature/workspaces: disable magit persisting
Too buggy!
2018-06-19 16:43:28 +02:00
Henrik Lissner
3b528302b2
Minor refactor of core-dispatcher 2018-06-19 16:43:08 +02:00
Henrik Lissner
2e92f8d8a8
Keep backup of errant autoloads files 2018-06-19 16:42:10 +02:00
Henrik Lissner
d6706734a2
SPC q r -> restart & restore emacs
And SQP q R -> restart emacs (but don't restore)
2018-06-19 15:25:30 +02:00
Henrik Lissner
95b227f9fe
Fix docstring references to old settings 2018-06-19 15:01:25 +02:00
Henrik Lissner
d5adf4ccbc
Minor refactor of feature/workspaces
Improve error handling and update docstrings+comments
2018-06-19 15:00:15 +02:00
Henrik Lissner
d979c46ea2
Make +workspaces-load-session replace current
It should not merge with the current session.
2018-06-19 14:53:45 +02:00
Henrik Lissner
8cb36afa21
Switch to last workspace after persp-load
A little more intuitive than just switching to main workspace.
2018-06-19 14:52:33 +02:00
Henrik Lissner
5f04be599f
feature/workspaces: persist indirect buffers 2018-06-19 14:50:27 +02:00
Henrik Lissner
e703d3ec8a
Fix default workspace tab faces
The inherited faces were double-quoted
2018-06-19 14:18:31 +02:00
Henrik Lissner
ba1488279b
Fix evil-escape aborting multiedit too eagerly
When evil-escape is invoked from multiedit-insert state, it erroneously
quits the current multiedit session entirely. No more.

This can be removed when syl20bnr/evil-escape#83 is merged.
2018-06-19 14:14:32 +02:00
Henrik Lissner
746d90c330
make-variable-buffer-local -> make-local-variable
It is more correct to use the latter.
2018-06-19 13:49:18 +02:00
Henrik Lissner
fa36014559
Allow set-yas-minor-mode! to accept multiple modes 2018-06-19 13:49:18 +02:00
Henrik Lissner
8f76ee9a8a
Refactor feature/snippets
+ Don't clear yas-minor-mode-map; the default keybinds can be useful,
  esp to non-evil users.
+ Moved +snippets|enable-project-modes hook to autoloads file.
+ Reformat yasnippet config.
2018-06-19 13:49:15 +02:00
Henrik Lissner
ae6c3cacf2
Merge pull request #699 from Emiller88/feature/solidity-template
Add Solidity Template
2018-06-19 13:49:05 +02:00
Henrik Lissner
0501ea9c2c
Fix auth-source-pass & password-store autoloads
They were marked as macros, but aren't macros!

This may fix #696
2018-06-19 12:01:52 +02:00
Henrik Lissner
ccce20b581
set-evil-initial-state!: fix wrong-type-arguments
Caused when set-evil-initial-state! was used with a single mode (which
is 99% of the time!).

Indirectly fixes #696
2018-06-19 12:01:52 +02:00
Henrik Lissner
16b341e605
Move aya-persist-snippets-dir to doom-etc-dir 2018-06-19 12:01:51 +02:00
Henrik Lissner
2c1b0ccaf8
Fix doom|run-all-startup-hooks
Wasn't using doom-try-run-hook correctly.
2018-06-19 12:01:51 +02:00
Edmund Miller
5ec74fdffb Add Solidity Template
Add Trigger and basic file template
2018-06-18 20:29:37 -05:00
Henrik Lissner
f471ef3fff
Merge pull request #694 from MaskRay/tmux
tmux: string-split -> split-string
2018-06-18 23:50:56 +02:00
Henrik Lissner
615735a404
Add exato (x/html attribute text objects for evil)
Bound to x
2018-06-18 23:46:14 +02:00
Henrik Lissner
7f79eb4579
Major redesign of emacs/eshell
+ :sh can now be fed commands to run immediately, e.g. :sh cd %:P to
  start from the current project root.
+ Eshell will spawn a new eshell on every split. This can be controlled
  via `+eshell-enable-new-shell-on-split'
+ Eshell can be configured to kill the window when you kill the eshell
  process. This is disabled by default. See
  `+eshell-kill-window-on-exit'. Some commands ignore this, like the
  quit-and-close command (I alias this to "q").
+ eshell-directory-name has been moved to doom-etc-dir/eshell. It will
  seem like eshell has forgotten all your history, but you can move
  ~/.eshell (or ~/.doom.d/eshell) to ~/.emacs.d/.local/etc/eshell and
  you'll be fine.
+ eshell-aliases-file has been moved to ~/.doom.d/eshell_aliases by
  default.
+ Automatic writing to eshell-aliases-file has been disabled. No shell
  so aggressively persists aliases. You may maintain it yourself, or use
  the new +eshell-aliases variable to customize eshell from Doom.
+ C-s now invokes a history search with ivy/helm.
+ C-c s and C-c v split horizontally and vertically. Inspired by tmux.
+ C-c x kill the current eshell and its window. Inspired by tmux.j
+ New set-eshell-alias! autodef for defining your own aliases.
+ +eshell/open-workspace has been replaced with +eshell/open-fullscreen.
+ Added the "cd-to-project" command. I suggest you alias it.
2018-06-18 22:31:27 +02:00
Henrik Lissner
15921306ce
Optimize :tools rotate-text
No need for its config.el file!
2018-06-18 17:32:44 +02:00
Henrik Lissner
f653e20407
Fix disabled autodefs defined with cl-lib
Stubs are defined as ordinary macros (with defmacro), but if an autodef
is defined with cl-defun, defmacro can't handle the clisp-style argument
lists, causing wrong-number-of-arguments errors.
2018-06-18 17:30:33 +02:00
Henrik Lissner
4685eddb66
Don't eat stacks in backtraces in debug mode
The error handlers were a little too effective. They obscured a large
chunk of the stacktrace after errors, even in debug mode. This fixes
that and ensures backtraces in debug mode are more helpful.
2018-06-18 17:14:17 +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
f6c7c13634
Clean up elcs only if compiling core or everything
Sometimes we only want to compile one module, without getting rid of all
our other compiled files.
2018-06-18 14:56:24 +02:00
Henrik Lissner
32954ecb69
Move compile-time fix for disabled packages
This fix prevented the byte-compiler from trying to load packages that
were disabled or failed their :when/:unless/:if predicates. This commit
moves it into doom-byte-compile, so the :no-require predicate doesn't
have to run on every package in an interactive session, eating MY
PRECIOUS cpu cycles.

I do love my cpu cycles, yessiree.
2018-06-18 14:52: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
c8aba6f552
Open eshell in project root by default
If passed the universal arg (SPC u SPC o e) or (C-u M-x +eshell/open),
it will open in the current directory.
2018-06-18 14:42:42 +02:00
Henrik Lissner
08f01edafd
Mark settings obsolete (properly)
And make set! noisy about settings that don't exist anymore, when
evaling it interactively.
2018-06-18 13:38:27 +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
1c4f785df1
Bind C-s to *-minibuffer-history in evil-ex
Thanks to #fuxialexander
2018-06-18 11:29:08 +02:00
Fangrui Song
51f2ea2932 tmux: string-split -> split-string 2018-06-17 18:57:02 -07:00
Henrik Lissner
6808c46b58
💥 Change set-popup-rule! usage
Now accepts a flat plist of all its former parameters, including new
:parameters and :actions properties to increase your control over the
fate of your windows.

The old usage of set-popup-rule! is deprecated and may not work right!

The :ui popup module has also seen a major refactor to improve
efficiency and load times.

Sorry! This is the last "big" change before 2.1!
2018-06-18 02:34:16 +02:00
Henrik Lissner
4e5c8b6052
Improve autoload generator
Adds support for defalias and arbitrary forms.
2018-06-18 01:55:37 +02:00
Henrik Lissner
3ac7ec5120
Bind C-s to minibuffer-history search in helm/ivy 2018-06-17 22:21:32 +02:00
Henrik Lissner
68903ae398
Set exec-path-from-shell-debug instead of aliasing
Also fixes the defvaralias error that occurs on the latest Emacs (but
only on MacOS).
2018-06-17 21:41:44 +02:00