Commit graph

31 commits

Author SHA1 Message Date
Henrik Lissner
40d2d4d222
Minor tweaks & byte-compiler offerings 2019-05-15 20:53:11 -04:00
Henrik Lissner
c549091ce5
ui/popup: polish default rules
- Establish popup naming convention:
  - *doom:name* -> a temporary editing buffer (requires interaction)
  - *doom name* -> a transient buffer (no interaction required)
2019-05-15 15:22:09 -04:00
Henrik Lissner
77e4cc4d58
💥 Remove :feature category
:feature was a "catch-all" category. Many of its modules fit better in
other categories, so they've been moved:

- feature/debugger -> tools/debugger
- feature/evil -> editor/evil
- feature/eval -> tools/eval
- feature/lookup -> tools/lookup
- feature/snippets -> editor/snippets
- feature/file-templates -> editor/file-templates
- feature/workspaces -> ui/workspaces

More potential changes in the future:

- A new :term category for terminal emulation modules (eshell, term and
  vterm).
- A new :os category for modules dedicated to os-specific functionality.
  The :tools macos module would fit here, but so would modules for nixos
  and arch.
- A new :services category for web-service integration, like wakatime,
  twitter, elfeed, gist and pastebin services.
2019-04-24 18:16:04 -04:00
Henrik Lissner
868a0ab9b9
emacs/eshell: fix wrong-type-arg: stringp errors
Fix old usage of projectile API.
2018-10-01 12:06:08 -04:00
Henrik Lissner
53fe7a1f04 Refactor Project API to reflect changes upstream
projectile-project-root no longer returns `default-directory` if not in
a project (it returns nil). As such, doom-project-* functions (and their
uses) have been refactored.

+ doom-project-p & doom-project-root are aliases for
  projectile-project-p & projectile-project-root.
+ doom-project-{p,root,name,expand} now has a DIR argument (for
  consistency, since projectile-project-name and
  projectile-project-expand do not).
+ The nocache parameter is no longer necessary, as projectile's caching
  behavior is now more sane.
+ Removed some projectile advice/hacks that are no longer necessary.
+ Updated unit tests
2018-09-28 21:13:27 -04:00
Edwin Török
b9c966ec54 Backport to Emacs 25: avoid (setf (alist-get ... 'equal))
We would need to use `'equal` for comparison, but Emacs 25 only allows `'eq`.
Using `advice-add` to override `alist-get` does not work, because `setf`
has special handling for `alist-get`.

`repl.el`: Switch to a hash table which already supports multiple comparison
functions, and changing of elements even in Emacs 25.
`eshell/autoload/settings.el`: use conditional set-or-push.
Drop `doom*alist-get`, it is unused now.

Thanks to @hlissner for the reimplementation.
2018-09-12 23:03:02 +01:00
Henrik Lissner
7d3ffdff06
Remove third line in section headers
This is truly important stuff. We've saved many lives with this update.
2018-09-09 09:58:19 -04:00
Henrik Lissner
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
Henrik Lissner
e2442e7d80
Fix per-workspace eshell buffers 2018-07-11 00:04:24 +02:00
Henrik Lissner
a1b4616236
emacs/eshell: minor refactor 2018-07-11 00:03:32 +02:00
Henrik Lissner
29ae7f935f
Add eshell/mkdir-and-cd command
I'd recommend aliasing this to mkdircd or take.
2018-07-06 15:34:26 +02:00
Henrik Lissner
091a0a5f04
Remove unused window-state letvar 2018-06-30 02:58:25 +02:00
Henrik Lissner
2dbdbc245c
eshell: ignore errors thrown by pcomplete 2018-06-30 02:29:18 +02:00
Henrik Lissner
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
Henrik Lissner
55104b9f89
Fix "home/~" PWD in eshell prompt 2018-06-28 19:29:26 +02:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
a0ffc38117
Fix listp errors in eshell when using aliases 2018-06-23 20:29:54 +02:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
41bac99a5f
eshell: color prompt red if last command failed 2018-06-17 02:34:06 +02:00
Henrik Lissner
a6116c6547
eshell: fix prompt face bleeding into command 2018-06-17 02:21:46 +02:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
e2d055a40b
💥 Move dired, electric-indent, eshell, imenu, term modules to :emacs 2018-05-27 12:52:28 +02:00