Commit Graph

77 Commits

Author SHA1 Message Date
35e5a47e9f Rewrote indentation detection
More robust and easier to customize.
2018-07-29 19:31:32 +02:00
143fdd17e1 Use insert mode only if git commit is empty 2018-07-29 17:42:00 +02:00
d094162d31 Refactor how git-timemachine loads magit-blame
Loading magit-blame immediately after git-timemachine is premature, only
one command uses magit-blame (git-timemachine-blame), so we defer it
until that command is called (also, it makes more sense to be in the
emacs/vc module, than tools/magit).
2018-07-29 17:42:00 +02:00
a2ffbe4ede Add new emacs/hideshow module
Brings better default code folding support to various languages, like
yaml, ruby, matlab, haml and vimrc. Hideshow is still quite
unsophisticated and will need the help of another package for complete
code folding functionality. Perhaps origami or vimish fold.

The code-folding functional in the feature/evil module will soon be
replaced by that.
2018-07-29 17:41:59 +02:00
ec49220740 emacs/dired: add-hook -> :hook 2018-07-21 01:29:38 +02:00
d6461d495b General & minor reformatting+refactor 2018-07-19 03:40:31 +02:00
71dd7ff0f4 Helpfully removes this totally helpful comment
How helpful!
2018-07-14 19:38:29 +02:00
e5125fbb26 Remove unused +vc-auto-hydra-smerge variable 2018-07-12 19:03:15 +02:00
1880fb8a7d Fix eshell+persp-mode integration
Would cause a non-descript wrong-number-of-arguments error when trying
to switch workspaces.
2018-07-11 12:42:33 +02:00
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