Commit Graph

22 Commits

Author SHA1 Message Date
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
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
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
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
41bac99a5f eshell: color prompt red if last command failed 2018-06-17 02:34:06 +02:00
a6116c6547 eshell: fix prompt face bleeding into command 2018-06-17 02:21:46 +02:00
cc6809bcf8 Move windows with C-hjkl eshell's insert mode 2018-06-16 21:08:08 +02:00
48c9936f8d Fix eshell buffers omitted from workspace buffers
The mode was set before the window was displayed, which is where
persp-mode's check is.
2018-06-16 21:04:20 +02:00
b991af552c A slightly more informative default eshell banner 2018-06-16 16:59:33 +02:00
a4ccc2fc81 Use shrink-path on eshell PWD in default prompt
Makes longer paths easier to deal with.
2018-06-16 16:51:43 +02:00
2addfebf8e Refactor eshell-visual-commands (and add ncmpcpp) 2018-06-16 16:42:26 +02:00
d9944bfc7f Replace fringes in eshell buffers with a margin
I think it looks better this way. Especially if you use solaire-mode.
2018-06-16 16:40:08 +02:00
aa1b203d1f Add z and bd commands to eshell, plus aliases 2018-06-16 16:38:39 +02:00
c0f601721c emacs/eshell: fix pcomplete+ivy/helm integration
Use ivy/helm instead of the popup at the bottom.
2018-06-16 16:37:43 +02:00
40e4c872f4 Remove redundant eshell-error-if-no-glob setting 2018-06-14 23:40:08 +02:00
209f33c12e Refactor tools/eshell
Make eshell-directory-name easier to customize & remove unnecessary
def-package! block.
2018-06-14 23:36:42 +02:00
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
1e81a35461 Minimize dependence on map!
This is in preparation for general.el integration coming in 2.1.1. It is
very likely that map! will change (and even more, be split into several
macros). Not much, but change none-the-less. Specifically, the state
keywords (e.g. :nvi, :n, :i) will be removed in favor of a :state
property that takes a list, e.g. (normal visual insert).

In any case, both map! and general are also relatively expensive
compared to define-key and evil-define-key* (and the new define-key!
macro), so use that when we can.

This also means changes to either API won't affect Doom's modules in the
long term.
2018-06-03 15:46:00 +02:00
3b85720c9c Fix incorrect uses of add-to-list 2018-05-28 12:26:03 +02:00
e2d055a40b 💥 Move dired, electric-indent, eshell, imenu, term modules to :emacs 2018-05-27 12:52:28 +02:00
8122c9f653 Remove :emacs :fun and :os (moved) 2017-02-20 00:26:08 -05:00
f453b3cee1 Reorganize modules 2017-02-20 00:23:03 -05:00