Commit Graph

68 Commits

Author SHA1 Message Date
e2442e7d80 Fix per-workspace eshell buffers 2018-07-11 00:04:24 +02:00
a1b4616236 emacs/eshell: minor refactor 2018-07-11 00:03:32 +02:00
29c2632cab Fix infinite recursion in smerge-mode #745
Also renames +hydra-smerge -> +vc-smerge-hydra, and no longer
auto-enables the hydra on smerge-mode (must find a better way).
2018-07-09 21:50:19 +02:00
29ae7f935f Add eshell/mkdir-and-cd command
I'd recommend aliasing this to mkdircd or take.
2018-07-06 15:34:26 +02:00
a0b7ccb74b emacs/eshell: restore margins
They were disabled because of shell width issues, but removing the
margin didn't change the situation!
2018-07-03 20:07:14 +02:00
637131a264 eshell: remove margins & wrap lines
Margins cause many full-line progress bars to become jumpy; scrolling to
follow the cursor at eol (just beyond the edge of the window). It's
better to not use margins at all.

Also, this change removes the $ truncation glyphs and enables
visual-line-mode to wrap long text.
2018-07-01 02:06:03 +02:00
866c97bcb2 emacs/imenu: remove cleanup-on-popup-close hack
This hack is no longer necessary now that imenu-list-smart-toggle
exists.

And set :quit nil for the Ilist popup rule (since it can be toggled
externally).
2018-06-30 23:27:06 +02:00
5e9f74c269 Add l and f default aliases to eshell
For ls -lh and find-file, respectively.
2018-06-30 13:21:24 +02:00
091a0a5f04 Remove unused window-state letvar 2018-06-30 02:58:25 +02:00
2dbdbc245c eshell: ignore errors thrown by pcomplete 2018-06-30 02:29:18 +02:00
e9c97d7ad0 Prevent eshell from switching to existing eshell
Prevent duplicate eshell buffers as a result of quitting a second eshell
buffer.
2018-06-30 02:29:18 +02:00
5a78b8db0c Enable smartparens-mode in eshell
So we can have some o'dat autopairing goodness in our shell.
2018-06-29 01:22:06 +02:00
55104b9f89 Fix "home/~" PWD in eshell prompt 2018-06-28 19:29:26 +02:00
40c8d7bd0e Fix eshell-z 2018-06-28 19:23:31 +02:00
9157d3b3a6 eshell: alias clear to clear-scrollback
This is more in line with how clear behaves in shells.
2018-06-28 18:46:51 +02:00
1a0251c1cf Move eshell config files into doom-private-dir
Introduce new +eshell-config-dir variable, where you can store your
eshell aliases and rc files.
2018-06-28 18:34:02 +02:00
88ba758ae3 Add eshell-z plugin
And replace z alias with it.
2018-06-28 18:32:27 +02:00
ca9da4c272 Fix eshell popup splits not closing on exit
Fixes "Attempt to delete main window of frame" errors, and ensrues an
eshell buffer is selected, if you were in a popup.
2018-06-28 18:20:30 +02:00
05bdb1e12c eshell-input-filter = eshell-input-filter-initial-space
Don't record a command in history if prefixed with whitespace.
2018-06-28 16:58:28 +02:00
7bb9adc6bd Only clean up after eshell window if visible
Killing buried eshell windows shouldn't delete windows or restore any
wconfs.
2018-06-28 14:47:14 +02:00
f7a4b639e7 Fix read-only errors when reopening eshell buffers
Caused because eshell would try to insert the banner into the eshell
prompt.
2018-06-28 14:40:12 +02:00
dceb9bea09 Fix +eshell-enable-new-shell-on-split
Also enables this implicitly after opening eshell with
+eshell/open-fullscreen.
2018-06-27 19:36:42 +02:00
5bcec25529 Fix +eshell/open-fullscreen reusing eshell buffers
It should spawn a new one, no matter what. Also fixes wconf restoration
on quit.
2018-06-27 19:34:23 +02:00
f17bf0a039 why isn't this a thing already
🤔
2018-06-26 17:05:54 +02:00
3134df8f43 Refactor smerge-mode config
Remove +vcs|enable-smerge-mode-maybe, as this is already automatically
enabled when current file is has merge conflicts.

Moved +hydra-smerge to autoloads file, and add it to smerge-mode-hook.
2018-06-26 01:32:05 +02:00
3284356fc2 Move git-commit style settings to hook
+vc|enforce-git-commit-conventions

Also, use fill-column instead of git-commit-fill-column, which magit has
deprecated.
2018-06-24 16:31:14 +02:00
a0ffc38117 Fix listp errors in eshell when using aliases 2018-06-23 20:29:54 +02:00
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
61cdac230f ui/vc emacs/vc: unify hydra design
this design will also break less based on the fonts
2018-06-23 16:25:58 +02:00
5531d7115a Fix indentation for many autodef setters 2018-06-22 01:49:21 +02:00
22c145105d Add unset capability to set-electric! 2018-06-22 01:49:21 +02:00
60779c9aed feature/version-control => ui/vc-gutter, emacs/vc
Reorganize vcs functionality. Moves the custom fringe bitmaps into :ui
vc-gutter.
2018-06-22 01:49:20 +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
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
41bac99a5f eshell: color prompt red if last command failed 2018-06-17 02:34:06 +02:00
17981d6a61 Conform hook names to conventions
Also minor reformatting & comment corrections.
2018-06-17 02:25:12 +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
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
51aa60d67d Fix set-electric! complaining about :char
A typo! Should be :chars
2018-06-15 16:50:39 +02:00
cccccbb3fd set-electric!: fix & improve error handling 2018-06-15 16:20:20 +02:00