Commit Graph

312 Commits

Author SHA1 Message Date
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
c22b3da9f9 Move emacs/electric-indent to emacs/electric
This module will later be expanded to customize more of electric's
functionality.
2018-06-15 16:20:20 +02:00
9f0ebe42e8 Replace :electric with set-electric-rules!
And general refactor of the emacs/electric-indent module.

Also updates (set! :electric ...) references in various :lang modules
2018-06-15 13:32:07 +02:00
98d2f1de3f Add set-env! autodef; make :env obsolete 2018-06-15 03:42:01 +02:00
d8b1e469bc Introduce autodefs to replace some settings
+ :popup -> set-popup-rule!
+ :popups -> set-popup-rules!
+ :company-backend -> set-company-backend!
+ :evil-state -> set-evil-initial-state!

I am slowly phasing out the setting system (def-setting! and set!),
starting with these.

What are autodefs? These are functions that are always defined, whether
or not their respective modules are enabled. However, when their modules
are disabled, they are replaced with macros that no-op and don't
waste time evaluating their arguments.

The old set! function will still work, for a while.
2018-06-15 03:42:01 +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