Commit graph

8579 commits

Author SHA1 Message Date
Henrik Lissner
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
Henrik Lissner
b6fcd59a01
completion/ivy: remap describe-bindings & set-variable 2019-03-09 03:42:55 -05:00
Henrik Lissner
419c3ba1e6
feature/evil: recenter window after / * or # 2019-03-09 03:42:55 -05:00
Henrik Lissner
54d1c0dd56
Minor, general refactors 2019-03-09 03:42:55 -05:00
Henrik Lissner
442bd7cfb9
Only apply prefix arg fix to evil leaders 2019-03-09 02:42:32 -05:00
Henrik Lissner
d5ba685817
Don't overwrite C-i in GUI Emacs 2019-03-09 02:42:31 -05:00
Henrik Lissner
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
Henrik Lissner
8e866bb37f
Improve leader key initialization
And ensure leader key always has precedence.

Indirectly fixes #1234
2019-03-09 02:42:23 -05:00
Henrik Lissner
e0ed8669af
Move (if|when)-let* shims to core.el
Fix void-functon when-let* errors at startup for Emacs 25.* users.
2019-03-08 18:06:35 -05:00
Henrik Lissner
ee6e4a8b5c
Fix ivy--queue-exhibit: void-function nil error
Until Yevgnen/ivy-rich#51 is merged
2019-03-08 17:58:58 -05:00
Henrik Lissner
062652ec11
lang/org: Fix defvaralias warning; revise docstrings 2019-03-08 14:52:04 -05:00
Henrik Lissner
b9bbc95f1b
Fix void-variable org-file-apps error #1232
Snuck in during fa26dc12
2019-03-08 14:26:25 -05:00
Henrik Lissner
c9e7d27317
Set leader keys later #1233
Setting them too soon means the user can't change them.
2019-03-08 14:23:42 -05:00
Henrik Lissner
5ab58a7eaf
Load subr-x & cl-lib sooner 2019-03-08 06:13:07 -05:00
Henrik Lissner
cec2b4e9bc
Add doom/toggle-debug-mode command 2019-03-08 04:25:45 -05:00
Henrik Lissner
f2b8280b2a
Add +default/search-from-cwd & +default/search-project 2019-03-08 04:25:45 -05:00
Henrik Lissner
748b197676
Minor, general refactors 2019-03-08 04:25:45 -05:00
Henrik Lissner
8f733c2ab5
Don't kill magit with ESC 2019-03-08 04:25:45 -05:00
Henrik Lissner
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
Henrik Lissner
b9a036a96c
editor/fold: check outline-mode folds before hs
b/c hideshow fold checks produce more false positives.
2019-03-08 04:25:45 -05:00
Henrik Lissner
90a10931f7
lang/emacs-lisp: new +emacs-lisp-outline-regexp var 2019-03-08 04:25:44 -05:00
Henrik Lissner
a443d9ab07
Refactor doom-initialize-packages & package API
- Packages are initialized once, when package.el is first loaded, and
  must be updated manually via doom/reload-packages.
