Commit Graph

373 Commits

Author SHA1 Message Date
7eb479e3f7 config/literate: set config.el as default target 2019-03-29 03:40:56 -04:00
132ad7d391 Half-revert 92e604d0
+ Fixes config.org buffer being killed when tangled
+ Tangle files in same session if ob-tangle is loaded (and in
  noninteractive sessions). i.e. only tangle quietly when starting up
  interactive Emacs.
2019-03-28 16:20:25 -04:00
92e604d0dc config/literate: don't tangle file in this session
org-babel-tangle-file has reportedly killed config.org buffers, despite
them being visited. Since we're not doing anything with the return
value, may as well keep it in a separate process.
2019-03-28 14:32:16 -04:00
5cdc2127be Refactor config/literate module
+ Now recompiles literate config if you modify org files in DOOMDIR
+ Replaced +literate/compile with +literate/reload
+ Calls org-babel-tangle-file directly if org package is loaded
+ Change mtime check mechanism for literate tangling at startup
2019-03-28 01:59:25 -04:00
2dc52bc9be 💥 Replace exec-path-from-shell w/ 'bin/doom env'
IMPORTANT: This is a breaking update for Mac users, as your shell
environment will no longer be inherited correctly (with the removal of
exec-path-from-shell). The quick fix is: 'bin/doom env refresh'. Also,
the set-env! autodef now does nothing (and is deprecated), be sure to
remove calls to it in your config.

Smaller changes:
+ This update also adds --no-* switches to doom quickstart
+ Includes general improvements to the documentation of several bin/doom
  commands.
