Commit Graph

6497 Commits

Author SHA1 Message Date
27ab47cd11 Improve *Backtrace* popup rule
+ High vslot = unlikely to be replaced by other popups.
+ Make it large; backtraces are important!
+ Don't allow ESC to close it. It must be done manually, with q or zx
2018-06-20 02:12:37 +02:00
5cb1d5d4c9 eval-after-load -> with-eval-after-load
The way Doom was using eval-after-load ensured its form were never
byte-compiled or even checked by the byte-compiler, because they were
treated as quoted forms (data), and thus eval'ed.

Friends don't let friends use eval.
2018-06-20 02:08:34 +02:00
9f9b7ad792 Add EMACSDIR envvar support to bin/doom
As an alternative to the -e/--emacsd options. Sometimes it is more
consistent to customize bin/doom this way. e.g.

EMACS=/another/bin/emacs DOOMDIR=~/someplace EMACSDIR=~/emacsd bin/doom install
2018-06-20 02:07:20 +02:00
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
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
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
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
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
7a98919597 Fix quoting in babel popup rules
Reported by @fuxialexander
2018-06-19 20:50:16 +02:00
f3b42a73b3 Silence early-init.el load at startup 2018-06-19 19:18:27 +02:00
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
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
279ee3cc8c Fix stringp regression during autoloads generation
Mentioned in #701
2018-06-19 17:16:08 +02:00
c9014487b1 Restore workspaces on --restore later
doom-post-init-hook isn't late enough.
2018-06-19 16:43:51 +02:00
af350aa09e feature/workspaces: disable magit persisting
Too buggy!
2018-06-19 16:43:28 +02:00
3b528302b2 Minor refactor of core-dispatcher 2018-06-19 16:43:08 +02:00
2e92f8d8a8 Keep backup of errant autoloads files 2018-06-19 16:42:10 +02:00
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
95b227f9fe Fix docstring references to old settings 2018-06-19 15:01:25 +02:00
d5adf4ccbc Minor refactor of feature/workspaces
Improve error handling and update docstrings+comments
2018-06-19 15:00:15 +02:00
d979c46ea2 Make +workspaces-load-session replace current
It should not merge with the current session.
2018-06-19 14:53:45 +02:00
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
5f04be599f feature/workspaces: persist indirect buffers 2018-06-19 14:50:27 +02:00
e703d3ec8a Fix default workspace tab faces
The inherited faces were double-quoted
2018-06-19 14:18:31 +02:00
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
746d90c330 make-variable-buffer-local -> make-local-variable
It is more correct to use the latter.
2018-06-19 13:49:18 +02:00
fa36014559 Allow set-yas-minor-mode! to accept multiple modes 2018-06-19 13:49:18 +02:00
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
ae6c3cacf2 Merge pull request #699 from Emiller88/feature/solidity-template
Add Solidity Template
2018-06-19 13:49:05 +02:00
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
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
16b341e605 Move aya-persist-snippets-dir to doom-etc-dir 2018-06-19 12:01:51 +02:00
2c1b0ccaf8 Fix doom|run-all-startup-hooks
Wasn't using doom-try-run-hook correctly.
2018-06-19 12:01:51 +02:00
5ec74fdffb Add Solidity Template
Add Trigger and basic file template
2018-06-18 20:29:37 -05:00
f471ef3fff Merge pull request #694 from MaskRay/tmux
tmux: string-split -> split-string
2018-06-18 23:50:56 +02:00
615735a404 Add exato (x/html attribute text objects for evil)
Bound to x
2018-06-18 23:46:14 +02:00
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
15921306ce Optimize :tools rotate-text
No need for its config.el file!
2018-06-18 17:32:44 +02:00
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
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
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
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
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
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
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
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
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
1c4f785df1 Bind C-s to *-minibuffer-history in evil-ex
Thanks to #fuxialexander
2018-06-18 11:29:08 +02:00
51f2ea2932 tmux: string-split -> split-string 2018-06-17 18:57:02 -07:00
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