- Package->module association is now stored in the package's PLIST under
  :modules. This is an internal property and cannot be explicitly set
  through `package!'
- Add doom-package-list function
- Rename doom-get-packages to doom-find-packages
- Updated doom-find-packages' docstring
- Added the :core filter to doom-find-packages
- Simplified doom-initialize-packages
- doom/reload calls doom/reload-packages if necessary.
- Fix redundant properties in doom-packages
- Remove tracking of after!, def-package! and def-package-hook! blocks.
  Replaced with doom-package-list being able to see all packages, even
  in disabled modules.
- Add :built-in property to package! for dummy packages. This is
  important so that doom/describe-package can see built-in packages.
2019-03-08 04:25:44 -05:00
Henrik Lissner
8bfa5a30fd
Fix lookup commands not aborting on C-g/ESC #1226
When aborting a lookup handler with C-g/ESC, Doom was convinced that it
had failed legitimately, so tries the next. The expected behavior is
that it abort the entire lookup operation.
2019-03-08 02:37:34 -05:00
Henrik Lissner
4055f667fb
Defer doom|disable-whitespace-mode-in-childframes 2019-03-08 02:37:34 -05:00
Henrik Lissner
8e32f0da18
Rethink theme/font initialization order
+ Don't use set-frame-font. Causes issues for daemon users and is
  slower.
+ Revice init function docstrings
+ Load fonts a little earlier than themes

May resolve an issue where fonts in daemon Emacs are too small on
startup.

Addresses #1223
2019-03-08 02:37:33 -05:00
Henrik Lissner
917d89da87
Refactor module init hooks
Also adds doom-after-init-modules-hook for consistency, which is an
alias to after-init-hook until I decide if it's necessary for it to be
independent.
2019-03-08 02:37:33 -05:00
Henrik Lissner
a4c0bc2738
Optimize general integration
Using general to bind leader keys was responsible for 40-50% of Doom's
startup time. This change reduces that significantly, but not entirely.
It may be better that the config/default module not use map!. It is a
convenient macro, but general is a huge bottleneck.
2019-03-08 02:37:33 -05:00
Henrik Lissner
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
Henrik Lissner
a05b1877be
Rewrite switch-{buffer,window} hooks
+ Add doom-switch-frame-hook
+ Replace doom-{enter,exit}-{buffer,window}-hook with
  doom-switch-{buffer,window}-hook
+ New switch-buffer hooks run on buffer-list-update-hook rather than
  in select-window advice.
+ Blank our buffer-list-update-hook in some places to reduce how many
  times it gets triggered.
2019-03-08 02:37:33 -05:00
Henrik Lissner
8f2fb07948
Add advice-add! & advice-remove! helpers 2019-03-08 02:37:33 -05:00
Henrik Lissner
fa26dc1269
Refactor lang/org 2019-03-08 02:37:33 -05:00
Henrik Lissner
c0c4b897ea
lang/python: refactor python mode-line indication 2019-03-08 02:37:32 -05:00
Henrik Lissner
9b180fda97
Refactor doom-initialize & bootstrap in core.el 2019-03-08 02:37:32 -05:00
Henrik Lissner
8c701ef7d4
Fix void-variable error from ediff config 2019-03-08 02:34:26 -05:00
Henrik Lissner
31688c921d
Refactor doom-get-outdated-packages
Partitions quelpa packages so there are 4 threads tops.
2019-03-08 02:34:26 -05:00
Henrik Lissner
2d353b849c
Change file-exists-p! to return file if it exists 2019-03-08 02:34:26 -05:00
Henrik Lissner
d94aa9b57c
Add xclip.el for tty clipboard support
Needs more testing
2019-03-08 02:34:26 -05:00
Henrik Lissner
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
Henrik Lissner
884957bdc6
Refactor format! macro
By removing the cl-flet call, we reduce the size of backtraces produced
during bin/doom commands by a whopping 80%. Noice.

Also renames doom-ansi-apply -> doom-color-apply
2019-03-07 18:26:44 -05:00
Henrik Lissner
4d649333a6
Add keybind: SPC h C-k -> describe-key-briefly 2019-03-07 18:26:41 -05:00
Henrik Lissner
4a1a359c21
Merge pull request #1221 from flatwhatson/ivy-switch-buffer
Improve +ivy/switch-workspace-buffer
2019-03-06 23:46:25 -05:00
Henrik Lissner
ada5d45f9e
Merge pull request #1222 from flatwhatson/fix-cc-constants
Fix cc fontification for constants with numbers
2019-03-06 23:38:36 -05:00
Andrew Whatson
c7a29ca025 Add optional support for switch-buffer previews
When `+ivy-buffer-preview` is non-nil, our various switch-buffer
functions will preview the current candidate buffer, like how
`counsel-switch-buffer` works.

When `ivy-use-virtual-buffers` is non-nil, virtual buffers are *not*
previewed unless `+ivy-buffer-preview` is `'everything`.
2019-03-07 14:28:56 +10:00
Andrew Whatson
be4bae4acf Fix cc fontification for constants with numbers 2019-03-07 01:35:22 +10:00
Andrew Whatson
46f7e6c7e6 Improve +ivy/switch-workspace-buffer
Allow current buffer to be selected when switching other window, so you
can quickly get a second window to the current buffer.

Preselect the most recently selected buffer, so repeated C-x b RET will
switch between your two most recent buffers.
2019-03-07 01:18:37 +10:00
Henrik Lissner
e497df4a28
Restore obsolete doom-(post-)?init hooks
These will be removed later.
2019-03-05 19:23:50 -05:00
Henrik Lissner
bf940da52a
Don't change projectile vars before it is loaded #1219 2019-03-05 19:16:08 -05:00
Henrik Lissner
9d30b411c2
lang/org: bind dwim-at-point to RET instead #1218
[return] is treated as a different key (with higher precedence in GUI
Emacs), which means it overwrites RET behaviors bound elsewhere, like in
config/default or minor mode maps (like evil-multiedit's).
2019-03-05 18:37:50 -05:00
Henrik Lissner
024e27b618
Add contingency plan for local-vars hooks
They don't run if enable-local-variables is set to nil.
2019-03-05 17:08:39 -05:00
Henrik Lissner
1ec9f5b2e9
Move hl-line-range-function fix to ui/doom
Remapping the hl-line face is what causes the bug that this fix
addresses.
2019-03-05 03:01:59 -05:00