+ Moves doom/reload* commands to core/autoload/config.el
+ doom/reload-project has been removed (it didn't actually do anything)

The breaking change:
This update adds an "envvar file" to Doom Emacs. This file is generated
by `doom env refresh`, populated with variables scraped from your shell
environment (from both non-interactive and interactive sessions). This
file is then (inexpensively) loaded at startup, if it exists.

+ The file is manually generated with `doom env refresh`.
+ It can be regenerated automatically whenever `doom refresh` is run by
  running `doom env enable` (`doom env clear` will reverse this and
  delete the env file).
+ `doom quickstart` will ask if you want to auto-generate this envvar
  file. You won't need it if you're confident Emacs will always be
  started from the correct environment, however.
+ Your env file can be reloaded from a running Emacs session with `M-x
  doom/reload-env`. Note: this won't work if the Emacs session you're
  running it in doesn't have a correct SHELL set. i.e. don't use this to
  create your first env file!

The idea isn't mine -- it's borrowed from Spacemacs -- and was
introduced to me in #1053 by @yurimx. I was impressed with it. Prior to
this, I was unhappy with exec-path-from-shell (no hate to the dev, I
understand its necessity), and 'doom patch-macos' wasn't ideal for mac
users (needed to be reapplied every time you update Emacs). What's more,
many users (even Linux users) had to install exec-path-from-shell
anyway.

This solution suffers from none of their shortcomings. More reliable
than patch-macos, more performant and complete than
exec-path-from-shell, and easily handled by bin/doom.
2019-03-28 01:56:09 -04:00
d589f87253 Add maximize window key bindings
This includes maximization for entire buffer, vertically and
horizontally.
2019-03-24 14:47:55 +00:00
d44c80c565 Update evil-mc "gzu" and "gzq" bindings 2019-03-16 14:15:19 +08:00
cd3346b7ec Add forward/back-button bindings in help-mode 2019-03-15 15:03:30 +10:00
3e2779da39 Refactor leader/localleader keybinds
- Some buffer-local commands were removed from leader binds
- Some more commands were added to org's localleader
- Reformatted some leader keys so that lower/upper case keys are grouped
  together, rather than apart.
- Add SPC-s-c and SPC-s-e for creating/using temporary snippets (with
  auto-yasnippet).
2019-03-14 18:38:51 -04:00
90f36bceff Undo 1f23eecd: un-homogenize TAB/RET/ESC
This is more trouble than its worth. Better to deal with the old edge
cases than the new ones this causes.

Addresses #1218
2019-03-14 17:59:24 -04:00
5c7da455f8 More help-map keys and remaps
- Move profiler from 't' to 'T' (as not to override
  `help-with-tutorial', esp for non-evil users)
- Replace C-c (describe-copying) with describe-coding-system
- Bind doom/describe-symbol to 'h'
- Bind `describe-key-briefly' to 'C-k'
2019-03-13 01:54:40 -04:00
5e5ae456bb Replace doom/what-face with describe-char
describe-char produces the same information and much more.
2019-03-13 01:37:55 -04:00
d22538d6ce Merge pull request #1238 from flatwhatson/fix-ace-helpful
Fix ace-link-help binding in helpful-mode
2019-03-12 11:29:05 -04:00
7b4afa32e4 Improvements to apropos and describe-symbol
Patch the apropos button types so they call helpful instead of the
built-in describe functions.  Also add some bindings to apropos-mode-map
so it behaves like other help modes.

Add `doom/describe-symbol` function, which shows documentation for
callable and variable symbols.  If a symbol is both a variable and a
callable, it dispatches to apropos.  This gives a better workflow than
`helpful-symbol`, which annoyingly prompts the user.

Remap `describe-symbol` to `doom/describe-symbol`, and update
`+emacs-lisp-lookup-documentation` to call it also.
2019-03-12 18:52:24 +10:00
8392c9dcf6 Add new :ui indent-guides module
Replaces old highlight-indentation-mode with new highlight-indent-guides
plugin.
2019-03-11 12:39:38 -04:00
ea14407c16 Fix ace-link-help binding in helpful-mode 2019-03-10 23:05:03 +10:00
b0bc1d925f Minor refactors; revise docstrings+comments 2019-03-09 19:56:47 -05:00
66d75936fc config/default: split into evil/emacs files
Done to better facilitate a non-evil config.

- Adds winum (and enables support for it in doom-modeline)
- Adds expand-region (#1231)
- Uses default smartparens config for non-evil users (WIP)
2019-03-09 03:43:14 -05:00
1a6f0c2f1d 💥 Redesign vanilla Emacs keybind scheme
The leader keys have been redesigned a) for consistency, b) to reduce
collisions with packages, and c) to improve command coverage. However,
much of it still comes from a vim user, so it needs more testing.
2019-03-09 03:42:55 -05:00
54d1c0dd56 Minor, general refactors 2019-03-09 03:42:55 -05:00
442bd7cfb9 Only apply prefix arg fix to evil leaders 2019-03-09 02:42:32 -05:00
d5ba685817 Don't overwrite C-i in GUI Emacs 2019-03-09 02:42:31 -05:00
9758aae389 config/default: move help keybinds out of +bindings
These ought to be available to all users, whether or not they want the
rest of Doom's keybinds.
2019-03-09 02:42:31 -05:00
f2b8280b2a Add +default/search-from-cwd & +default/search-project 2019-03-08 04:25:45 -05:00
748b197676 Minor, general refactors 2019-03-08 04:25:45 -05:00
1f23eecdc8 (Try to) homogenize TAB/RET/ESC keybinds
Map them to \t/^M/^[, rather than [tab], [return] and [escape].
2019-03-08 04:25:45 -05:00
44de995ca5 config/default: change SPC h keymaps
SPC h now maps to help-map to reduce redundancy. Some adjustments and
additions were made to this map so all users (evil and vanilla) can
benefit from Doom's extra help commands.
2019-03-08 02:37:33 -05:00
4fbf7a2687 Remove expand-region package
It was unused, and is redundant with evil's text object expansion keys.
2019-03-08 02:34:26 -05:00
4d649333a6 Add keybind: SPC h C-k -> describe-key-briefly 2019-03-07 18:26:41 -05:00
c1beb39c5b Rename doom/describe-setters -> doom/describe-autodefs 2019-03-05 01:55:40 -05:00
cfa97470fc Add links to config files in describe-packages
Also dims packages that aren't installed.
2019-03-05 01:55:40 -05:00
fbcb4e6973 Minor refactor across the board 2019-03-04 20:47:26 -05:00
b054190820 New doom/describe-packages command
Replaces describe-packages and adds Doom module awareness to package
documentation.
2019-03-04 20:47:25 -05:00
6a8b968807 Autopair HTML <!-- --> more conservatively 2019-03-02 01:38:18 -05:00
d46bb287ae General refactor of Doom core
- Code reduction and refactor across the board (cull unneeded minor
  advise, hooks and hacks or update them)
- Revise outdated comments and docstrings
- Reorganize core autoload libraries
- Remove large file check (Emacs already has a built-in one, which we
  augment to be even more performant when it does kick in)
- helpful.el can now be disabled completely through package!
2019-03-02 01:34:19 -05:00
8a90f29c91 Make session persistence module agnostic
They've been removed from feature/workspaces and moved into
core/autoload/sessions, which falls back to desktop.el if persp-mode
isn't present. This also offers a substantial speed up to
restart+restoring and restoring sessions in general.

Also fixes #1210, where the newly spawned frame after doom/restart
wasn't focused.

Introduces the following commands:

- doom/restart
- doom/restart-and-restore
- doom/quickload-session
- doom/quicksave-session
- doom/load-session
- doom/save-session
- +workspace/restore-last-session (alias for doom/quickload-session)

And removes

- +workspace/load-session
- +workspace/save-session
- +workspace/load-last-session (renamed to +workspace/restore-last-session)
- +workspace/restart-emacs-then-restore (replaced by doom/restart-and-restore)
- :ss (ex command)
- :sl (ex command)
2019-03-02 01:34:19 -05:00
fb57f367e7 Enable delete-selection-mode & shift-select-mode
This makes text insertion behave more like traditional editors.

Delete-selection-mode allows selections to be replaced when yanking or
inserting. This enables it by default for non-evil users and in insert
mode for evil users. Also enables selecting text with shift.
2019-03-02 01:34:14 -05:00
ad837e6d13 Move evil ex commands to feature/evil
These commands aren't used by config/default anyway, and
+default:multi-{next,previous}-line were moved to my private config.

Also fixes #1208 (:cd without args will now CD to $HOME).
2019-02-28 14:31:16 -05:00
aa9c4f63ed Fix :cd #1208 2019-02-27 14:43:24 -05:00
609e577ce7 Refactor evil keybinds; remove SPC {],[} prefixes
These were redundant with the ],[ motion keys.
2019-02-26 22:59:40 -05:00
594df64913 Smarter RET in normal mode over flyspell regions
Will now trigger flyspell-correct-word-generic
2019-02-26 16:55:29 -05:00
1b43ea50f0 Revise SPC f keybinds
- SPC f . -> counsel-file-jump or find-file
- SPC f > -> doom/browse-in-other-projects
- SPC f / -> projectile-find-file
- SPC f ? -> doom/find-file-in-other-project
- Moved doom/sudo-find-file to SPC f S

This change was made to accommodate the new
doom/browse-in-other-projects and doom/find-file-in-other-project
commands, which make it easy to jump to files in other known projects.
2019-02-26 13:21:16 -05:00
6e4e11ebb8 Remove C/C++ tab-always-indent override 2019-02-26 20:30:00 +10:00
faa4367636 Improved switch-to-buffer-other-window for ivy 2019-02-25 22:29:41 +10:00
2e3cf80ffc Bind C-l to ivy-done in counsel-ag-map
to make it more consistent with ivy-minibuffer-map
2019-02-24 18:49:40 -05:00
a39f366f6a Fix wrong function name for non-evil repl 2019-02-24 22:07:23 +10:00
e479e83534 Fix wrong function names in non-evil yas-keymap 2019-02-23 23:53:45 +10:00
acddf6a047 Move delete-backward-char & newline-and-indent advice
To config/default; the only place it is used.
2019-02-22 00:25:30 -05:00
69ed1a4a99 feature/{syntax-checker,spellcheck} -> tools/fly{check,spell} 2019-02-22 00:25:30 -05:00
88f50bbdec Merge pull request #1144 from SteamedFish/develop
Add vterm layer
2019-02-21 20:16:57 -05:00